From 1f90d7a8fa3b04744b8d94a9d74e8dc79840c0c9 Mon Sep 17 00:00:00 2001 From: georgiana-e Date: Tue, 10 Nov 2020 09:43:59 +0200 Subject: [PATCH] [567448] Add duplicated messages, references, lost/found (#73) * Master wip duplicated lost found (#70) * Allow duplicate messages in xtext scenario (#46) Change-Id: I9b89461169a870b02e4a7a5c1c0505c2ef02bb8b Signed-off-by: claudiasima Master wip duplicated merge from master (#52) * [567448] Fix synchronization text editor issues (#48) Change-Id: Ia18550618de3cad034684756afe1ccd4b45cf436 Signed-off-by: Georgiana-Elena ECOBICI Co-authored-by: Georgiana-Elena ECOBICI * [567448] Conflict key bindings (#50) Change-Id: I03a1747c622fa0c7a9c16f1817ea4f0be208187d Signed-off-by: Georgiana-Elena ECOBICI Co-authored-by: Georgiana-Elena ECOBICI Co-authored-by: georgiana-e Co-authored-by: Georgiana-Elena ECOBICI Master wip duplicated operands and combined fragments (#54) * [567448] Fix synchronization text editor issues (#48) Change-Id: Ia18550618de3cad034684756afe1ccd4b45cf436 Signed-off-by: Georgiana-Elena ECOBICI Co-authored-by: Georgiana-Elena ECOBICI * [567448] Conflict key bindings (#50) Change-Id: I03a1747c622fa0c7a9c16f1817ea4f0be208187d Signed-off-by: Georgiana-Elena ECOBICI Co-authored-by: Georgiana-Elena ECOBICI * Allow duplicated combined fragments and duplicated operands. Expression can be optional. Change-Id: Ib208d500b5869fda1ea93d51dcde831c81b8fd6c Signed-off-by: claudiasima Co-authored-by: georgiana-e Co-authored-by: Georgiana-Elena ECOBICI Master wip duplicated junits duplicated operands fragments (#56) * [567448] Fix synchronization text editor issues (#48) Change-Id: Ia18550618de3cad034684756afe1ccd4b45cf436 Signed-off-by: Georgiana-Elena ECOBICI Co-authored-by: Georgiana-Elena ECOBICI * [567448] Conflict key bindings (#50) Change-Id: I03a1747c622fa0c7a9c16f1817ea4f0be208187d Signed-off-by: Georgiana-Elena ECOBICI Co-authored-by: Georgiana-Elena ECOBICI * [567448] Bug Fixing (#53) - no auto refresh Change-Id: I33a6067a8b09acdd11eaf53857fe9ee32dd6bb61 Signed-off-by: Georgiana-Elena ECOBICI Co-authored-by: Georgiana-Elena ECOBICI * Junits for duplicated combined fragments and operands Change-Id: Id86845f10648b29077954982df32aa689f408f4c Signed-off-by: claudiasima Co-authored-by: georgiana-e Co-authored-by: Georgiana-Elena ECOBICI Add references (#61) diag to xtext, xtext to diag, validation, proposal, formatter Change-Id: I5cbd24e9fa5772cdc7237367da8a49a550fe9bb4 Signed-off-by: MalinaStefaniaStoicanescu Master wip duplicated more junits (#64) * [567448] Fix synchronization text editor issues (#48) Change-Id: Ia18550618de3cad034684756afe1ccd4b45cf436 Signed-off-by: Georgiana-Elena ECOBICI Co-authored-by: Georgiana-Elena ECOBICI * [567448] Conflict key bindings (#50) Change-Id: I03a1747c622fa0c7a9c16f1817ea4f0be208187d Signed-off-by: Georgiana-Elena ECOBICI Co-authored-by: Georgiana-Elena ECOBICI * [567448] Bug Fixing (#53) - no auto refresh Change-Id: I33a6067a8b09acdd11eaf53857fe9ee32dd6bb61 Signed-off-by: Georgiana-Elena ECOBICI Co-authored-by: Georgiana-Elena ECOBICI * Master fix exchanges (#55) * [567448] Bug Fixing - no auto refresh - cannot cast role to part Change-Id: I33a6067a8b09acdd11eaf53857fe9ee32dd6bb61 Signed-off-by: Georgiana-Elena ECOBICI * [567448] Search of available exchange item extended to Capella elements - not only search the exchanges between InstanceRoles Change-Id: If7e779b56cb13b435ed88259480fc1ae04187fb5 Signed-off-by: Georgiana-Elena ECOBICI Co-authored-by: Georgiana-Elena ECOBICI * [567448] Refresh diagram (#57) Change-Id: I7f6f90592051076766cada4f4dad70a2732fd96f Signed-off-by: Georgiana-Elena ECOBICI Co-authored-by: Georgiana-Elena ECOBICI * [build] Renamed download resource to TextualEditor (#58) Change-Id: I5cc98be4f980e980533903ec8f9372dd66245f0f Signed-off-by: Georgiana-Elena ECOBICI Co-authored-by: Georgiana-Elena ECOBICI Co-authored-by: georgiana-e Co-authored-by: Georgiana-Elena ECOBICI * Rebase with master Change-Id: I4988d61efe1926e9c7036dfbce9828a09eae1656 * Lost/Found support Change-Id: I6af677f59b4d56d655ec2b6bca6ddc801f475140 Signed-off-by: Georgiana-Elena ECOBICI Co-authored-by: claudiasima-ro <63597519+claudiasima-ro@users.noreply.github.com> Co-authored-by: Georgiana-Elena ECOBICI Conflicts: plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/TextualScenarioParser.java plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenario.g plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenarioLexer.java plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenarioParser.java plugins/org.polarsys.capella.scenario.editor.dsl.ui/src-gen/org/polarsys/capella/scenario/editor/dsl/ui/contentassist/AbstractTextualScenarioProposalProvider.java plugins/org.polarsys.capella.scenario.editor.dsl.ui/xtend-gen/org/polarsys/capella/scenario/editor/dsl/ui/contentassist/TextualScenarioProposalProvider.java plugins/org.polarsys.capella.scenario.editor.dsl/model/generated/TextualScenario.genmodel plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/parser/antlr/internal/InternalTextualScenario.g plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/parser/antlr/internal/InternalTextualScenarioLexer.java plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/parser/antlr/internal/InternalTextualScenarioParser.java plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/serializer/TextualScenarioSemanticSequencer.java plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/services/TextualScenarioGrammarAccess.java plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/TextualScenarioFactory.java plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/TextualScenarioPackage.java plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/TextualScenarioFactoryImpl.java plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/TextualScenarioPackageImpl.java plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/util/TextualScenarioAdapterFactory.java plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/util/TextualScenarioSwitch.java plugins/org.polarsys.capella.scenario.editor.dsl/src/org/polarsys/capella/scenario/editor/dsl/validation/TextualScenarioValidator.xtend plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/formatting2/TextualScenarioFormatter.java plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/helpers/TextualScenarioHelper.java plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/validation/TextualScenarioValidator.java plugins/org.polarsys.capella.scenario.editor.embeddededitor/src/org/polarsys/capella/scenario/editor/embeddededitor/commands/XtextToDiagramCommands.java plugins/org.polarsys.capella.scenario.editor.embeddededitor/src/org/polarsys/capella/scenario/editor/embeddededitor/listener/EmbeddedEditorSessionListener.java plugins/org.polarsys.capella.scenario.editor/src/org/polarsys/capella/scenario/editor/helper/EmbeddedEditorInstanceHelper.java tests/org.polarsys.capella.scenario.editor.ju/model/TextualEditor/TextualEditor.aird tests/org.polarsys.capella.scenario.editor.ju/model/TextualEditor/TextualEditor.melodymodeller Change-Id: Iabe2d767c8bd3cb32128d59553b1a104a174869e * Reference - set referenced scenario correctly (#72) Change-Id: I8945769f5925623d90cc2a50d2ff5c563a79e140 Signed-off-by: MalinaStefaniaStoicanescu * [567448] Bug fixing (#71) - null expression on operands - deactivation on found Change-Id: I4f0f276c58eddff05ea4493332d68c7e4a511422 Co-authored-by: Georgiana-Elena ECOBICI Conflicts: plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/TextualScenarioParser.java plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenario.g plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenarioLexer.java plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenarioParser.java plugins/org.polarsys.capella.scenario.editor.dsl.ui/src-gen/org/polarsys/capella/scenario/editor/dsl/ui/contentassist/AbstractTextualScenarioProposalProvider.java plugins/org.polarsys.capella.scenario.editor.dsl.ui/xtend-gen/org/polarsys/capella/scenario/editor/dsl/ui/contentassist/TextualScenarioProposalProvider.java plugins/org.polarsys.capella.scenario.editor.dsl.ui/xtend-gen/org/polarsys/capella/scenario/editor/dsl/ui/labeling/TextualScenarioLabelProvider.java plugins/org.polarsys.capella.scenario.editor.dsl/model/generated/TextualScenario.genmodel plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/parser/antlr/internal/InternalTextualScenario.g plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/parser/antlr/internal/InternalTextualScenarioLexer.java plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/parser/antlr/internal/InternalTextualScenarioParser.java plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/serializer/TextualScenarioSemanticSequencer.java plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/services/TextualScenarioGrammarAccess.java plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/TextualScenarioPackage.java plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/TextualScenarioPackageImpl.java plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/helpers/TextualScenarioHelper.java plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/validation/TextualScenarioValidator.java Change-Id: I687762e0e9166d47bda59af432161aab305e27a2 * [567448] Add duplicated messages, references, lost/founf Change-Id: I12935d3685b51429da98a902d0c3df486108d129 Signed-off-by: Georgiana-Elena ECOBICI Co-authored-by: MalinaStefaniaStoicanescu Co-authored-by: Georgiana-Elena ECOBICI --- .../antlr/TextualScenarioParser.java | 17 + .../antlr/internal/InternalTextualScenario.g | 956 ++- .../internal/InternalTextualScenario.tokens | 14 +- .../InternalTextualScenarioLexer.java | 440 +- .../InternalTextualScenarioParser.java | 5819 +++++++++---- .../META-INF/MANIFEST.MF | 5 +- ...stractTextualScenarioProposalProvider.java | 51 + .../TextualScenarioProposalProvider.xtend | 132 +- .../TextualScenarioLabelProvider.xtend | 2 +- .../TextualScenarioProposalProvider.java | 167 +- .../.launch/runtime-textualEditor3.launch | 35 + .../model/generated/TextualScenario.ecore | 18 + .../model/generated/TextualScenario.genmodel | 17 + .../editor/dsl/TextualScenario.xtextbin | Bin 4786 -> 5406 bytes .../antlr/internal/InternalTextualScenario.g | 321 +- .../internal/InternalTextualScenario.tokens | 40 +- .../InternalTextualScenarioLexer.java | 500 +- .../InternalTextualScenarioParser.java | 1947 +++-- .../TextualScenarioSemanticSequencer.java | 74 +- .../TextualScenarioGrammarAccess.java | 240 +- .../dsl/textualScenario/FoundMessage.java | 90 + .../dsl/textualScenario/LostFoundMessage.java | 90 + .../dsl/textualScenario/LostMessage.java | 63 + .../editor/dsl/textualScenario/Reference.java | 135 + .../TextualScenarioFactory.java | 36 + .../TextualScenarioPackage.java | 481 +- .../impl/FoundMessageImpl.java | 245 + .../impl/LostFoundMessageImpl.java | 245 + .../textualScenario/impl/LostMessageImpl.java | 189 + .../textualScenario/impl/ReferenceImpl.java | 346 + .../impl/TextualScenarioFactoryImpl.java | 48 + .../impl/TextualScenarioPackageImpl.java | 200 + .../util/TextualScenarioAdapterFactory.java | 80 + .../util/TextualScenarioSwitch.java | 101 + .../scenario/editor/dsl/TextualScenario.xtext | 24 +- .../TextualScenarioFormatter.xtend | 6 + .../dsl/helpers/TextualScenarioHelper.xtend | 50 +- .../validation/TextualScenarioValidator.xtend | 414 +- .../dsl/TextualScenarioRuntimeModule.java | 12 + .../dsl/TextualScenarioStandaloneSetup.java | 3 +- .../formatting2/TextualScenarioFormatter.java | 62 +- .../dsl/helpers/TextualScenarioHelper.java | 59 +- .../validation/TextualScenarioValidator.java | 427 +- .../commands/DiagramToXtextCommands.java | 175 +- .../commands/HelperCommands.java | 4 +- .../commands/XtextToDiagramCommands.java | 1028 ++- .../helper/EmbeddedEditorInstanceHelper.java | 213 +- .../model/TextualEditor/TextualEditor.aird | 7446 +++++++++++------ .../TextualEditor.melodymodeller | 2630 ++++-- .../editor/ju/ScenarioEditorTestSuite.java | 10 + .../DeleteOperandsXtextToDiagramTestCase.java | 23 + ...entsAndOperandsXtextToDiagramTestCase.java | 23 + ...tedMessagesFromXtextToDiagramTestCase.java | 23 + ...ndInstanceRolesXtextToDiagramTestCase.java | 23 + .../RolesXtextToDiagramTestCase.java | 23 + .../input/[IS]_Capability_1_Delete_Operands | 11 + .../[IS]_Capability_1_Delete_Operands_New | 9 + ...S]_Capability_1_Duplicated_CF_And_Operands | 25 + ...apability_1_Duplicated_CF_And_Operands_New | 15 + .../[IS]_Capability_1_Duplicated_Messages | 9 + .../[IS]_Capability_1_Duplicated_Messages_New | 9 + ...[IS]_Capability_1_Exchanges_Instance_Roles | 4 + ..._Capability_1_Exchanges_Instance_Roles_New | 6 + .../input/[OES]_OperationalCapability_1_Roles | 11 + .../[OES]_OperationalCapability_1_Roles_New | 9 + .../ju/util/TextualScenarioTestFramework.java | 23 +- 66 files changed, 18723 insertions(+), 7230 deletions(-) create mode 100644 plugins/org.polarsys.capella.scenario.editor.dsl/.launch/runtime-textualEditor3.launch create mode 100644 plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/FoundMessage.java create mode 100644 plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/LostFoundMessage.java create mode 100644 plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/LostMessage.java create mode 100644 plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/Reference.java create mode 100644 plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/FoundMessageImpl.java create mode 100644 plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/LostFoundMessageImpl.java create mode 100644 plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/LostMessageImpl.java create mode 100644 plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/ReferenceImpl.java create mode 100644 tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/DeleteOperandsXtextToDiagramTestCase.java create mode 100644 tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/DuplicatedCombinedFragmentsAndOperandsXtextToDiagramTestCase.java create mode 100644 tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/DuplicatedMessagesFromXtextToDiagramTestCase.java create mode 100644 tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/ExchangesAndInstanceRolesXtextToDiagramTestCase.java create mode 100644 tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/RolesXtextToDiagramTestCase.java create mode 100644 tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Delete_Operands create mode 100644 tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Delete_Operands_New create mode 100644 tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Duplicated_CF_And_Operands create mode 100644 tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Duplicated_CF_And_Operands_New create mode 100644 tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Duplicated_Messages create mode 100644 tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Duplicated_Messages_New create mode 100644 tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Exchanges_Instance_Roles create mode 100644 tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Exchanges_Instance_Roles_New create mode 100644 tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[OES]_OperationalCapability_1_Roles create mode 100644 tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[OES]_OperationalCapability_1_Roles_New diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/TextualScenarioParser.java b/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/TextualScenarioParser.java index 6f58ab02..b6968708 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/TextualScenarioParser.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/TextualScenarioParser.java @@ -53,6 +53,7 @@ protected String getRuleName(AbstractElement element) { put(grammarAccess.getElementAccess().getAlternatives(), "rule__Element__Alternatives"); put(grammarAccess.getMessageAccess().getAlternatives(), "rule__Message__Alternatives"); put(grammarAccess.getSequenceMessageTypeAccess().getAlternatives(), "rule__SequenceMessageType__Alternatives"); + put(grammarAccess.getLostFoundMessageAccess().getAlternatives(), "rule__LostFoundMessage__Alternatives"); put(grammarAccess.getCombinedFragmentAccess().getKeywordAlternatives_0_0(), "rule__CombinedFragment__KeywordAlternatives_0_0"); put(grammarAccess.getStateFragmentAccess().getKeywordAlternatives_2_0(), "rule__StateFragment__KeywordAlternatives_2_0"); put(grammarAccess.getModelAccess().getGroup(), "rule__Model__Group__0"); @@ -67,11 +68,14 @@ protected String getRuleName(AbstractElement element) { put(grammarAccess.getCreateMessageAccess().getGroup(), "rule__CreateMessage__Group__0"); put(grammarAccess.getDeleteMessageAccess().getGroup(), "rule__DeleteMessage__Group__0"); put(grammarAccess.getArmTimerMessageAccess().getGroup(), "rule__ArmTimerMessage__Group__0"); + put(grammarAccess.getLostMessageAccess().getGroup(), "rule__LostMessage__Group__0"); + put(grammarAccess.getFoundMessageAccess().getGroup(), "rule__FoundMessage__Group__0"); put(grammarAccess.getParticipantDeactivationAccess().getGroup(), "rule__ParticipantDeactivation__Group__0"); put(grammarAccess.getCombinedFragmentAccess().getGroup(), "rule__CombinedFragment__Group__0"); put(grammarAccess.getOperandAccess().getGroup(), "rule__Operand__Group__0"); put(grammarAccess.getBlockAccess().getGroup(), "rule__Block__Group__0"); put(grammarAccess.getStateFragmentAccess().getGroup(), "rule__StateFragment__Group__0"); + put(grammarAccess.getReferenceAccess().getGroup(), "rule__Reference__Group__0"); put(grammarAccess.getModelAccess().getBeginAssignment_1(), "rule__Model__BeginAssignment_1"); put(grammarAccess.getModelAccess().getParticipantsAssignment_2(), "rule__Model__ParticipantsAssignment_2"); put(grammarAccess.getModelAccess().getElementsAssignment_3(), "rule__Model__ElementsAssignment_3"); @@ -112,6 +116,15 @@ protected String getRuleName(AbstractElement element) { put(grammarAccess.getArmTimerMessageAccess().getExecutionAssignment_2(), "rule__ArmTimerMessage__ExecutionAssignment_2"); put(grammarAccess.getArmTimerMessageAccess().getDoubleDotAssignment_3(), "rule__ArmTimerMessage__DoubleDotAssignment_3"); put(grammarAccess.getArmTimerMessageAccess().getNameAssignment_4(), "rule__ArmTimerMessage__NameAssignment_4"); + put(grammarAccess.getLostMessageAccess().getSourceAssignment_0(), "rule__LostMessage__SourceAssignment_0"); + put(grammarAccess.getLostMessageAccess().getArrowAssignment_1(), "rule__LostMessage__ArrowAssignment_1"); + put(grammarAccess.getLostMessageAccess().getDoubleDotAssignment_2(), "rule__LostMessage__DoubleDotAssignment_2"); + put(grammarAccess.getLostMessageAccess().getNameAssignment_3(), "rule__LostMessage__NameAssignment_3"); + put(grammarAccess.getFoundMessageAccess().getArrowAssignment_0(), "rule__FoundMessage__ArrowAssignment_0"); + put(grammarAccess.getFoundMessageAccess().getTargetAssignment_1(), "rule__FoundMessage__TargetAssignment_1"); + put(grammarAccess.getFoundMessageAccess().getExecutionAssignment_2(), "rule__FoundMessage__ExecutionAssignment_2"); + put(grammarAccess.getFoundMessageAccess().getDoubleDotAssignment_3(), "rule__FoundMessage__DoubleDotAssignment_3"); + put(grammarAccess.getFoundMessageAccess().getNameAssignment_4(), "rule__FoundMessage__NameAssignment_4"); put(grammarAccess.getParticipantDeactivationAccess().getKeywordAssignment_0(), "rule__ParticipantDeactivation__KeywordAssignment_0"); put(grammarAccess.getParticipantDeactivationAccess().getNameAssignment_1(), "rule__ParticipantDeactivation__NameAssignment_1"); put(grammarAccess.getCombinedFragmentAccess().getKeywordAssignment_0(), "rule__CombinedFragment__KeywordAssignment_0"); @@ -130,6 +143,10 @@ protected String getRuleName(AbstractElement element) { put(grammarAccess.getStateFragmentAccess().getTimelineAssignment_1(), "rule__StateFragment__TimelineAssignment_1"); put(grammarAccess.getStateFragmentAccess().getKeywordAssignment_2(), "rule__StateFragment__KeywordAssignment_2"); put(grammarAccess.getStateFragmentAccess().getNameAssignment_3(), "rule__StateFragment__NameAssignment_3"); + put(grammarAccess.getReferenceAccess().getKeywordAssignment_0(), "rule__Reference__KeywordAssignment_0"); + put(grammarAccess.getReferenceAccess().getNameAssignment_1(), "rule__Reference__NameAssignment_1"); + put(grammarAccess.getReferenceAccess().getOverAssignment_2(), "rule__Reference__OverAssignment_2"); + put(grammarAccess.getReferenceAccess().getTimelinesAssignment_3(), "rule__Reference__TimelinesAssignment_3"); } }; } diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenario.g b/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenario.g index be262ac8..0d1e79ab 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenario.g +++ b/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenario.g @@ -499,6 +499,81 @@ finally { restoreStackSize(stackSize); } +// Entry rule entryRuleLostFoundMessage +entryRuleLostFoundMessage +: +{ before(grammarAccess.getLostFoundMessageRule()); } + ruleLostFoundMessage +{ after(grammarAccess.getLostFoundMessageRule()); } + EOF +; + +// Rule LostFoundMessage +ruleLostFoundMessage + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getLostFoundMessageAccess().getAlternatives()); } + (rule__LostFoundMessage__Alternatives) + { after(grammarAccess.getLostFoundMessageAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleLostMessage +entryRuleLostMessage +: +{ before(grammarAccess.getLostMessageRule()); } + ruleLostMessage +{ after(grammarAccess.getLostMessageRule()); } + EOF +; + +// Rule LostMessage +ruleLostMessage + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getLostMessageAccess().getGroup()); } + (rule__LostMessage__Group__0) + { after(grammarAccess.getLostMessageAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleFoundMessage +entryRuleFoundMessage +: +{ before(grammarAccess.getFoundMessageRule()); } + ruleFoundMessage +{ after(grammarAccess.getFoundMessageRule()); } + EOF +; + +// Rule FoundMessage +ruleFoundMessage + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getFoundMessageAccess().getGroup()); } + (rule__FoundMessage__Group__0) + { after(grammarAccess.getFoundMessageAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + // Entry rule entryRuleParticipantDeactivation entryRuleParticipantDeactivation : @@ -624,6 +699,31 @@ finally { restoreStackSize(stackSize); } +// Entry rule entryRuleReference +entryRuleReference +: +{ before(grammarAccess.getReferenceRule()); } + ruleReference +{ after(grammarAccess.getReferenceRule()); } + EOF +; + +// Rule Reference +ruleReference + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getReferenceAccess().getGroup()); } + (rule__Reference__Group__0) + { after(grammarAccess.getReferenceAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + rule__Participant__Alternatives @init { int stackSize = keepStackSize(); @@ -727,6 +827,12 @@ rule__Element__Alternatives ruleStateFragment { after(grammarAccess.getElementAccess().getStateFragmentParserRuleCall_2()); } ) + | + ( + { before(grammarAccess.getElementAccess().getReferenceParserRuleCall_3()); } + ruleReference + { after(grammarAccess.getElementAccess().getReferenceParserRuleCall_3()); } + ) ; finally { restoreStackSize(stackSize); @@ -754,6 +860,12 @@ rule__Message__Alternatives ruleParticipantDeactivation { after(grammarAccess.getMessageAccess().getParticipantDeactivationParserRuleCall_2()); } ) + | + ( + { before(grammarAccess.getMessageAccess().getLostFoundMessageParserRuleCall_3()); } + ruleLostFoundMessage + { after(grammarAccess.getMessageAccess().getLostFoundMessageParserRuleCall_3()); } + ) ; finally { restoreStackSize(stackSize); @@ -786,6 +898,27 @@ finally { restoreStackSize(stackSize); } +rule__LostFoundMessage__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLostFoundMessageAccess().getLostMessageParserRuleCall_0()); } + ruleLostMessage + { after(grammarAccess.getLostFoundMessageAccess().getLostMessageParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getLostFoundMessageAccess().getFoundMessageParserRuleCall_1()); } + ruleFoundMessage + { after(grammarAccess.getLostFoundMessageAccess().getFoundMessageParserRuleCall_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + rule__CombinedFragment__KeywordAlternatives_0_0 @init { int stackSize = keepStackSize(); @@ -1995,303 +2128,296 @@ finally { } -rule__ParticipantDeactivation__Group__0 +rule__LostMessage__Group__0 @init { int stackSize = keepStackSize(); } : - rule__ParticipantDeactivation__Group__0__Impl - rule__ParticipantDeactivation__Group__1 + rule__LostMessage__Group__0__Impl + rule__LostMessage__Group__1 ; finally { restoreStackSize(stackSize); } -rule__ParticipantDeactivation__Group__0__Impl +rule__LostMessage__Group__0__Impl @init { int stackSize = keepStackSize(); } : ( - { before(grammarAccess.getParticipantDeactivationAccess().getKeywordAssignment_0()); } - (rule__ParticipantDeactivation__KeywordAssignment_0) - { after(grammarAccess.getParticipantDeactivationAccess().getKeywordAssignment_0()); } + { before(grammarAccess.getLostMessageAccess().getSourceAssignment_0()); } + (rule__LostMessage__SourceAssignment_0) + { after(grammarAccess.getLostMessageAccess().getSourceAssignment_0()); } ) ; finally { restoreStackSize(stackSize); } -rule__ParticipantDeactivation__Group__1 +rule__LostMessage__Group__1 @init { int stackSize = keepStackSize(); } : - rule__ParticipantDeactivation__Group__1__Impl + rule__LostMessage__Group__1__Impl + rule__LostMessage__Group__2 ; finally { restoreStackSize(stackSize); } -rule__ParticipantDeactivation__Group__1__Impl +rule__LostMessage__Group__1__Impl @init { int stackSize = keepStackSize(); } : ( - { before(grammarAccess.getParticipantDeactivationAccess().getNameAssignment_1()); } - (rule__ParticipantDeactivation__NameAssignment_1) - { after(grammarAccess.getParticipantDeactivationAccess().getNameAssignment_1()); } + { before(grammarAccess.getLostMessageAccess().getArrowAssignment_1()); } + (rule__LostMessage__ArrowAssignment_1) + { after(grammarAccess.getLostMessageAccess().getArrowAssignment_1()); } ) ; finally { restoreStackSize(stackSize); } - -rule__CombinedFragment__Group__0 +rule__LostMessage__Group__2 @init { int stackSize = keepStackSize(); } : - rule__CombinedFragment__Group__0__Impl - rule__CombinedFragment__Group__1 + rule__LostMessage__Group__2__Impl + rule__LostMessage__Group__3 ; finally { restoreStackSize(stackSize); } -rule__CombinedFragment__Group__0__Impl +rule__LostMessage__Group__2__Impl @init { int stackSize = keepStackSize(); } : ( - { before(grammarAccess.getCombinedFragmentAccess().getKeywordAssignment_0()); } - (rule__CombinedFragment__KeywordAssignment_0) - { after(grammarAccess.getCombinedFragmentAccess().getKeywordAssignment_0()); } + { before(grammarAccess.getLostMessageAccess().getDoubleDotAssignment_2()); } + (rule__LostMessage__DoubleDotAssignment_2) + { after(grammarAccess.getLostMessageAccess().getDoubleDotAssignment_2()); } ) ; finally { restoreStackSize(stackSize); } -rule__CombinedFragment__Group__1 +rule__LostMessage__Group__3 @init { int stackSize = keepStackSize(); } : - rule__CombinedFragment__Group__1__Impl - rule__CombinedFragment__Group__2 + rule__LostMessage__Group__3__Impl ; finally { restoreStackSize(stackSize); } -rule__CombinedFragment__Group__1__Impl +rule__LostMessage__Group__3__Impl @init { int stackSize = keepStackSize(); } : ( - { before(grammarAccess.getCombinedFragmentAccess().getExpressionAssignment_1()); } - (rule__CombinedFragment__ExpressionAssignment_1) - { after(grammarAccess.getCombinedFragmentAccess().getExpressionAssignment_1()); } + { before(grammarAccess.getLostMessageAccess().getNameAssignment_3()); } + (rule__LostMessage__NameAssignment_3) + { after(grammarAccess.getLostMessageAccess().getNameAssignment_3()); } ) ; finally { restoreStackSize(stackSize); } -rule__CombinedFragment__Group__2 + +rule__FoundMessage__Group__0 @init { int stackSize = keepStackSize(); } : - rule__CombinedFragment__Group__2__Impl - rule__CombinedFragment__Group__3 + rule__FoundMessage__Group__0__Impl + rule__FoundMessage__Group__1 ; finally { restoreStackSize(stackSize); } -rule__CombinedFragment__Group__2__Impl +rule__FoundMessage__Group__0__Impl @init { int stackSize = keepStackSize(); } : ( - { before(grammarAccess.getCombinedFragmentAccess().getOverAssignment_2()); } - (rule__CombinedFragment__OverAssignment_2) - { after(grammarAccess.getCombinedFragmentAccess().getOverAssignment_2()); } + { before(grammarAccess.getFoundMessageAccess().getArrowAssignment_0()); } + (rule__FoundMessage__ArrowAssignment_0) + { after(grammarAccess.getFoundMessageAccess().getArrowAssignment_0()); } ) ; finally { restoreStackSize(stackSize); } -rule__CombinedFragment__Group__3 +rule__FoundMessage__Group__1 @init { int stackSize = keepStackSize(); } : - rule__CombinedFragment__Group__3__Impl - rule__CombinedFragment__Group__4 + rule__FoundMessage__Group__1__Impl + rule__FoundMessage__Group__2 ; finally { restoreStackSize(stackSize); } -rule__CombinedFragment__Group__3__Impl +rule__FoundMessage__Group__1__Impl @init { int stackSize = keepStackSize(); } : ( - ( - { before(grammarAccess.getCombinedFragmentAccess().getTimelinesAssignment_3()); } - (rule__CombinedFragment__TimelinesAssignment_3) - { after(grammarAccess.getCombinedFragmentAccess().getTimelinesAssignment_3()); } - ) - ( - { before(grammarAccess.getCombinedFragmentAccess().getTimelinesAssignment_3()); } - (rule__CombinedFragment__TimelinesAssignment_3)* - { after(grammarAccess.getCombinedFragmentAccess().getTimelinesAssignment_3()); } - ) + { before(grammarAccess.getFoundMessageAccess().getTargetAssignment_1()); } + (rule__FoundMessage__TargetAssignment_1) + { after(grammarAccess.getFoundMessageAccess().getTargetAssignment_1()); } ) ; finally { restoreStackSize(stackSize); } -rule__CombinedFragment__Group__4 +rule__FoundMessage__Group__2 @init { int stackSize = keepStackSize(); } : - rule__CombinedFragment__Group__4__Impl - rule__CombinedFragment__Group__5 + rule__FoundMessage__Group__2__Impl + rule__FoundMessage__Group__3 ; finally { restoreStackSize(stackSize); } -rule__CombinedFragment__Group__4__Impl +rule__FoundMessage__Group__2__Impl @init { int stackSize = keepStackSize(); } : ( - { before(grammarAccess.getCombinedFragmentAccess().getBlockAssignment_4()); } - (rule__CombinedFragment__BlockAssignment_4) - { after(grammarAccess.getCombinedFragmentAccess().getBlockAssignment_4()); } + { before(grammarAccess.getFoundMessageAccess().getExecutionAssignment_2()); } + (rule__FoundMessage__ExecutionAssignment_2)? + { after(grammarAccess.getFoundMessageAccess().getExecutionAssignment_2()); } ) ; finally { restoreStackSize(stackSize); } -rule__CombinedFragment__Group__5 +rule__FoundMessage__Group__3 @init { int stackSize = keepStackSize(); } : - rule__CombinedFragment__Group__5__Impl + rule__FoundMessage__Group__3__Impl + rule__FoundMessage__Group__4 ; finally { restoreStackSize(stackSize); } -rule__CombinedFragment__Group__5__Impl +rule__FoundMessage__Group__3__Impl @init { int stackSize = keepStackSize(); } : ( - { before(grammarAccess.getCombinedFragmentAccess().getOperandsAssignment_5()); } - (rule__CombinedFragment__OperandsAssignment_5)* - { after(grammarAccess.getCombinedFragmentAccess().getOperandsAssignment_5()); } + { before(grammarAccess.getFoundMessageAccess().getDoubleDotAssignment_3()); } + (rule__FoundMessage__DoubleDotAssignment_3) + { after(grammarAccess.getFoundMessageAccess().getDoubleDotAssignment_3()); } ) ; finally { restoreStackSize(stackSize); } - -rule__Operand__Group__0 +rule__FoundMessage__Group__4 @init { int stackSize = keepStackSize(); } : - rule__Operand__Group__0__Impl - rule__Operand__Group__1 + rule__FoundMessage__Group__4__Impl ; finally { restoreStackSize(stackSize); } -rule__Operand__Group__0__Impl +rule__FoundMessage__Group__4__Impl @init { int stackSize = keepStackSize(); } : ( - { before(grammarAccess.getOperandAccess().getKeywordAssignment_0()); } - (rule__Operand__KeywordAssignment_0)? - { after(grammarAccess.getOperandAccess().getKeywordAssignment_0()); } + { before(grammarAccess.getFoundMessageAccess().getNameAssignment_4()); } + (rule__FoundMessage__NameAssignment_4) + { after(grammarAccess.getFoundMessageAccess().getNameAssignment_4()); } ) ; finally { restoreStackSize(stackSize); } -rule__Operand__Group__1 + +rule__ParticipantDeactivation__Group__0 @init { int stackSize = keepStackSize(); } : - rule__Operand__Group__1__Impl - rule__Operand__Group__2 + rule__ParticipantDeactivation__Group__0__Impl + rule__ParticipantDeactivation__Group__1 ; finally { restoreStackSize(stackSize); } -rule__Operand__Group__1__Impl +rule__ParticipantDeactivation__Group__0__Impl @init { int stackSize = keepStackSize(); } : ( - { before(grammarAccess.getOperandAccess().getExpressionAssignment_1()); } - (rule__Operand__ExpressionAssignment_1) - { after(grammarAccess.getOperandAccess().getExpressionAssignment_1()); } + { before(grammarAccess.getParticipantDeactivationAccess().getKeywordAssignment_0()); } + (rule__ParticipantDeactivation__KeywordAssignment_0) + { after(grammarAccess.getParticipantDeactivationAccess().getKeywordAssignment_0()); } ) ; finally { restoreStackSize(stackSize); } -rule__Operand__Group__2 +rule__ParticipantDeactivation__Group__1 @init { int stackSize = keepStackSize(); } : - rule__Operand__Group__2__Impl + rule__ParticipantDeactivation__Group__1__Impl ; finally { restoreStackSize(stackSize); } -rule__Operand__Group__2__Impl +rule__ParticipantDeactivation__Group__1__Impl @init { int stackSize = keepStackSize(); } : ( - { before(grammarAccess.getOperandAccess().getBlockAssignment_2()); } - (rule__Operand__BlockAssignment_2) - { after(grammarAccess.getOperandAccess().getBlockAssignment_2()); } + { before(grammarAccess.getParticipantDeactivationAccess().getNameAssignment_1()); } + (rule__ParticipantDeactivation__NameAssignment_1) + { after(grammarAccess.getParticipantDeactivationAccess().getNameAssignment_1()); } ) ; finally { @@ -2299,148 +2425,398 @@ finally { } -rule__Block__Group__0 +rule__CombinedFragment__Group__0 @init { int stackSize = keepStackSize(); } : - rule__Block__Group__0__Impl - rule__Block__Group__1 + rule__CombinedFragment__Group__0__Impl + rule__CombinedFragment__Group__1 ; finally { restoreStackSize(stackSize); } -rule__Block__Group__0__Impl +rule__CombinedFragment__Group__0__Impl @init { int stackSize = keepStackSize(); } : ( - { before(grammarAccess.getBlockAccess().getBeginAssignment_0()); } - (rule__Block__BeginAssignment_0) - { after(grammarAccess.getBlockAccess().getBeginAssignment_0()); } + { before(grammarAccess.getCombinedFragmentAccess().getKeywordAssignment_0()); } + (rule__CombinedFragment__KeywordAssignment_0) + { after(grammarAccess.getCombinedFragmentAccess().getKeywordAssignment_0()); } ) ; finally { restoreStackSize(stackSize); } -rule__Block__Group__1 +rule__CombinedFragment__Group__1 @init { int stackSize = keepStackSize(); } : - rule__Block__Group__1__Impl - rule__Block__Group__2 + rule__CombinedFragment__Group__1__Impl + rule__CombinedFragment__Group__2 ; finally { restoreStackSize(stackSize); } -rule__Block__Group__1__Impl +rule__CombinedFragment__Group__1__Impl @init { int stackSize = keepStackSize(); } : ( - { before(grammarAccess.getBlockAccess().getBlockElementsAssignment_1()); } - (rule__Block__BlockElementsAssignment_1)* - { after(grammarAccess.getBlockAccess().getBlockElementsAssignment_1()); } + { before(grammarAccess.getCombinedFragmentAccess().getExpressionAssignment_1()); } + (rule__CombinedFragment__ExpressionAssignment_1)? + { after(grammarAccess.getCombinedFragmentAccess().getExpressionAssignment_1()); } ) ; finally { restoreStackSize(stackSize); } -rule__Block__Group__2 +rule__CombinedFragment__Group__2 @init { int stackSize = keepStackSize(); } : - rule__Block__Group__2__Impl + rule__CombinedFragment__Group__2__Impl + rule__CombinedFragment__Group__3 ; finally { restoreStackSize(stackSize); } -rule__Block__Group__2__Impl +rule__CombinedFragment__Group__2__Impl @init { int stackSize = keepStackSize(); } : ( - { before(grammarAccess.getBlockAccess().getEndAssignment_2()); } - (rule__Block__EndAssignment_2) - { after(grammarAccess.getBlockAccess().getEndAssignment_2()); } + { before(grammarAccess.getCombinedFragmentAccess().getOverAssignment_2()); } + (rule__CombinedFragment__OverAssignment_2) + { after(grammarAccess.getCombinedFragmentAccess().getOverAssignment_2()); } ) ; finally { restoreStackSize(stackSize); } - -rule__StateFragment__Group__0 +rule__CombinedFragment__Group__3 @init { int stackSize = keepStackSize(); } : - rule__StateFragment__Group__0__Impl - rule__StateFragment__Group__1 + rule__CombinedFragment__Group__3__Impl + rule__CombinedFragment__Group__4 ; finally { restoreStackSize(stackSize); } -rule__StateFragment__Group__0__Impl +rule__CombinedFragment__Group__3__Impl @init { int stackSize = keepStackSize(); } : ( - { before(grammarAccess.getStateFragmentAccess().getOnAssignment_0()); } - (rule__StateFragment__OnAssignment_0) - { after(grammarAccess.getStateFragmentAccess().getOnAssignment_0()); } + ( + { before(grammarAccess.getCombinedFragmentAccess().getTimelinesAssignment_3()); } + (rule__CombinedFragment__TimelinesAssignment_3) + { after(grammarAccess.getCombinedFragmentAccess().getTimelinesAssignment_3()); } + ) + ( + { before(grammarAccess.getCombinedFragmentAccess().getTimelinesAssignment_3()); } + (rule__CombinedFragment__TimelinesAssignment_3)* + { after(grammarAccess.getCombinedFragmentAccess().getTimelinesAssignment_3()); } + ) ) ; finally { restoreStackSize(stackSize); } -rule__StateFragment__Group__1 +rule__CombinedFragment__Group__4 @init { int stackSize = keepStackSize(); } : - rule__StateFragment__Group__1__Impl - rule__StateFragment__Group__2 + rule__CombinedFragment__Group__4__Impl + rule__CombinedFragment__Group__5 ; finally { restoreStackSize(stackSize); } -rule__StateFragment__Group__1__Impl +rule__CombinedFragment__Group__4__Impl @init { int stackSize = keepStackSize(); } : ( - { before(grammarAccess.getStateFragmentAccess().getTimelineAssignment_1()); } - (rule__StateFragment__TimelineAssignment_1) - { after(grammarAccess.getStateFragmentAccess().getTimelineAssignment_1()); } + { before(grammarAccess.getCombinedFragmentAccess().getBlockAssignment_4()); } + (rule__CombinedFragment__BlockAssignment_4) + { after(grammarAccess.getCombinedFragmentAccess().getBlockAssignment_4()); } ) ; finally { restoreStackSize(stackSize); } -rule__StateFragment__Group__2 +rule__CombinedFragment__Group__5 @init { int stackSize = keepStackSize(); } : - rule__StateFragment__Group__2__Impl - rule__StateFragment__Group__3 + rule__CombinedFragment__Group__5__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__CombinedFragment__Group__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getCombinedFragmentAccess().getOperandsAssignment_5()); } + (rule__CombinedFragment__OperandsAssignment_5)* + { after(grammarAccess.getCombinedFragmentAccess().getOperandsAssignment_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Operand__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Operand__Group__0__Impl + rule__Operand__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Operand__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getOperandAccess().getKeywordAssignment_0()); } + (rule__Operand__KeywordAssignment_0)? + { after(grammarAccess.getOperandAccess().getKeywordAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Operand__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Operand__Group__1__Impl + rule__Operand__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__Operand__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getOperandAccess().getExpressionAssignment_1()); } + (rule__Operand__ExpressionAssignment_1)? + { after(grammarAccess.getOperandAccess().getExpressionAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Operand__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Operand__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Operand__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getOperandAccess().getBlockAssignment_2()); } + (rule__Operand__BlockAssignment_2) + { after(grammarAccess.getOperandAccess().getBlockAssignment_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__Block__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Block__Group__0__Impl + rule__Block__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Block__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getBlockAccess().getBeginAssignment_0()); } + (rule__Block__BeginAssignment_0) + { after(grammarAccess.getBlockAccess().getBeginAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Block__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Block__Group__1__Impl + rule__Block__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__Block__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getBlockAccess().getBlockElementsAssignment_1()); } + (rule__Block__BlockElementsAssignment_1)* + { after(grammarAccess.getBlockAccess().getBlockElementsAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Block__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Block__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Block__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getBlockAccess().getEndAssignment_2()); } + (rule__Block__EndAssignment_2) + { after(grammarAccess.getBlockAccess().getEndAssignment_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__StateFragment__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__StateFragment__Group__0__Impl + rule__StateFragment__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__StateFragment__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getStateFragmentAccess().getOnAssignment_0()); } + (rule__StateFragment__OnAssignment_0) + { after(grammarAccess.getStateFragmentAccess().getOnAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__StateFragment__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__StateFragment__Group__1__Impl + rule__StateFragment__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__StateFragment__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getStateFragmentAccess().getTimelineAssignment_1()); } + (rule__StateFragment__TimelineAssignment_1) + { after(grammarAccess.getStateFragmentAccess().getTimelineAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__StateFragment__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__StateFragment__Group__2__Impl + rule__StateFragment__Group__3 ; finally { restoreStackSize(stackSize); @@ -2488,6 +2864,121 @@ finally { } +rule__Reference__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Reference__Group__0__Impl + rule__Reference__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Reference__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getReferenceAccess().getKeywordAssignment_0()); } + (rule__Reference__KeywordAssignment_0) + { after(grammarAccess.getReferenceAccess().getKeywordAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Reference__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Reference__Group__1__Impl + rule__Reference__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__Reference__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getReferenceAccess().getNameAssignment_1()); } + (rule__Reference__NameAssignment_1) + { after(grammarAccess.getReferenceAccess().getNameAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Reference__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Reference__Group__2__Impl + rule__Reference__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__Reference__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getReferenceAccess().getOverAssignment_2()); } + (rule__Reference__OverAssignment_2) + { after(grammarAccess.getReferenceAccess().getOverAssignment_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Reference__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__Reference__Group__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Reference__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + ( + { before(grammarAccess.getReferenceAccess().getTimelinesAssignment_3()); } + (rule__Reference__TimelinesAssignment_3) + { after(grammarAccess.getReferenceAccess().getTimelinesAssignment_3()); } + ) + ( + { before(grammarAccess.getReferenceAccess().getTimelinesAssignment_3()); } + (rule__Reference__TimelinesAssignment_3)* + { after(grammarAccess.getReferenceAccess().getTimelinesAssignment_3()); } + ) +) +; +finally { + restoreStackSize(stackSize); +} + + rule__Model__BeginAssignment_1 @init { int stackSize = keepStackSize(); @@ -3168,6 +3659,161 @@ finally { restoreStackSize(stackSize); } +rule__LostMessage__SourceAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLostMessageAccess().getSourceSTRINGTerminalRuleCall_0_0()); } + RULE_STRING + { after(grammarAccess.getLostMessageAccess().getSourceSTRINGTerminalRuleCall_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LostMessage__ArrowAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLostMessageAccess().getArrowOKeyword_1_0()); } + ( + { before(grammarAccess.getLostMessageAccess().getArrowOKeyword_1_0()); } + '->o' + { after(grammarAccess.getLostMessageAccess().getArrowOKeyword_1_0()); } + ) + { after(grammarAccess.getLostMessageAccess().getArrowOKeyword_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LostMessage__DoubleDotAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLostMessageAccess().getDoubleDotColonKeyword_2_0()); } + ( + { before(grammarAccess.getLostMessageAccess().getDoubleDotColonKeyword_2_0()); } + ':' + { after(grammarAccess.getLostMessageAccess().getDoubleDotColonKeyword_2_0()); } + ) + { after(grammarAccess.getLostMessageAccess().getDoubleDotColonKeyword_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__LostMessage__NameAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getLostMessageAccess().getNameSTRINGTerminalRuleCall_3_0()); } + RULE_STRING + { after(grammarAccess.getLostMessageAccess().getNameSTRINGTerminalRuleCall_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__FoundMessage__ArrowAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getFoundMessageAccess().getArrowOKeyword_0_0()); } + ( + { before(grammarAccess.getFoundMessageAccess().getArrowOKeyword_0_0()); } + 'o->' + { after(grammarAccess.getFoundMessageAccess().getArrowOKeyword_0_0()); } + ) + { after(grammarAccess.getFoundMessageAccess().getArrowOKeyword_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__FoundMessage__TargetAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getFoundMessageAccess().getTargetSTRINGTerminalRuleCall_1_0()); } + RULE_STRING + { after(grammarAccess.getFoundMessageAccess().getTargetSTRINGTerminalRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__FoundMessage__ExecutionAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getFoundMessageAccess().getExecutionWithExecutionKeyword_2_0()); } + ( + { before(grammarAccess.getFoundMessageAccess().getExecutionWithExecutionKeyword_2_0()); } + 'withExecution' + { after(grammarAccess.getFoundMessageAccess().getExecutionWithExecutionKeyword_2_0()); } + ) + { after(grammarAccess.getFoundMessageAccess().getExecutionWithExecutionKeyword_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__FoundMessage__DoubleDotAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getFoundMessageAccess().getDoubleDotColonKeyword_3_0()); } + ( + { before(grammarAccess.getFoundMessageAccess().getDoubleDotColonKeyword_3_0()); } + ':' + { after(grammarAccess.getFoundMessageAccess().getDoubleDotColonKeyword_3_0()); } + ) + { after(grammarAccess.getFoundMessageAccess().getDoubleDotColonKeyword_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__FoundMessage__NameAssignment_4 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getFoundMessageAccess().getNameSTRINGTerminalRuleCall_4_0()); } + RULE_STRING + { after(grammarAccess.getFoundMessageAccess().getNameSTRINGTerminalRuleCall_4_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + rule__ParticipantDeactivation__KeywordAssignment_0 @init { int stackSize = keepStackSize(); @@ -3462,6 +4108,74 @@ finally { restoreStackSize(stackSize); } +rule__Reference__KeywordAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getReferenceAccess().getKeywordRefKeyword_0_0()); } + ( + { before(grammarAccess.getReferenceAccess().getKeywordRefKeyword_0_0()); } + 'ref' + { after(grammarAccess.getReferenceAccess().getKeywordRefKeyword_0_0()); } + ) + { after(grammarAccess.getReferenceAccess().getKeywordRefKeyword_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Reference__NameAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getReferenceAccess().getNameSTRINGTerminalRuleCall_1_0()); } + RULE_STRING + { after(grammarAccess.getReferenceAccess().getNameSTRINGTerminalRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Reference__OverAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getReferenceAccess().getOverOverKeyword_2_0()); } + ( + { before(grammarAccess.getReferenceAccess().getOverOverKeyword_2_0()); } + 'over' + { after(grammarAccess.getReferenceAccess().getOverOverKeyword_2_0()); } + ) + { after(grammarAccess.getReferenceAccess().getOverOverKeyword_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Reference__TimelinesAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getReferenceAccess().getTimelinesSTRINGTerminalRuleCall_3_0()); } + RULE_STRING + { after(grammarAccess.getReferenceAccess().getTimelinesSTRINGTerminalRuleCall_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; RULE_INT : ('0'..'9')+; diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenario.tokens b/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenario.tokens index 0dc248eb..865942c2 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenario.tokens +++ b/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenario.tokens @@ -1,6 +1,7 @@ '->'=34 '->+'=38 '->>'=40 +'->o'=41 '->x'=39 ':'=37 'activity'=31 @@ -10,18 +11,20 @@ 'component'=29 'configuration_item'=30 'critical'=15 -'deactivate'=41 -'else'=43 +'deactivate'=43 +'else'=45 'entity'=32 'function'=24 'ignore'=16 'loop'=12 'mode'=23 'neg'=17 -'on'=44 +'o->'=42 +'on'=46 'opt'=18 -'over'=42 +'over'=44 'par'=13 +'ref'=47 'role'=33 'scenario'=25 'seq'=19 @@ -73,3 +76,6 @@ T__41=41 T__42=42 T__43=43 T__44=44 +T__45=45 +T__46=46 +T__47=47 diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenarioLexer.java b/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenarioLexer.java index 40a832c9..133daef3 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenarioLexer.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenarioLexer.java @@ -62,6 +62,9 @@ public class InternalTextualScenarioLexer extends Lexer { public static final int RULE_WS=9; public static final int RULE_ANY_OTHER=10; 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; @@ -712,10 +715,10 @@ public final void mT__41() throws RecognitionException { try { int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:41:7: ( 'deactivate' ) - // InternalTextualScenario.g:41:9: 'deactivate' + // InternalTextualScenario.g:41:7: ( '->o' ) + // InternalTextualScenario.g:41:9: '->o' { - match("deactivate"); + match("->o"); } @@ -733,10 +736,10 @@ public final void mT__42() throws RecognitionException { try { int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:42:7: ( 'over' ) - // InternalTextualScenario.g:42:9: 'over' + // InternalTextualScenario.g:42:7: ( 'o->' ) + // InternalTextualScenario.g:42:9: 'o->' { - match("over"); + match("o->"); } @@ -754,10 +757,10 @@ public final void mT__43() throws RecognitionException { try { int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:43:7: ( 'else' ) - // InternalTextualScenario.g:43:9: 'else' + // InternalTextualScenario.g:43:7: ( 'deactivate' ) + // InternalTextualScenario.g:43:9: 'deactivate' { - match("else"); + match("deactivate"); } @@ -775,10 +778,10 @@ public final void mT__44() throws RecognitionException { try { int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:44:7: ( 'on' ) - // InternalTextualScenario.g:44:9: 'on' + // InternalTextualScenario.g:44:7: ( 'over' ) + // InternalTextualScenario.g:44:9: 'over' { - match("on"); + match("over"); } @@ -791,15 +794,78 @@ public final void mT__44() throws RecognitionException { } // $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; + // InternalTextualScenario.g:45:7: ( 'else' ) + // InternalTextualScenario.g:45:9: 'else' + { + match("else"); + + + } + + 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; + // InternalTextualScenario.g:46:7: ( 'on' ) + // InternalTextualScenario.g:46:9: 'on' + { + match("on"); + + + } + + 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; + // InternalTextualScenario.g:47:7: ( 'ref' ) + // InternalTextualScenario.g:47:9: 'ref' + { + match("ref"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__47" + // $ANTLR start "RULE_ID" public final void mRULE_ID() throws RecognitionException { try { int _type = RULE_ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:3465:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) - // InternalTextualScenario.g:3465:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + // InternalTextualScenario.g:4179:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) + // InternalTextualScenario.g:4179:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* { - // InternalTextualScenario.g:3465:11: ( '^' )? + // InternalTextualScenario.g:4179:11: ( '^' )? int alt1=2; int LA1_0 = input.LA(1); @@ -808,7 +874,7 @@ public final void mRULE_ID() throws RecognitionException { } switch (alt1) { case 1 : - // InternalTextualScenario.g:3465:11: '^' + // InternalTextualScenario.g:4179:11: '^' { match('^'); @@ -826,7 +892,7 @@ public final void mRULE_ID() throws RecognitionException { recover(mse); throw mse;} - // InternalTextualScenario.g:3465:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + // InternalTextualScenario.g:4179:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* loop2: do { int alt2=2; @@ -875,10 +941,10 @@ public final void mRULE_INT() throws RecognitionException { try { int _type = RULE_INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:3467:10: ( ( '0' .. '9' )+ ) - // InternalTextualScenario.g:3467:12: ( '0' .. '9' )+ + // InternalTextualScenario.g:4181:10: ( ( '0' .. '9' )+ ) + // InternalTextualScenario.g:4181:12: ( '0' .. '9' )+ { - // InternalTextualScenario.g:3467:12: ( '0' .. '9' )+ + // InternalTextualScenario.g:4181:12: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -892,7 +958,7 @@ public final void mRULE_INT() throws RecognitionException { switch (alt3) { case 1 : - // InternalTextualScenario.g:3467:13: '0' .. '9' + // InternalTextualScenario.g:4181:13: '0' .. '9' { matchRange('0','9'); @@ -924,10 +990,10 @@ public final void mRULE_STRING() throws RecognitionException { try { int _type = RULE_STRING; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:3469:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) - // InternalTextualScenario.g:3469:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + // InternalTextualScenario.g:4183:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) + // InternalTextualScenario.g:4183:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) { - // InternalTextualScenario.g:3469:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + // InternalTextualScenario.g:4183:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) int alt6=2; int LA6_0 = input.LA(1); @@ -945,10 +1011,10 @@ else if ( (LA6_0=='\'') ) { } switch (alt6) { case 1 : - // InternalTextualScenario.g:3469:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + // InternalTextualScenario.g:4183:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' { match('\"'); - // InternalTextualScenario.g:3469:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* + // InternalTextualScenario.g:4183:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* loop4: do { int alt4=3; @@ -964,7 +1030,7 @@ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>= switch (alt4) { case 1 : - // InternalTextualScenario.g:3469:21: '\\\\' . + // InternalTextualScenario.g:4183:21: '\\\\' . { match('\\'); matchAny(); @@ -972,7 +1038,7 @@ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>= } break; case 2 : - // InternalTextualScenario.g:3469:28: ~ ( ( '\\\\' | '\"' ) ) + // InternalTextualScenario.g:4183:28: ~ ( ( '\\\\' | '\"' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -997,10 +1063,10 @@ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>= } break; case 2 : - // InternalTextualScenario.g:3469:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' + // InternalTextualScenario.g:4183:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' { match('\''); - // InternalTextualScenario.g:3469:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* + // InternalTextualScenario.g:4183:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* loop5: do { int alt5=3; @@ -1016,7 +1082,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= switch (alt5) { case 1 : - // InternalTextualScenario.g:3469:54: '\\\\' . + // InternalTextualScenario.g:4183:54: '\\\\' . { match('\\'); matchAny(); @@ -1024,7 +1090,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= } break; case 2 : - // InternalTextualScenario.g:3469:61: ~ ( ( '\\\\' | '\\'' ) ) + // InternalTextualScenario.g:4183:61: ~ ( ( '\\\\' | '\\'' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -1067,12 +1133,12 @@ public final void mRULE_ML_COMMENT() throws RecognitionException { try { int _type = RULE_ML_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:3471:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) - // InternalTextualScenario.g:3471:19: '/*' ( options {greedy=false; } : . )* '*/' + // InternalTextualScenario.g:4185:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // InternalTextualScenario.g:4185:19: '/*' ( options {greedy=false; } : . )* '*/' { match("/*"); - // InternalTextualScenario.g:3471:24: ( options {greedy=false; } : . )* + // InternalTextualScenario.g:4185:24: ( options {greedy=false; } : . )* loop7: do { int alt7=2; @@ -1097,7 +1163,7 @@ else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) { switch (alt7) { case 1 : - // InternalTextualScenario.g:3471:52: . + // InternalTextualScenario.g:4185:52: . { matchAny(); @@ -1127,12 +1193,12 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { try { int _type = RULE_SL_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:3473:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) - // InternalTextualScenario.g:3473:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + // InternalTextualScenario.g:4187:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // InternalTextualScenario.g:4187:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? { match("//"); - // InternalTextualScenario.g:3473:24: (~ ( ( '\\n' | '\\r' ) ) )* + // InternalTextualScenario.g:4187:24: (~ ( ( '\\n' | '\\r' ) ) )* loop8: do { int alt8=2; @@ -1145,7 +1211,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { switch (alt8) { case 1 : - // InternalTextualScenario.g:3473:24: ~ ( ( '\\n' | '\\r' ) ) + // InternalTextualScenario.g:4187: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(); @@ -1165,7 +1231,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } } while (true); - // InternalTextualScenario.g:3473:40: ( ( '\\r' )? '\\n' )? + // InternalTextualScenario.g:4187:40: ( ( '\\r' )? '\\n' )? int alt10=2; int LA10_0 = input.LA(1); @@ -1174,9 +1240,9 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } switch (alt10) { case 1 : - // InternalTextualScenario.g:3473:41: ( '\\r' )? '\\n' + // InternalTextualScenario.g:4187:41: ( '\\r' )? '\\n' { - // InternalTextualScenario.g:3473:41: ( '\\r' )? + // InternalTextualScenario.g:4187:41: ( '\\r' )? int alt9=2; int LA9_0 = input.LA(1); @@ -1185,7 +1251,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } switch (alt9) { case 1 : - // InternalTextualScenario.g:3473:41: '\\r' + // InternalTextualScenario.g:4187:41: '\\r' { match('\r'); @@ -1217,10 +1283,10 @@ public final void mRULE_WS() throws RecognitionException { try { int _type = RULE_WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:3475:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) - // InternalTextualScenario.g:3475:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // InternalTextualScenario.g:4189:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // InternalTextualScenario.g:4189:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ { - // InternalTextualScenario.g:3475:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // InternalTextualScenario.g:4189:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ int cnt11=0; loop11: do { @@ -1274,8 +1340,8 @@ public final void mRULE_ANY_OTHER() throws RecognitionException { try { int _type = RULE_ANY_OTHER; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:3477:16: ( . ) - // InternalTextualScenario.g:3477:18: . + // InternalTextualScenario.g:4191:16: ( . ) + // InternalTextualScenario.g:4191:18: . { matchAny(); @@ -1290,8 +1356,8 @@ public final void mRULE_ANY_OTHER() throws RecognitionException { // $ANTLR end "RULE_ANY_OTHER" public void mTokens() throws RecognitionException { - // InternalTextualScenario.g:1:8: ( T__11 | 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 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) - int alt12=41; + // InternalTextualScenario.g:1:8: ( T__11 | 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 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) + int alt12=44; alt12 = dfa12.predict(input); switch (alt12) { case 1 : @@ -1533,49 +1599,70 @@ public void mTokens() throws RecognitionException { } break; case 35 : - // InternalTextualScenario.g:1:214: RULE_ID + // InternalTextualScenario.g:1:214: T__45 { - mRULE_ID(); + mT__45(); } break; case 36 : - // InternalTextualScenario.g:1:222: RULE_INT + // InternalTextualScenario.g:1:220: T__46 { - mRULE_INT(); + mT__46(); } break; case 37 : - // InternalTextualScenario.g:1:231: RULE_STRING + // InternalTextualScenario.g:1:226: T__47 { - mRULE_STRING(); + mT__47(); } break; case 38 : - // InternalTextualScenario.g:1:243: RULE_ML_COMMENT + // InternalTextualScenario.g:1:232: RULE_ID { - mRULE_ML_COMMENT(); + mRULE_ID(); } break; case 39 : - // InternalTextualScenario.g:1:259: RULE_SL_COMMENT + // InternalTextualScenario.g:1:240: RULE_INT { - mRULE_SL_COMMENT(); + mRULE_INT(); } break; case 40 : - // InternalTextualScenario.g:1:275: RULE_WS + // InternalTextualScenario.g:1:249: RULE_STRING { - mRULE_WS(); + mRULE_STRING(); } break; case 41 : - // InternalTextualScenario.g:1:283: RULE_ANY_OTHER + // InternalTextualScenario.g:1:261: RULE_ML_COMMENT + { + mRULE_ML_COMMENT(); + + } + break; + case 42 : + // InternalTextualScenario.g:1:277: RULE_SL_COMMENT + { + mRULE_SL_COMMENT(); + + } + break; + case 43 : + // InternalTextualScenario.g:1:293: RULE_WS + { + mRULE_WS(); + + } + break; + case 44 : + // InternalTextualScenario.g:1:301: RULE_ANY_OTHER { mRULE_ANY_OTHER(); @@ -1589,17 +1676,17 @@ public void mTokens() throws RecognitionException { protected DFA12 dfa12 = new DFA12(this); static final String DFA12_eotS = - "\1\uffff\13\37\2\uffff\2\37\1\33\1\37\1\uffff\1\37\1\33\2\uffff\3\33\2\uffff\3\37\1\uffff\10\37\1\111\6\37\2\uffff\3\37\1\127\1\37\1\uffff\1\37\5\uffff\1\132\3\37\1\137\4\37\1\144\1\145\1\37\1\uffff\1\147\11\37\4\uffff\2\37\1\uffff\3\37\1\166\1\uffff\4\37\2\uffff\1\173\1\uffff\4\37\1\u0080\2\37\1\u0083\1\u0084\3\37\1\u0089\1\37\1\uffff\4\37\1\uffff\1\37\1\u0090\1\37\1\u0092\1\uffff\2\37\2\uffff\3\37\1\u0098\1\uffff\4\37\1\u009d\1\u009e\1\uffff\1\37\1\uffff\1\37\1\u00a1\3\37\1\uffff\4\37\2\uffff\2\37\1\uffff\3\37\1\u00ae\1\u00af\2\37\1\u00b2\1\u00b3\3\37\2\uffff\1\u00b7\1\37\2\uffff\3\37\1\uffff\2\37\1\u00be\1\u00bf\2\37\2\uffff\3\37\1\u00c5\1\37\1\uffff\3\37\1\u00ca\1\uffff"; + "\1\uffff\13\37\2\uffff\2\37\1\33\1\37\1\uffff\1\37\1\33\2\uffff\3\33\2\uffff\3\37\1\uffff\7\37\1\uffff\1\37\1\113\6\37\2\uffff\4\37\1\133\1\37\1\uffff\1\37\5\uffff\1\136\3\37\1\143\4\37\1\150\1\151\1\37\1\uffff\1\153\11\37\1\165\5\uffff\2\37\1\uffff\3\37\1\173\1\uffff\4\37\2\uffff\1\u0080\1\uffff\4\37\1\u0085\2\37\1\u0088\1\u0089\1\uffff\3\37\1\u008e\1\37\1\uffff\4\37\1\uffff\1\37\1\u0095\1\37\1\u0097\1\uffff\2\37\2\uffff\3\37\1\u009d\1\uffff\4\37\1\u00a2\1\u00a3\1\uffff\1\37\1\uffff\1\37\1\u00a6\3\37\1\uffff\4\37\2\uffff\2\37\1\uffff\3\37\1\u00b3\1\u00b4\2\37\1\u00b7\1\u00b8\3\37\2\uffff\1\u00bc\1\37\2\uffff\3\37\1\uffff\2\37\1\u00c3\1\u00c4\2\37\2\uffff\3\37\1\u00ca\1\37\1\uffff\3\37\1\u00cf\1\uffff"; static final String DFA12_eofS = - "\u00cb\uffff"; + "\u00d0\uffff"; static final String DFA12_minS = - "\1\0\1\143\1\157\1\141\1\157\1\147\1\145\1\156\1\143\1\156\1\157\1\165\2\uffff\1\154\1\157\1\76\1\151\1\uffff\1\145\1\101\2\uffff\2\0\1\52\2\uffff\1\164\1\163\1\164\1\uffff\1\157\1\162\1\151\1\155\1\156\1\147\1\164\1\145\1\60\1\161\1\141\1\145\1\163\1\144\1\156\2\uffff\1\164\1\163\1\154\1\53\1\164\1\uffff\1\141\5\uffff\1\60\1\145\1\151\1\160\1\60\1\164\1\160\1\146\1\157\2\60\1\162\1\uffff\1\60\1\151\1\164\1\156\2\145\1\143\1\151\2\145\4\uffff\1\150\1\143\1\uffff\2\162\1\166\1\60\1\uffff\1\151\1\157\1\151\1\162\2\uffff\1\60\1\uffff\1\143\1\145\1\141\1\164\1\60\2\164\2\60\1\105\2\164\1\60\1\151\1\uffff\1\143\1\156\1\147\1\145\1\uffff\1\164\1\60\1\162\1\60\1\uffff\1\151\1\171\2\uffff\1\170\1\145\1\151\1\60\1\uffff\1\164\1\141\1\145\1\165\2\60\1\uffff\1\151\1\uffff\1\157\1\60\1\145\1\164\1\166\1\uffff\1\171\1\154\1\156\1\162\2\uffff\1\157\1\156\1\uffff\1\143\1\165\1\141\2\60\1\164\1\141\2\60\1\165\1\162\1\164\2\uffff\1\60\1\164\2\uffff\1\164\1\156\1\145\1\uffff\2\151\2\60\2\157\2\uffff\2\156\1\137\1\60\1\151\1\uffff\1\164\1\145\1\155\1\60\1\uffff"; + "\1\0\1\143\1\157\1\141\1\157\1\147\1\145\1\55\1\143\1\156\1\157\1\165\2\uffff\1\154\1\145\1\76\1\151\1\uffff\1\145\1\101\2\uffff\2\0\1\52\2\uffff\1\164\1\163\1\164\1\uffff\1\157\1\162\1\151\1\155\1\156\1\147\1\164\1\uffff\1\145\1\60\1\161\1\141\1\145\1\163\1\144\1\156\2\uffff\1\164\1\163\1\154\1\146\1\53\1\164\1\uffff\1\141\5\uffff\1\60\1\145\1\151\1\160\1\60\1\164\1\160\1\146\1\157\2\60\1\162\1\uffff\1\60\1\151\1\164\1\156\2\145\1\143\1\151\2\145\1\60\5\uffff\1\150\1\143\1\uffff\2\162\1\166\1\60\1\uffff\1\151\1\157\1\151\1\162\2\uffff\1\60\1\uffff\1\143\1\145\1\141\1\164\1\60\2\164\2\60\1\uffff\1\105\2\164\1\60\1\151\1\uffff\1\143\1\156\1\147\1\145\1\uffff\1\164\1\60\1\162\1\60\1\uffff\1\151\1\171\2\uffff\1\170\1\145\1\151\1\60\1\uffff\1\164\1\141\1\145\1\165\2\60\1\uffff\1\151\1\uffff\1\157\1\60\1\145\1\164\1\166\1\uffff\1\171\1\154\1\156\1\162\2\uffff\1\157\1\156\1\uffff\1\143\1\165\1\141\2\60\1\164\1\141\2\60\1\165\1\162\1\164\2\uffff\1\60\1\164\2\uffff\1\164\1\156\1\145\1\uffff\2\151\2\60\2\157\2\uffff\2\156\1\137\1\60\1\151\1\uffff\1\164\1\145\1\155\1\60\1\uffff"; static final String DFA12_maxS = - "\1\uffff\1\163\1\157\1\141\1\162\1\147\1\145\1\166\1\164\1\156\1\157\1\165\2\uffff\1\156\1\157\1\76\1\151\1\uffff\1\145\1\172\2\uffff\2\uffff\1\57\2\uffff\1\164\1\163\1\164\1\uffff\1\157\1\162\1\151\2\156\1\147\1\164\1\145\1\172\1\161\1\162\1\145\1\163\1\144\1\156\2\uffff\1\164\1\163\1\154\1\170\1\164\1\uffff\1\141\5\uffff\1\172\1\145\1\157\1\160\1\172\1\164\1\160\1\146\1\157\2\172\1\162\1\uffff\1\172\1\151\1\164\1\156\2\145\1\143\1\151\2\145\4\uffff\1\150\1\143\1\uffff\2\162\1\166\1\172\1\uffff\1\151\1\157\1\151\1\162\2\uffff\1\172\1\uffff\1\143\1\145\1\141\1\164\1\172\2\164\2\172\1\122\2\164\1\172\1\151\1\uffff\1\143\1\156\1\147\1\145\1\uffff\1\164\1\172\1\162\1\172\1\uffff\1\151\1\171\2\uffff\1\170\1\145\1\151\1\172\1\uffff\1\164\1\141\1\145\1\165\2\172\1\uffff\1\151\1\uffff\1\157\1\172\1\145\1\164\1\166\1\uffff\1\171\1\154\1\156\1\162\2\uffff\1\157\1\156\1\uffff\1\143\1\165\1\141\2\172\1\164\1\141\2\172\1\165\1\162\1\164\2\uffff\1\172\1\164\2\uffff\1\164\1\156\1\145\1\uffff\2\151\2\172\2\157\2\uffff\2\156\1\137\1\172\1\151\1\uffff\1\164\1\145\1\155\1\172\1\uffff"; + "\1\uffff\1\163\1\157\1\141\1\162\1\147\1\145\1\166\1\164\1\156\1\157\1\165\2\uffff\1\156\1\157\1\76\1\151\1\uffff\1\145\1\172\2\uffff\2\uffff\1\57\2\uffff\1\164\1\163\1\164\1\uffff\1\157\1\162\1\151\2\156\1\147\1\164\1\uffff\1\145\1\172\1\161\1\162\1\145\1\163\1\144\1\156\2\uffff\1\164\1\163\1\154\1\146\1\170\1\164\1\uffff\1\141\5\uffff\1\172\1\145\1\157\1\160\1\172\1\164\1\160\1\146\1\157\2\172\1\162\1\uffff\1\172\1\151\1\164\1\156\2\145\1\143\1\151\2\145\1\172\5\uffff\1\150\1\143\1\uffff\2\162\1\166\1\172\1\uffff\1\151\1\157\1\151\1\162\2\uffff\1\172\1\uffff\1\143\1\145\1\141\1\164\1\172\2\164\2\172\1\uffff\1\122\2\164\1\172\1\151\1\uffff\1\143\1\156\1\147\1\145\1\uffff\1\164\1\172\1\162\1\172\1\uffff\1\151\1\171\2\uffff\1\170\1\145\1\151\1\172\1\uffff\1\164\1\141\1\145\1\165\2\172\1\uffff\1\151\1\uffff\1\157\1\172\1\145\1\164\1\166\1\uffff\1\171\1\154\1\156\1\162\2\uffff\1\157\1\156\1\uffff\1\143\1\165\1\141\2\172\1\164\1\141\2\172\1\165\1\162\1\164\2\uffff\1\172\1\164\2\uffff\1\164\1\156\1\145\1\uffff\2\151\2\172\2\157\2\uffff\2\156\1\137\1\172\1\151\1\uffff\1\164\1\145\1\155\1\172\1\uffff"; static final String DFA12_acceptS = - "\14\uffff\1\20\1\21\4\uffff\1\33\2\uffff\1\43\1\44\3\uffff\1\50\1\51\3\uffff\1\43\17\uffff\1\20\1\21\5\uffff\1\33\1\uffff\1\44\1\45\1\46\1\47\1\50\14\uffff\1\42\12\uffff\1\34\1\35\1\36\1\30\2\uffff\1\1\4\uffff\1\3\4\uffff\1\7\1\10\1\uffff\1\11\16\uffff\1\2\4\uffff\1\40\4\uffff\1\15\2\uffff\1\41\1\27\4\uffff\1\22\6\uffff\1\14\1\uffff\1\13\5\uffff\1\4\4\uffff\1\6\1\12\2\uffff\1\26\14\uffff\1\25\1\5\2\uffff\1\17\1\16\3\uffff\1\23\6\uffff\1\32\1\37\5\uffff\1\31\4\uffff\1\24"; + "\14\uffff\1\20\1\21\4\uffff\1\33\2\uffff\1\46\1\47\3\uffff\1\53\1\54\3\uffff\1\46\7\uffff\1\40\10\uffff\1\20\1\21\6\uffff\1\33\1\uffff\1\47\1\50\1\51\1\52\1\53\14\uffff\1\44\13\uffff\1\34\1\35\1\36\1\37\1\30\2\uffff\1\1\4\uffff\1\3\4\uffff\1\7\1\10\1\uffff\1\11\11\uffff\1\45\5\uffff\1\2\4\uffff\1\42\4\uffff\1\15\2\uffff\1\43\1\27\4\uffff\1\22\6\uffff\1\14\1\uffff\1\13\5\uffff\1\4\4\uffff\1\6\1\12\2\uffff\1\26\14\uffff\1\25\1\5\2\uffff\1\17\1\16\3\uffff\1\23\6\uffff\1\32\1\41\5\uffff\1\31\4\uffff\1\24"; static final String DFA12_specialS = - "\1\2\26\uffff\1\1\1\0\u00b2\uffff}>"; + "\1\0\26\uffff\1\1\1\2\u00b7\uffff}>"; static final String[] DFA12_transitionS = { "\11\33\2\32\2\33\1\32\22\33\1\32\1\33\1\27\4\33\1\30\5\33\1\20\1\33\1\31\12\26\1\22\6\33\32\25\3\33\1\24\1\25\1\33\1\1\1\25\1\4\1\23\1\16\1\13\2\25\1\5\2\25\1\2\1\12\1\6\1\7\1\3\1\25\1\17\1\10\1\25\1\11\1\25\1\21\3\25\1\14\1\33\1\15\uff82\33", "\1\36\10\uffff\1\34\6\uffff\1\35", @@ -1608,201 +1695,206 @@ public void mTokens() throws RecognitionException { "\1\43\2\uffff\1\42", "\1\44", "\1\45", - "\1\50\1\uffff\1\46\5\uffff\1\47", - "\1\53\1\uffff\1\51\16\uffff\1\52", - "\1\54", + "\1\47\100\uffff\1\51\1\uffff\1\46\5\uffff\1\50", + "\1\54\1\uffff\1\52\16\uffff\1\53", "\1\55", "\1\56", + "\1\57", "", "", - "\1\62\1\uffff\1\61", - "\1\63", - "\1\64", - "\1\65", - "", + "\1\63\1\uffff\1\62", + "\1\65\11\uffff\1\64", + "\1\66", "\1\67", + "", + "\1\71", "\32\37\4\uffff\1\37\1\uffff\32\37", "", "", - "\0\71", - "\0\71", - "\1\72\4\uffff\1\73", + "\0\73", + "\0\73", + "\1\74\4\uffff\1\75", "", "", - "\1\75", - "\1\76", "\1\77", - "", "\1\100", "\1\101", + "", "\1\102", - "\1\103\1\104", - "\1\105", - "\1\106", + "\1\103", + "\1\104", + "\1\105\1\106", "\1\107", "\1\110", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\1\111", + "", "\1\112", - "\1\114\20\uffff\1\113", - "\1\115", - "\1\116", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\1\114", + "\1\116\20\uffff\1\115", "\1\117", "\1\120", - "", - "", "\1\121", "\1\122", + "", + "", "\1\123", - "\1\124\22\uffff\1\126\71\uffff\1\125", - "\1\130", + "\1\124", + "\1\125", + "\1\126", + "\1\127\22\uffff\1\131\60\uffff\1\132\10\uffff\1\130", + "\1\134", "", - "\1\131", + "\1\135", "", "", "", "", "", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\133", - "\1\135\5\uffff\1\134", - "\1\136", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\140", - "\1\141", + "\1\137", + "\1\141\5\uffff\1\140", "\1\142", - "\1\143", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\1\144", + "\1\145", "\1\146", - "", + "\1\147", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\150", - "\1\151", "\1\152", - "\1\153", + "", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\1\154", "\1\155", "\1\156", "\1\157", "\1\160", - "", - "", - "", - "", "\1\161", "\1\162", - "", "\1\163", "\1\164", - "\1\165", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "", + "", + "", + "", + "", + "\1\166", "\1\167", + "", "\1\170", "\1\171", "\1\172", - "", - "", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "", "\1\174", "\1\175", "\1\176", "\1\177", + "", + "", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "", "\1\u0081", "\1\u0082", + "\1\u0083", + "\1\u0084", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u0085\14\uffff\1\u0086", + "\1\u0086", "\1\u0087", - "\1\u0088", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u008a", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "", - "\1\u008b", + "\1\u008a\14\uffff\1\u008b", "\1\u008c", "\1\u008d", - "\1\u008e", - "", - "\1\u008f", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u0091", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\1\u008f", "", + "\1\u0090", + "\1\u0091", + "\1\u0092", "\1\u0093", - "\1\u0094", "", - "", - "\1\u0095", + "\1\u0094", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\1\u0096", - "\1\u0097", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "", + "\1\u0098", "\1\u0099", + "", + "", "\1\u009a", "\1\u009b", "\1\u009c", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "", + "\1\u009e", "\1\u009f", - "", "\1\u00a0", + "\1\u00a1", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u00a2", - "\1\u00a3", + "", "\1\u00a4", "", "\1\u00a5", - "\1\u00a6", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\1\u00a7", "\1\u00a8", - "", - "", "\1\u00a9", - "\1\u00aa", "", + "\1\u00aa", "\1\u00ab", "\1\u00ac", "\1\u00ad", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "", + "", + "\1\u00ae", + "\1\u00af", + "", "\1\u00b0", "\1\u00b1", + "\1\u00b2", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u00b4", "\1\u00b5", "\1\u00b6", - "", - "", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u00b8", - "", - "", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\1\u00b9", "\1\u00ba", "\1\u00bb", "", - "\1\u00bc", - "\1\u00bd", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u00c0", - "\1\u00c1", + "\1\u00bd", + "", "", + "\1\u00be", + "\1\u00bf", + "\1\u00c0", "", + "\1\u00c1", "\1\u00c2", - "\1\u00c3", - "\1\u00c4", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\1\u00c5", "\1\u00c6", "", + "", "\1\u00c7", "\1\u00c8", "\1\u00c9", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\1\u00cb", + "", + "\1\u00cc", + "\1\u00cd", + "\1\u00ce", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "" }; @@ -1836,33 +1928,13 @@ public DFA12(BaseRecognizer recognizer) { this.transition = DFA12_transition; } public String getDescription() { - return "1:1: Tokens : ( T__11 | 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 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; + return "1:1: Tokens : ( T__11 | 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 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; } public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { IntStream input = _input; int _s = s; switch ( s ) { case 0 : - int LA12_24 = input.LA(1); - - s = -1; - if ( ((LA12_24>='\u0000' && LA12_24<='\uFFFF')) ) {s = 57;} - - else s = 27; - - if ( s>=0 ) return s; - break; - case 1 : - int LA12_23 = input.LA(1); - - s = -1; - if ( ((LA12_23>='\u0000' && LA12_23<='\uFFFF')) ) {s = 57;} - - else s = 27; - - if ( s>=0 ) return s; - break; - case 2 : int LA12_0 = input.LA(1); s = -1; @@ -1920,6 +1992,26 @@ public int specialStateTransition(int s, IntStream _input) throws NoViableAltExc else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>='(' && LA12_0<=',')||LA12_0=='.'||(LA12_0>=';' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 27;} + if ( s>=0 ) return s; + break; + case 1 : + int LA12_23 = input.LA(1); + + s = -1; + if ( ((LA12_23>='\u0000' && LA12_23<='\uFFFF')) ) {s = 59;} + + else s = 27; + + if ( s>=0 ) return s; + break; + case 2 : + int LA12_24 = input.LA(1); + + s = -1; + if ( ((LA12_24>='\u0000' && LA12_24<='\uFFFF')) ) {s = 59;} + + else s = 27; + if ( s>=0 ) return s; break; } diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenarioParser.java b/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenarioParser.java index 6b0a4400..8cafd23e 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenarioParser.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl.ide/src-gen/org/polarsys/capella/scenario/editor/dsl/ide/contentassist/antlr/internal/InternalTextualScenarioParser.java @@ -34,7 +34,7 @@ @SuppressWarnings("all") public class InternalTextualScenarioParser extends AbstractInternalContentAssistParser { public static final String[] tokenNames = new String[] { - "", "", "", "", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'alt'", "'loop'", "'par'", "'assert'", "'critical'", "'ignore'", "'neg'", "'opt'", "'seq'", "'strict'", "'unset'", "'state'", "'mode'", "'function'", "'scenario'", "'{'", "'}'", "'actor'", "'component'", "'configuration_item'", "'activity'", "'entity'", "'role'", "'->'", "'withExecution'", "'withReturn'", "':'", "'->+'", "'->x'", "'->>'", "'deactivate'", "'over'", "'else'", "'on'" + "", "", "", "", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'alt'", "'loop'", "'par'", "'assert'", "'critical'", "'ignore'", "'neg'", "'opt'", "'seq'", "'strict'", "'unset'", "'state'", "'mode'", "'function'", "'scenario'", "'{'", "'}'", "'actor'", "'component'", "'configuration_item'", "'activity'", "'entity'", "'role'", "'->'", "'withExecution'", "'withReturn'", "':'", "'->+'", "'->x'", "'->>'", "'->o'", "'o->'", "'deactivate'", "'over'", "'else'", "'on'", "'ref'" }; public static final int T__19=19; public static final int T__15=15; @@ -74,6 +74,9 @@ public class InternalTextualScenarioParser extends AbstractInternalContentAssist public static final int RULE_WS=9; public static final int RULE_ANY_OTHER=10; 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; @@ -1500,12 +1503,243 @@ public final void ruleArmTimerMessage() throws RecognitionException { // $ANTLR end "ruleArmTimerMessage" + // $ANTLR start "entryRuleLostFoundMessage" + // InternalTextualScenario.g:503:1: entryRuleLostFoundMessage : ruleLostFoundMessage EOF ; + public final void entryRuleLostFoundMessage() throws RecognitionException { + try { + // InternalTextualScenario.g:504:1: ( ruleLostFoundMessage EOF ) + // InternalTextualScenario.g:505:1: ruleLostFoundMessage EOF + { + before(grammarAccess.getLostFoundMessageRule()); + pushFollow(FOLLOW_1); + ruleLostFoundMessage(); + + state._fsp--; + + after(grammarAccess.getLostFoundMessageRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleLostFoundMessage" + + + // $ANTLR start "ruleLostFoundMessage" + // InternalTextualScenario.g:512:1: ruleLostFoundMessage : ( ( rule__LostFoundMessage__Alternatives ) ) ; + public final void ruleLostFoundMessage() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:516:2: ( ( ( rule__LostFoundMessage__Alternatives ) ) ) + // InternalTextualScenario.g:517:2: ( ( rule__LostFoundMessage__Alternatives ) ) + { + // InternalTextualScenario.g:517:2: ( ( rule__LostFoundMessage__Alternatives ) ) + // InternalTextualScenario.g:518:3: ( rule__LostFoundMessage__Alternatives ) + { + before(grammarAccess.getLostFoundMessageAccess().getAlternatives()); + // InternalTextualScenario.g:519:3: ( rule__LostFoundMessage__Alternatives ) + // InternalTextualScenario.g:519:4: rule__LostFoundMessage__Alternatives + { + pushFollow(FOLLOW_2); + rule__LostFoundMessage__Alternatives(); + + state._fsp--; + + + } + + after(grammarAccess.getLostFoundMessageAccess().getAlternatives()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleLostFoundMessage" + + + // $ANTLR start "entryRuleLostMessage" + // InternalTextualScenario.g:528:1: entryRuleLostMessage : ruleLostMessage EOF ; + public final void entryRuleLostMessage() throws RecognitionException { + try { + // InternalTextualScenario.g:529:1: ( ruleLostMessage EOF ) + // InternalTextualScenario.g:530:1: ruleLostMessage EOF + { + before(grammarAccess.getLostMessageRule()); + pushFollow(FOLLOW_1); + ruleLostMessage(); + + state._fsp--; + + after(grammarAccess.getLostMessageRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleLostMessage" + + + // $ANTLR start "ruleLostMessage" + // InternalTextualScenario.g:537:1: ruleLostMessage : ( ( rule__LostMessage__Group__0 ) ) ; + public final void ruleLostMessage() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:541:2: ( ( ( rule__LostMessage__Group__0 ) ) ) + // InternalTextualScenario.g:542:2: ( ( rule__LostMessage__Group__0 ) ) + { + // InternalTextualScenario.g:542:2: ( ( rule__LostMessage__Group__0 ) ) + // InternalTextualScenario.g:543:3: ( rule__LostMessage__Group__0 ) + { + before(grammarAccess.getLostMessageAccess().getGroup()); + // InternalTextualScenario.g:544:3: ( rule__LostMessage__Group__0 ) + // InternalTextualScenario.g:544:4: rule__LostMessage__Group__0 + { + pushFollow(FOLLOW_2); + rule__LostMessage__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getLostMessageAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleLostMessage" + + + // $ANTLR start "entryRuleFoundMessage" + // InternalTextualScenario.g:553:1: entryRuleFoundMessage : ruleFoundMessage EOF ; + public final void entryRuleFoundMessage() throws RecognitionException { + try { + // InternalTextualScenario.g:554:1: ( ruleFoundMessage EOF ) + // InternalTextualScenario.g:555:1: ruleFoundMessage EOF + { + before(grammarAccess.getFoundMessageRule()); + pushFollow(FOLLOW_1); + ruleFoundMessage(); + + state._fsp--; + + after(grammarAccess.getFoundMessageRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleFoundMessage" + + + // $ANTLR start "ruleFoundMessage" + // InternalTextualScenario.g:562:1: ruleFoundMessage : ( ( rule__FoundMessage__Group__0 ) ) ; + public final void ruleFoundMessage() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:566:2: ( ( ( rule__FoundMessage__Group__0 ) ) ) + // InternalTextualScenario.g:567:2: ( ( rule__FoundMessage__Group__0 ) ) + { + // InternalTextualScenario.g:567:2: ( ( rule__FoundMessage__Group__0 ) ) + // InternalTextualScenario.g:568:3: ( rule__FoundMessage__Group__0 ) + { + before(grammarAccess.getFoundMessageAccess().getGroup()); + // InternalTextualScenario.g:569:3: ( rule__FoundMessage__Group__0 ) + // InternalTextualScenario.g:569:4: rule__FoundMessage__Group__0 + { + pushFollow(FOLLOW_2); + rule__FoundMessage__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getFoundMessageAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleFoundMessage" + + // $ANTLR start "entryRuleParticipantDeactivation" - // InternalTextualScenario.g:503:1: entryRuleParticipantDeactivation : ruleParticipantDeactivation EOF ; + // InternalTextualScenario.g:578:1: entryRuleParticipantDeactivation : ruleParticipantDeactivation EOF ; public final void entryRuleParticipantDeactivation() throws RecognitionException { try { - // InternalTextualScenario.g:504:1: ( ruleParticipantDeactivation EOF ) - // InternalTextualScenario.g:505:1: ruleParticipantDeactivation EOF + // InternalTextualScenario.g:579:1: ( ruleParticipantDeactivation EOF ) + // InternalTextualScenario.g:580:1: ruleParticipantDeactivation EOF { before(grammarAccess.getParticipantDeactivationRule()); pushFollow(FOLLOW_1); @@ -1531,21 +1765,21 @@ public final void entryRuleParticipantDeactivation() throws RecognitionException // $ANTLR start "ruleParticipantDeactivation" - // InternalTextualScenario.g:512:1: ruleParticipantDeactivation : ( ( rule__ParticipantDeactivation__Group__0 ) ) ; + // InternalTextualScenario.g:587:1: ruleParticipantDeactivation : ( ( rule__ParticipantDeactivation__Group__0 ) ) ; public final void ruleParticipantDeactivation() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:516:2: ( ( ( rule__ParticipantDeactivation__Group__0 ) ) ) - // InternalTextualScenario.g:517:2: ( ( rule__ParticipantDeactivation__Group__0 ) ) + // InternalTextualScenario.g:591:2: ( ( ( rule__ParticipantDeactivation__Group__0 ) ) ) + // InternalTextualScenario.g:592:2: ( ( rule__ParticipantDeactivation__Group__0 ) ) { - // InternalTextualScenario.g:517:2: ( ( rule__ParticipantDeactivation__Group__0 ) ) - // InternalTextualScenario.g:518:3: ( rule__ParticipantDeactivation__Group__0 ) + // InternalTextualScenario.g:592:2: ( ( rule__ParticipantDeactivation__Group__0 ) ) + // InternalTextualScenario.g:593:3: ( rule__ParticipantDeactivation__Group__0 ) { before(grammarAccess.getParticipantDeactivationAccess().getGroup()); - // InternalTextualScenario.g:519:3: ( rule__ParticipantDeactivation__Group__0 ) - // InternalTextualScenario.g:519:4: rule__ParticipantDeactivation__Group__0 + // InternalTextualScenario.g:594:3: ( rule__ParticipantDeactivation__Group__0 ) + // InternalTextualScenario.g:594:4: rule__ParticipantDeactivation__Group__0 { pushFollow(FOLLOW_2); rule__ParticipantDeactivation__Group__0(); @@ -1578,11 +1812,11 @@ public final void ruleParticipantDeactivation() throws RecognitionException { // $ANTLR start "entryRuleCombinedFragment" - // InternalTextualScenario.g:528:1: entryRuleCombinedFragment : ruleCombinedFragment EOF ; + // InternalTextualScenario.g:603:1: entryRuleCombinedFragment : ruleCombinedFragment EOF ; public final void entryRuleCombinedFragment() throws RecognitionException { try { - // InternalTextualScenario.g:529:1: ( ruleCombinedFragment EOF ) - // InternalTextualScenario.g:530:1: ruleCombinedFragment EOF + // InternalTextualScenario.g:604:1: ( ruleCombinedFragment EOF ) + // InternalTextualScenario.g:605:1: ruleCombinedFragment EOF { before(grammarAccess.getCombinedFragmentRule()); pushFollow(FOLLOW_1); @@ -1608,21 +1842,21 @@ public final void entryRuleCombinedFragment() throws RecognitionException { // $ANTLR start "ruleCombinedFragment" - // InternalTextualScenario.g:537:1: ruleCombinedFragment : ( ( rule__CombinedFragment__Group__0 ) ) ; + // InternalTextualScenario.g:612:1: ruleCombinedFragment : ( ( rule__CombinedFragment__Group__0 ) ) ; public final void ruleCombinedFragment() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:541:2: ( ( ( rule__CombinedFragment__Group__0 ) ) ) - // InternalTextualScenario.g:542:2: ( ( rule__CombinedFragment__Group__0 ) ) + // InternalTextualScenario.g:616:2: ( ( ( rule__CombinedFragment__Group__0 ) ) ) + // InternalTextualScenario.g:617:2: ( ( rule__CombinedFragment__Group__0 ) ) { - // InternalTextualScenario.g:542:2: ( ( rule__CombinedFragment__Group__0 ) ) - // InternalTextualScenario.g:543:3: ( rule__CombinedFragment__Group__0 ) + // InternalTextualScenario.g:617:2: ( ( rule__CombinedFragment__Group__0 ) ) + // InternalTextualScenario.g:618:3: ( rule__CombinedFragment__Group__0 ) { before(grammarAccess.getCombinedFragmentAccess().getGroup()); - // InternalTextualScenario.g:544:3: ( rule__CombinedFragment__Group__0 ) - // InternalTextualScenario.g:544:4: rule__CombinedFragment__Group__0 + // InternalTextualScenario.g:619:3: ( rule__CombinedFragment__Group__0 ) + // InternalTextualScenario.g:619:4: rule__CombinedFragment__Group__0 { pushFollow(FOLLOW_2); rule__CombinedFragment__Group__0(); @@ -1655,11 +1889,11 @@ public final void ruleCombinedFragment() throws RecognitionException { // $ANTLR start "entryRuleOperand" - // InternalTextualScenario.g:553:1: entryRuleOperand : ruleOperand EOF ; + // InternalTextualScenario.g:628:1: entryRuleOperand : ruleOperand EOF ; public final void entryRuleOperand() throws RecognitionException { try { - // InternalTextualScenario.g:554:1: ( ruleOperand EOF ) - // InternalTextualScenario.g:555:1: ruleOperand EOF + // InternalTextualScenario.g:629:1: ( ruleOperand EOF ) + // InternalTextualScenario.g:630:1: ruleOperand EOF { before(grammarAccess.getOperandRule()); pushFollow(FOLLOW_1); @@ -1685,21 +1919,21 @@ public final void entryRuleOperand() throws RecognitionException { // $ANTLR start "ruleOperand" - // InternalTextualScenario.g:562:1: ruleOperand : ( ( rule__Operand__Group__0 ) ) ; + // InternalTextualScenario.g:637:1: ruleOperand : ( ( rule__Operand__Group__0 ) ) ; public final void ruleOperand() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:566:2: ( ( ( rule__Operand__Group__0 ) ) ) - // InternalTextualScenario.g:567:2: ( ( rule__Operand__Group__0 ) ) + // InternalTextualScenario.g:641:2: ( ( ( rule__Operand__Group__0 ) ) ) + // InternalTextualScenario.g:642:2: ( ( rule__Operand__Group__0 ) ) { - // InternalTextualScenario.g:567:2: ( ( rule__Operand__Group__0 ) ) - // InternalTextualScenario.g:568:3: ( rule__Operand__Group__0 ) + // InternalTextualScenario.g:642:2: ( ( rule__Operand__Group__0 ) ) + // InternalTextualScenario.g:643:3: ( rule__Operand__Group__0 ) { before(grammarAccess.getOperandAccess().getGroup()); - // InternalTextualScenario.g:569:3: ( rule__Operand__Group__0 ) - // InternalTextualScenario.g:569:4: rule__Operand__Group__0 + // InternalTextualScenario.g:644:3: ( rule__Operand__Group__0 ) + // InternalTextualScenario.g:644:4: rule__Operand__Group__0 { pushFollow(FOLLOW_2); rule__Operand__Group__0(); @@ -1732,11 +1966,11 @@ public final void ruleOperand() throws RecognitionException { // $ANTLR start "entryRuleBlock" - // InternalTextualScenario.g:578:1: entryRuleBlock : ruleBlock EOF ; + // InternalTextualScenario.g:653:1: entryRuleBlock : ruleBlock EOF ; public final void entryRuleBlock() throws RecognitionException { try { - // InternalTextualScenario.g:579:1: ( ruleBlock EOF ) - // InternalTextualScenario.g:580:1: ruleBlock EOF + // InternalTextualScenario.g:654:1: ( ruleBlock EOF ) + // InternalTextualScenario.g:655:1: ruleBlock EOF { before(grammarAccess.getBlockRule()); pushFollow(FOLLOW_1); @@ -1762,21 +1996,21 @@ public final void entryRuleBlock() throws RecognitionException { // $ANTLR start "ruleBlock" - // InternalTextualScenario.g:587:1: ruleBlock : ( ( rule__Block__Group__0 ) ) ; + // InternalTextualScenario.g:662:1: ruleBlock : ( ( rule__Block__Group__0 ) ) ; public final void ruleBlock() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:591:2: ( ( ( rule__Block__Group__0 ) ) ) - // InternalTextualScenario.g:592:2: ( ( rule__Block__Group__0 ) ) + // InternalTextualScenario.g:666:2: ( ( ( rule__Block__Group__0 ) ) ) + // InternalTextualScenario.g:667:2: ( ( rule__Block__Group__0 ) ) { - // InternalTextualScenario.g:592:2: ( ( rule__Block__Group__0 ) ) - // InternalTextualScenario.g:593:3: ( rule__Block__Group__0 ) + // InternalTextualScenario.g:667:2: ( ( rule__Block__Group__0 ) ) + // InternalTextualScenario.g:668:3: ( rule__Block__Group__0 ) { before(grammarAccess.getBlockAccess().getGroup()); - // InternalTextualScenario.g:594:3: ( rule__Block__Group__0 ) - // InternalTextualScenario.g:594:4: rule__Block__Group__0 + // InternalTextualScenario.g:669:3: ( rule__Block__Group__0 ) + // InternalTextualScenario.g:669:4: rule__Block__Group__0 { pushFollow(FOLLOW_2); rule__Block__Group__0(); @@ -1809,11 +2043,11 @@ public final void ruleBlock() throws RecognitionException { // $ANTLR start "entryRuleStateFragment" - // InternalTextualScenario.g:603:1: entryRuleStateFragment : ruleStateFragment EOF ; + // InternalTextualScenario.g:678:1: entryRuleStateFragment : ruleStateFragment EOF ; public final void entryRuleStateFragment() throws RecognitionException { try { - // InternalTextualScenario.g:604:1: ( ruleStateFragment EOF ) - // InternalTextualScenario.g:605:1: ruleStateFragment EOF + // InternalTextualScenario.g:679:1: ( ruleStateFragment EOF ) + // InternalTextualScenario.g:680:1: ruleStateFragment EOF { before(grammarAccess.getStateFragmentRule()); pushFollow(FOLLOW_1); @@ -1839,21 +2073,21 @@ public final void entryRuleStateFragment() throws RecognitionException { // $ANTLR start "ruleStateFragment" - // InternalTextualScenario.g:612:1: ruleStateFragment : ( ( rule__StateFragment__Group__0 ) ) ; + // InternalTextualScenario.g:687:1: ruleStateFragment : ( ( rule__StateFragment__Group__0 ) ) ; public final void ruleStateFragment() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:616:2: ( ( ( rule__StateFragment__Group__0 ) ) ) - // InternalTextualScenario.g:617:2: ( ( rule__StateFragment__Group__0 ) ) + // InternalTextualScenario.g:691:2: ( ( ( rule__StateFragment__Group__0 ) ) ) + // InternalTextualScenario.g:692:2: ( ( rule__StateFragment__Group__0 ) ) { - // InternalTextualScenario.g:617:2: ( ( rule__StateFragment__Group__0 ) ) - // InternalTextualScenario.g:618:3: ( rule__StateFragment__Group__0 ) + // InternalTextualScenario.g:692:2: ( ( rule__StateFragment__Group__0 ) ) + // InternalTextualScenario.g:693:3: ( rule__StateFragment__Group__0 ) { before(grammarAccess.getStateFragmentAccess().getGroup()); - // InternalTextualScenario.g:619:3: ( rule__StateFragment__Group__0 ) - // InternalTextualScenario.g:619:4: rule__StateFragment__Group__0 + // InternalTextualScenario.g:694:3: ( rule__StateFragment__Group__0 ) + // InternalTextualScenario.g:694:4: rule__StateFragment__Group__0 { pushFollow(FOLLOW_2); rule__StateFragment__Group__0(); @@ -1885,14 +2119,91 @@ public final void ruleStateFragment() throws RecognitionException { // $ANTLR end "ruleStateFragment" + // $ANTLR start "entryRuleReference" + // InternalTextualScenario.g:703:1: entryRuleReference : ruleReference EOF ; + public final void entryRuleReference() throws RecognitionException { + try { + // InternalTextualScenario.g:704:1: ( ruleReference EOF ) + // InternalTextualScenario.g:705:1: ruleReference EOF + { + before(grammarAccess.getReferenceRule()); + pushFollow(FOLLOW_1); + ruleReference(); + + state._fsp--; + + after(grammarAccess.getReferenceRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleReference" + + + // $ANTLR start "ruleReference" + // InternalTextualScenario.g:712:1: ruleReference : ( ( rule__Reference__Group__0 ) ) ; + public final void ruleReference() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:716:2: ( ( ( rule__Reference__Group__0 ) ) ) + // InternalTextualScenario.g:717:2: ( ( rule__Reference__Group__0 ) ) + { + // InternalTextualScenario.g:717:2: ( ( rule__Reference__Group__0 ) ) + // InternalTextualScenario.g:718:3: ( rule__Reference__Group__0 ) + { + before(grammarAccess.getReferenceAccess().getGroup()); + // InternalTextualScenario.g:719:3: ( rule__Reference__Group__0 ) + // InternalTextualScenario.g:719:4: rule__Reference__Group__0 + { + pushFollow(FOLLOW_2); + rule__Reference__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getReferenceAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleReference" + + // $ANTLR start "rule__Participant__Alternatives" - // InternalTextualScenario.g:627:1: rule__Participant__Alternatives : ( ( ruleGenericComponent ) | ( ruleGenericFunction ) ); + // InternalTextualScenario.g:727:1: rule__Participant__Alternatives : ( ( ruleGenericComponent ) | ( ruleGenericFunction ) ); public final void rule__Participant__Alternatives() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:631:1: ( ( ruleGenericComponent ) | ( ruleGenericFunction ) ) + // InternalTextualScenario.g:731:1: ( ( ruleGenericComponent ) | ( ruleGenericFunction ) ) int alt1=2; int LA1_0 = input.LA(1); @@ -1910,10 +2221,10 @@ else if ( (LA1_0==24||LA1_0==31) ) { } switch (alt1) { case 1 : - // InternalTextualScenario.g:632:2: ( ruleGenericComponent ) + // InternalTextualScenario.g:732:2: ( ruleGenericComponent ) { - // InternalTextualScenario.g:632:2: ( ruleGenericComponent ) - // InternalTextualScenario.g:633:3: ruleGenericComponent + // InternalTextualScenario.g:732:2: ( ruleGenericComponent ) + // InternalTextualScenario.g:733:3: ruleGenericComponent { before(grammarAccess.getParticipantAccess().getGenericComponentParserRuleCall_0()); pushFollow(FOLLOW_2); @@ -1929,10 +2240,10 @@ else if ( (LA1_0==24||LA1_0==31) ) { } break; case 2 : - // InternalTextualScenario.g:638:2: ( ruleGenericFunction ) + // InternalTextualScenario.g:738:2: ( ruleGenericFunction ) { - // InternalTextualScenario.g:638:2: ( ruleGenericFunction ) - // InternalTextualScenario.g:639:3: ruleGenericFunction + // InternalTextualScenario.g:738:2: ( ruleGenericFunction ) + // InternalTextualScenario.g:739:3: ruleGenericFunction { before(grammarAccess.getParticipantAccess().getGenericFunctionParserRuleCall_1()); pushFollow(FOLLOW_2); @@ -1965,13 +2276,13 @@ else if ( (LA1_0==24||LA1_0==31) ) { // $ANTLR start "rule__GenericComponent__Alternatives" - // InternalTextualScenario.g:648:1: rule__GenericComponent__Alternatives : ( ( ruleEntity ) | ( ruleActor ) | ( ruleComponent ) | ( ruleConfigurationItem ) | ( ruleRole ) ); + // InternalTextualScenario.g:748:1: rule__GenericComponent__Alternatives : ( ( ruleEntity ) | ( ruleActor ) | ( ruleComponent ) | ( ruleConfigurationItem ) | ( ruleRole ) ); public final void rule__GenericComponent__Alternatives() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:652:1: ( ( ruleEntity ) | ( ruleActor ) | ( ruleComponent ) | ( ruleConfigurationItem ) | ( ruleRole ) ) + // InternalTextualScenario.g:752:1: ( ( ruleEntity ) | ( ruleActor ) | ( ruleComponent ) | ( ruleConfigurationItem ) | ( ruleRole ) ) int alt2=5; switch ( input.LA(1) ) { case 32: @@ -2008,10 +2319,10 @@ public final void rule__GenericComponent__Alternatives() throws RecognitionExcep switch (alt2) { case 1 : - // InternalTextualScenario.g:653:2: ( ruleEntity ) + // InternalTextualScenario.g:753:2: ( ruleEntity ) { - // InternalTextualScenario.g:653:2: ( ruleEntity ) - // InternalTextualScenario.g:654:3: ruleEntity + // InternalTextualScenario.g:753:2: ( ruleEntity ) + // InternalTextualScenario.g:754:3: ruleEntity { before(grammarAccess.getGenericComponentAccess().getEntityParserRuleCall_0()); pushFollow(FOLLOW_2); @@ -2027,10 +2338,10 @@ public final void rule__GenericComponent__Alternatives() throws RecognitionExcep } break; case 2 : - // InternalTextualScenario.g:659:2: ( ruleActor ) + // InternalTextualScenario.g:759:2: ( ruleActor ) { - // InternalTextualScenario.g:659:2: ( ruleActor ) - // InternalTextualScenario.g:660:3: ruleActor + // InternalTextualScenario.g:759:2: ( ruleActor ) + // InternalTextualScenario.g:760:3: ruleActor { before(grammarAccess.getGenericComponentAccess().getActorParserRuleCall_1()); pushFollow(FOLLOW_2); @@ -2046,10 +2357,10 @@ public final void rule__GenericComponent__Alternatives() throws RecognitionExcep } break; case 3 : - // InternalTextualScenario.g:665:2: ( ruleComponent ) + // InternalTextualScenario.g:765:2: ( ruleComponent ) { - // InternalTextualScenario.g:665:2: ( ruleComponent ) - // InternalTextualScenario.g:666:3: ruleComponent + // InternalTextualScenario.g:765:2: ( ruleComponent ) + // InternalTextualScenario.g:766:3: ruleComponent { before(grammarAccess.getGenericComponentAccess().getComponentParserRuleCall_2()); pushFollow(FOLLOW_2); @@ -2065,10 +2376,10 @@ public final void rule__GenericComponent__Alternatives() throws RecognitionExcep } break; case 4 : - // InternalTextualScenario.g:671:2: ( ruleConfigurationItem ) + // InternalTextualScenario.g:771:2: ( ruleConfigurationItem ) { - // InternalTextualScenario.g:671:2: ( ruleConfigurationItem ) - // InternalTextualScenario.g:672:3: ruleConfigurationItem + // InternalTextualScenario.g:771:2: ( ruleConfigurationItem ) + // InternalTextualScenario.g:772:3: ruleConfigurationItem { before(grammarAccess.getGenericComponentAccess().getConfigurationItemParserRuleCall_3()); pushFollow(FOLLOW_2); @@ -2084,10 +2395,10 @@ public final void rule__GenericComponent__Alternatives() throws RecognitionExcep } break; case 5 : - // InternalTextualScenario.g:677:2: ( ruleRole ) + // InternalTextualScenario.g:777:2: ( ruleRole ) { - // InternalTextualScenario.g:677:2: ( ruleRole ) - // InternalTextualScenario.g:678:3: ruleRole + // InternalTextualScenario.g:777:2: ( ruleRole ) + // InternalTextualScenario.g:778:3: ruleRole { before(grammarAccess.getGenericComponentAccess().getRoleParserRuleCall_4()); pushFollow(FOLLOW_2); @@ -2120,13 +2431,13 @@ public final void rule__GenericComponent__Alternatives() throws RecognitionExcep // $ANTLR start "rule__GenericFunction__Alternatives" - // InternalTextualScenario.g:687:1: rule__GenericFunction__Alternatives : ( ( ruleFunction ) | ( ruleActivity ) ); + // InternalTextualScenario.g:787:1: rule__GenericFunction__Alternatives : ( ( ruleFunction ) | ( ruleActivity ) ); public final void rule__GenericFunction__Alternatives() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:691:1: ( ( ruleFunction ) | ( ruleActivity ) ) + // InternalTextualScenario.g:791:1: ( ( ruleFunction ) | ( ruleActivity ) ) int alt3=2; int LA3_0 = input.LA(1); @@ -2144,10 +2455,10 @@ else if ( (LA3_0==31) ) { } switch (alt3) { case 1 : - // InternalTextualScenario.g:692:2: ( ruleFunction ) + // InternalTextualScenario.g:792:2: ( ruleFunction ) { - // InternalTextualScenario.g:692:2: ( ruleFunction ) - // InternalTextualScenario.g:693:3: ruleFunction + // InternalTextualScenario.g:792:2: ( ruleFunction ) + // InternalTextualScenario.g:793:3: ruleFunction { before(grammarAccess.getGenericFunctionAccess().getFunctionParserRuleCall_0()); pushFollow(FOLLOW_2); @@ -2163,10 +2474,10 @@ else if ( (LA3_0==31) ) { } break; case 2 : - // InternalTextualScenario.g:698:2: ( ruleActivity ) + // InternalTextualScenario.g:798:2: ( ruleActivity ) { - // InternalTextualScenario.g:698:2: ( ruleActivity ) - // InternalTextualScenario.g:699:3: ruleActivity + // InternalTextualScenario.g:798:2: ( ruleActivity ) + // InternalTextualScenario.g:799:3: ruleActivity { before(grammarAccess.getGenericFunctionAccess().getActivityParserRuleCall_1()); pushFollow(FOLLOW_2); @@ -2199,18 +2510,19 @@ else if ( (LA3_0==31) ) { // $ANTLR start "rule__Element__Alternatives" - // InternalTextualScenario.g:708:1: rule__Element__Alternatives : ( ( ruleMessage ) | ( ruleCombinedFragment ) | ( ruleStateFragment ) ); + // InternalTextualScenario.g:808:1: rule__Element__Alternatives : ( ( ruleMessage ) | ( ruleCombinedFragment ) | ( ruleStateFragment ) | ( ruleReference ) ); public final void rule__Element__Alternatives() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:712:1: ( ( ruleMessage ) | ( ruleCombinedFragment ) | ( ruleStateFragment ) ) - int alt4=3; + // InternalTextualScenario.g:812:1: ( ( ruleMessage ) | ( ruleCombinedFragment ) | ( ruleStateFragment ) | ( ruleReference ) ) + int alt4=4; switch ( input.LA(1) ) { case RULE_STRING: case 40: - case 41: + case 42: + case 43: { alt4=1; } @@ -2230,11 +2542,16 @@ public final void rule__Element__Alternatives() throws RecognitionException { alt4=2; } break; - case 44: + case 46: { alt4=3; } break; + case 47: + { + alt4=4; + } + break; default: NoViableAltException nvae = new NoViableAltException("", 4, 0, input); @@ -2244,10 +2561,10 @@ public final void rule__Element__Alternatives() throws RecognitionException { switch (alt4) { case 1 : - // InternalTextualScenario.g:713:2: ( ruleMessage ) + // InternalTextualScenario.g:813:2: ( ruleMessage ) { - // InternalTextualScenario.g:713:2: ( ruleMessage ) - // InternalTextualScenario.g:714:3: ruleMessage + // InternalTextualScenario.g:813:2: ( ruleMessage ) + // InternalTextualScenario.g:814:3: ruleMessage { before(grammarAccess.getElementAccess().getMessageParserRuleCall_0()); pushFollow(FOLLOW_2); @@ -2263,10 +2580,10 @@ public final void rule__Element__Alternatives() throws RecognitionException { } break; case 2 : - // InternalTextualScenario.g:719:2: ( ruleCombinedFragment ) + // InternalTextualScenario.g:819:2: ( ruleCombinedFragment ) { - // InternalTextualScenario.g:719:2: ( ruleCombinedFragment ) - // InternalTextualScenario.g:720:3: ruleCombinedFragment + // InternalTextualScenario.g:819:2: ( ruleCombinedFragment ) + // InternalTextualScenario.g:820:3: ruleCombinedFragment { before(grammarAccess.getElementAccess().getCombinedFragmentParserRuleCall_1()); pushFollow(FOLLOW_2); @@ -2282,10 +2599,10 @@ public final void rule__Element__Alternatives() throws RecognitionException { } break; case 3 : - // InternalTextualScenario.g:725:2: ( ruleStateFragment ) + // InternalTextualScenario.g:825:2: ( ruleStateFragment ) { - // InternalTextualScenario.g:725:2: ( ruleStateFragment ) - // InternalTextualScenario.g:726:3: ruleStateFragment + // InternalTextualScenario.g:825:2: ( ruleStateFragment ) + // InternalTextualScenario.g:826:3: ruleStateFragment { before(grammarAccess.getElementAccess().getStateFragmentParserRuleCall_2()); pushFollow(FOLLOW_2); @@ -2298,6 +2615,25 @@ public final void rule__Element__Alternatives() throws RecognitionException { } + } + break; + case 4 : + // InternalTextualScenario.g:831:2: ( ruleReference ) + { + // InternalTextualScenario.g:831:2: ( ruleReference ) + // InternalTextualScenario.g:832:3: ruleReference + { + before(grammarAccess.getElementAccess().getReferenceParserRuleCall_3()); + pushFollow(FOLLOW_2); + ruleReference(); + + state._fsp--; + + after(grammarAccess.getElementAccess().getReferenceParserRuleCall_3()); + + } + + } break; @@ -2318,18 +2654,31 @@ public final void rule__Element__Alternatives() throws RecognitionException { // $ANTLR start "rule__Message__Alternatives" - // InternalTextualScenario.g:735:1: rule__Message__Alternatives : ( ( ruleSequenceMessageType ) | ( ruleArmTimerMessage ) | ( ruleParticipantDeactivation ) ); + // InternalTextualScenario.g:841:1: rule__Message__Alternatives : ( ( ruleSequenceMessageType ) | ( ruleArmTimerMessage ) | ( ruleParticipantDeactivation ) | ( ruleLostFoundMessage ) ); public final void rule__Message__Alternatives() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:739:1: ( ( ruleSequenceMessageType ) | ( ruleArmTimerMessage ) | ( ruleParticipantDeactivation ) ) - int alt5=3; + // InternalTextualScenario.g:845:1: ( ( ruleSequenceMessageType ) | ( ruleArmTimerMessage ) | ( ruleParticipantDeactivation ) | ( ruleLostFoundMessage ) ) + int alt5=4; switch ( input.LA(1) ) { case RULE_STRING: { - alt5=1; + int LA5_1 = input.LA(2); + + if ( (LA5_1==34||(LA5_1>=38 && LA5_1<=39)) ) { + alt5=1; + } + else if ( (LA5_1==41) ) { + alt5=4; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 5, 1, input); + + throw nvae; + } } break; case 40: @@ -2337,11 +2686,16 @@ public final void rule__Message__Alternatives() throws RecognitionException { alt5=2; } break; - case 41: + case 43: { alt5=3; } break; + case 42: + { + alt5=4; + } + break; default: NoViableAltException nvae = new NoViableAltException("", 5, 0, input); @@ -2351,10 +2705,10 @@ public final void rule__Message__Alternatives() throws RecognitionException { switch (alt5) { case 1 : - // InternalTextualScenario.g:740:2: ( ruleSequenceMessageType ) + // InternalTextualScenario.g:846:2: ( ruleSequenceMessageType ) { - // InternalTextualScenario.g:740:2: ( ruleSequenceMessageType ) - // InternalTextualScenario.g:741:3: ruleSequenceMessageType + // InternalTextualScenario.g:846:2: ( ruleSequenceMessageType ) + // InternalTextualScenario.g:847:3: ruleSequenceMessageType { before(grammarAccess.getMessageAccess().getSequenceMessageTypeParserRuleCall_0()); pushFollow(FOLLOW_2); @@ -2370,10 +2724,10 @@ public final void rule__Message__Alternatives() throws RecognitionException { } break; case 2 : - // InternalTextualScenario.g:746:2: ( ruleArmTimerMessage ) + // InternalTextualScenario.g:852:2: ( ruleArmTimerMessage ) { - // InternalTextualScenario.g:746:2: ( ruleArmTimerMessage ) - // InternalTextualScenario.g:747:3: ruleArmTimerMessage + // InternalTextualScenario.g:852:2: ( ruleArmTimerMessage ) + // InternalTextualScenario.g:853:3: ruleArmTimerMessage { before(grammarAccess.getMessageAccess().getArmTimerMessageParserRuleCall_1()); pushFollow(FOLLOW_2); @@ -2389,10 +2743,10 @@ public final void rule__Message__Alternatives() throws RecognitionException { } break; case 3 : - // InternalTextualScenario.g:752:2: ( ruleParticipantDeactivation ) + // InternalTextualScenario.g:858:2: ( ruleParticipantDeactivation ) { - // InternalTextualScenario.g:752:2: ( ruleParticipantDeactivation ) - // InternalTextualScenario.g:753:3: ruleParticipantDeactivation + // InternalTextualScenario.g:858:2: ( ruleParticipantDeactivation ) + // InternalTextualScenario.g:859:3: ruleParticipantDeactivation { before(grammarAccess.getMessageAccess().getParticipantDeactivationParserRuleCall_2()); pushFollow(FOLLOW_2); @@ -2407,13 +2761,32 @@ public final void rule__Message__Alternatives() throws RecognitionException { } break; + case 4 : + // InternalTextualScenario.g:864:2: ( ruleLostFoundMessage ) + { + // InternalTextualScenario.g:864:2: ( ruleLostFoundMessage ) + // InternalTextualScenario.g:865:3: ruleLostFoundMessage + { + before(grammarAccess.getMessageAccess().getLostFoundMessageParserRuleCall_3()); + pushFollow(FOLLOW_2); + ruleLostFoundMessage(); - } - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } + state._fsp--; + + after(grammarAccess.getMessageAccess().getLostFoundMessageParserRuleCall_3()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } finally { restoreStackSize(stackSize); @@ -2425,13 +2798,13 @@ public final void rule__Message__Alternatives() throws RecognitionException { // $ANTLR start "rule__SequenceMessageType__Alternatives" - // InternalTextualScenario.g:762:1: rule__SequenceMessageType__Alternatives : ( ( ruleSequenceMessage ) | ( ruleCreateMessage ) | ( ruleDeleteMessage ) ); + // InternalTextualScenario.g:874:1: rule__SequenceMessageType__Alternatives : ( ( ruleSequenceMessage ) | ( ruleCreateMessage ) | ( ruleDeleteMessage ) ); public final void rule__SequenceMessageType__Alternatives() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:766:1: ( ( ruleSequenceMessage ) | ( ruleCreateMessage ) | ( ruleDeleteMessage ) ) + // InternalTextualScenario.g:878:1: ( ( ruleSequenceMessage ) | ( ruleCreateMessage ) | ( ruleDeleteMessage ) ) int alt6=3; int LA6_0 = input.LA(1); @@ -2468,10 +2841,10 @@ public final void rule__SequenceMessageType__Alternatives() throws RecognitionEx } switch (alt6) { case 1 : - // InternalTextualScenario.g:767:2: ( ruleSequenceMessage ) + // InternalTextualScenario.g:879:2: ( ruleSequenceMessage ) { - // InternalTextualScenario.g:767:2: ( ruleSequenceMessage ) - // InternalTextualScenario.g:768:3: ruleSequenceMessage + // InternalTextualScenario.g:879:2: ( ruleSequenceMessage ) + // InternalTextualScenario.g:880:3: ruleSequenceMessage { before(grammarAccess.getSequenceMessageTypeAccess().getSequenceMessageParserRuleCall_0()); pushFollow(FOLLOW_2); @@ -2487,10 +2860,10 @@ public final void rule__SequenceMessageType__Alternatives() throws RecognitionEx } break; case 2 : - // InternalTextualScenario.g:773:2: ( ruleCreateMessage ) + // InternalTextualScenario.g:885:2: ( ruleCreateMessage ) { - // InternalTextualScenario.g:773:2: ( ruleCreateMessage ) - // InternalTextualScenario.g:774:3: ruleCreateMessage + // InternalTextualScenario.g:885:2: ( ruleCreateMessage ) + // InternalTextualScenario.g:886:3: ruleCreateMessage { before(grammarAccess.getSequenceMessageTypeAccess().getCreateMessageParserRuleCall_1()); pushFollow(FOLLOW_2); @@ -2506,10 +2879,10 @@ public final void rule__SequenceMessageType__Alternatives() throws RecognitionEx } break; case 3 : - // InternalTextualScenario.g:779:2: ( ruleDeleteMessage ) + // InternalTextualScenario.g:891:2: ( ruleDeleteMessage ) { - // InternalTextualScenario.g:779:2: ( ruleDeleteMessage ) - // InternalTextualScenario.g:780:3: ruleDeleteMessage + // InternalTextualScenario.g:891:2: ( ruleDeleteMessage ) + // InternalTextualScenario.g:892:3: ruleDeleteMessage { before(grammarAccess.getSequenceMessageTypeAccess().getDeleteMessageParserRuleCall_2()); pushFollow(FOLLOW_2); @@ -2541,84 +2914,163 @@ public final void rule__SequenceMessageType__Alternatives() throws RecognitionEx // $ANTLR end "rule__SequenceMessageType__Alternatives" + // $ANTLR start "rule__LostFoundMessage__Alternatives" + // InternalTextualScenario.g:901:1: rule__LostFoundMessage__Alternatives : ( ( ruleLostMessage ) | ( ruleFoundMessage ) ); + public final void rule__LostFoundMessage__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:905:1: ( ( ruleLostMessage ) | ( ruleFoundMessage ) ) + int alt7=2; + int LA7_0 = input.LA(1); + + if ( (LA7_0==RULE_STRING) ) { + alt7=1; + } + else if ( (LA7_0==42) ) { + alt7=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 7, 0, input); + + throw nvae; + } + switch (alt7) { + case 1 : + // InternalTextualScenario.g:906:2: ( ruleLostMessage ) + { + // InternalTextualScenario.g:906:2: ( ruleLostMessage ) + // InternalTextualScenario.g:907:3: ruleLostMessage + { + before(grammarAccess.getLostFoundMessageAccess().getLostMessageParserRuleCall_0()); + pushFollow(FOLLOW_2); + ruleLostMessage(); + + state._fsp--; + + after(grammarAccess.getLostFoundMessageAccess().getLostMessageParserRuleCall_0()); + + } + + + } + break; + case 2 : + // InternalTextualScenario.g:912:2: ( ruleFoundMessage ) + { + // InternalTextualScenario.g:912:2: ( ruleFoundMessage ) + // InternalTextualScenario.g:913:3: ruleFoundMessage + { + before(grammarAccess.getLostFoundMessageAccess().getFoundMessageParserRuleCall_1()); + pushFollow(FOLLOW_2); + ruleFoundMessage(); + + state._fsp--; + + after(grammarAccess.getLostFoundMessageAccess().getFoundMessageParserRuleCall_1()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__LostFoundMessage__Alternatives" + + // $ANTLR start "rule__CombinedFragment__KeywordAlternatives_0_0" - // InternalTextualScenario.g:789:1: rule__CombinedFragment__KeywordAlternatives_0_0 : ( ( 'alt' ) | ( 'loop' ) | ( 'par' ) | ( 'assert' ) | ( 'critical' ) | ( 'ignore' ) | ( 'neg' ) | ( 'opt' ) | ( 'seq' ) | ( 'strict' ) | ( 'unset' ) ); + // InternalTextualScenario.g:922:1: rule__CombinedFragment__KeywordAlternatives_0_0 : ( ( 'alt' ) | ( 'loop' ) | ( 'par' ) | ( 'assert' ) | ( 'critical' ) | ( 'ignore' ) | ( 'neg' ) | ( 'opt' ) | ( 'seq' ) | ( 'strict' ) | ( 'unset' ) ); public final void rule__CombinedFragment__KeywordAlternatives_0_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:793:1: ( ( 'alt' ) | ( 'loop' ) | ( 'par' ) | ( 'assert' ) | ( 'critical' ) | ( 'ignore' ) | ( 'neg' ) | ( 'opt' ) | ( 'seq' ) | ( 'strict' ) | ( 'unset' ) ) - int alt7=11; + // InternalTextualScenario.g:926:1: ( ( 'alt' ) | ( 'loop' ) | ( 'par' ) | ( 'assert' ) | ( 'critical' ) | ( 'ignore' ) | ( 'neg' ) | ( 'opt' ) | ( 'seq' ) | ( 'strict' ) | ( 'unset' ) ) + int alt8=11; switch ( input.LA(1) ) { case 11: { - alt7=1; + alt8=1; } break; case 12: { - alt7=2; + alt8=2; } break; case 13: { - alt7=3; + alt8=3; } break; case 14: { - alt7=4; + alt8=4; } break; case 15: { - alt7=5; + alt8=5; } break; case 16: { - alt7=6; + alt8=6; } break; case 17: { - alt7=7; + alt8=7; } break; case 18: { - alt7=8; + alt8=8; } break; case 19: { - alt7=9; + alt8=9; } break; case 20: { - alt7=10; + alt8=10; } break; case 21: { - alt7=11; + alt8=11; } break; default: NoViableAltException nvae = - new NoViableAltException("", 7, 0, input); + new NoViableAltException("", 8, 0, input); throw nvae; } - switch (alt7) { + switch (alt8) { case 1 : - // InternalTextualScenario.g:794:2: ( 'alt' ) + // InternalTextualScenario.g:927:2: ( 'alt' ) { - // InternalTextualScenario.g:794:2: ( 'alt' ) - // InternalTextualScenario.g:795:3: 'alt' + // InternalTextualScenario.g:927:2: ( 'alt' ) + // InternalTextualScenario.g:928:3: 'alt' { before(grammarAccess.getCombinedFragmentAccess().getKeywordAltKeyword_0_0_0()); match(input,11,FOLLOW_2); @@ -2630,10 +3082,10 @@ public final void rule__CombinedFragment__KeywordAlternatives_0_0() throws Recog } break; case 2 : - // InternalTextualScenario.g:800:2: ( 'loop' ) + // InternalTextualScenario.g:933:2: ( 'loop' ) { - // InternalTextualScenario.g:800:2: ( 'loop' ) - // InternalTextualScenario.g:801:3: 'loop' + // InternalTextualScenario.g:933:2: ( 'loop' ) + // InternalTextualScenario.g:934:3: 'loop' { before(grammarAccess.getCombinedFragmentAccess().getKeywordLoopKeyword_0_0_1()); match(input,12,FOLLOW_2); @@ -2645,10 +3097,10 @@ public final void rule__CombinedFragment__KeywordAlternatives_0_0() throws Recog } break; case 3 : - // InternalTextualScenario.g:806:2: ( 'par' ) + // InternalTextualScenario.g:939:2: ( 'par' ) { - // InternalTextualScenario.g:806:2: ( 'par' ) - // InternalTextualScenario.g:807:3: 'par' + // InternalTextualScenario.g:939:2: ( 'par' ) + // InternalTextualScenario.g:940:3: 'par' { before(grammarAccess.getCombinedFragmentAccess().getKeywordParKeyword_0_0_2()); match(input,13,FOLLOW_2); @@ -2660,10 +3112,10 @@ public final void rule__CombinedFragment__KeywordAlternatives_0_0() throws Recog } break; case 4 : - // InternalTextualScenario.g:812:2: ( 'assert' ) + // InternalTextualScenario.g:945:2: ( 'assert' ) { - // InternalTextualScenario.g:812:2: ( 'assert' ) - // InternalTextualScenario.g:813:3: 'assert' + // InternalTextualScenario.g:945:2: ( 'assert' ) + // InternalTextualScenario.g:946:3: 'assert' { before(grammarAccess.getCombinedFragmentAccess().getKeywordAssertKeyword_0_0_3()); match(input,14,FOLLOW_2); @@ -2675,10 +3127,10 @@ public final void rule__CombinedFragment__KeywordAlternatives_0_0() throws Recog } break; case 5 : - // InternalTextualScenario.g:818:2: ( 'critical' ) + // InternalTextualScenario.g:951:2: ( 'critical' ) { - // InternalTextualScenario.g:818:2: ( 'critical' ) - // InternalTextualScenario.g:819:3: 'critical' + // InternalTextualScenario.g:951:2: ( 'critical' ) + // InternalTextualScenario.g:952:3: 'critical' { before(grammarAccess.getCombinedFragmentAccess().getKeywordCriticalKeyword_0_0_4()); match(input,15,FOLLOW_2); @@ -2690,10 +3142,10 @@ public final void rule__CombinedFragment__KeywordAlternatives_0_0() throws Recog } break; case 6 : - // InternalTextualScenario.g:824:2: ( 'ignore' ) + // InternalTextualScenario.g:957:2: ( 'ignore' ) { - // InternalTextualScenario.g:824:2: ( 'ignore' ) - // InternalTextualScenario.g:825:3: 'ignore' + // InternalTextualScenario.g:957:2: ( 'ignore' ) + // InternalTextualScenario.g:958:3: 'ignore' { before(grammarAccess.getCombinedFragmentAccess().getKeywordIgnoreKeyword_0_0_5()); match(input,16,FOLLOW_2); @@ -2705,10 +3157,10 @@ public final void rule__CombinedFragment__KeywordAlternatives_0_0() throws Recog } break; case 7 : - // InternalTextualScenario.g:830:2: ( 'neg' ) + // InternalTextualScenario.g:963:2: ( 'neg' ) { - // InternalTextualScenario.g:830:2: ( 'neg' ) - // InternalTextualScenario.g:831:3: 'neg' + // InternalTextualScenario.g:963:2: ( 'neg' ) + // InternalTextualScenario.g:964:3: 'neg' { before(grammarAccess.getCombinedFragmentAccess().getKeywordNegKeyword_0_0_6()); match(input,17,FOLLOW_2); @@ -2720,10 +3172,10 @@ public final void rule__CombinedFragment__KeywordAlternatives_0_0() throws Recog } break; case 8 : - // InternalTextualScenario.g:836:2: ( 'opt' ) + // InternalTextualScenario.g:969:2: ( 'opt' ) { - // InternalTextualScenario.g:836:2: ( 'opt' ) - // InternalTextualScenario.g:837:3: 'opt' + // InternalTextualScenario.g:969:2: ( 'opt' ) + // InternalTextualScenario.g:970:3: 'opt' { before(grammarAccess.getCombinedFragmentAccess().getKeywordOptKeyword_0_0_7()); match(input,18,FOLLOW_2); @@ -2735,10 +3187,10 @@ public final void rule__CombinedFragment__KeywordAlternatives_0_0() throws Recog } break; case 9 : - // InternalTextualScenario.g:842:2: ( 'seq' ) + // InternalTextualScenario.g:975:2: ( 'seq' ) { - // InternalTextualScenario.g:842:2: ( 'seq' ) - // InternalTextualScenario.g:843:3: 'seq' + // InternalTextualScenario.g:975:2: ( 'seq' ) + // InternalTextualScenario.g:976:3: 'seq' { before(grammarAccess.getCombinedFragmentAccess().getKeywordSeqKeyword_0_0_8()); match(input,19,FOLLOW_2); @@ -2750,10 +3202,10 @@ public final void rule__CombinedFragment__KeywordAlternatives_0_0() throws Recog } break; case 10 : - // InternalTextualScenario.g:848:2: ( 'strict' ) + // InternalTextualScenario.g:981:2: ( 'strict' ) { - // InternalTextualScenario.g:848:2: ( 'strict' ) - // InternalTextualScenario.g:849:3: 'strict' + // InternalTextualScenario.g:981:2: ( 'strict' ) + // InternalTextualScenario.g:982:3: 'strict' { before(grammarAccess.getCombinedFragmentAccess().getKeywordStrictKeyword_0_0_9()); match(input,20,FOLLOW_2); @@ -2765,10 +3217,10 @@ public final void rule__CombinedFragment__KeywordAlternatives_0_0() throws Recog } break; case 11 : - // InternalTextualScenario.g:854:2: ( 'unset' ) + // InternalTextualScenario.g:987:2: ( 'unset' ) { - // InternalTextualScenario.g:854:2: ( 'unset' ) - // InternalTextualScenario.g:855:3: 'unset' + // InternalTextualScenario.g:987:2: ( 'unset' ) + // InternalTextualScenario.g:988:3: 'unset' { before(grammarAccess.getCombinedFragmentAccess().getKeywordUnsetKeyword_0_0_10()); match(input,21,FOLLOW_2); @@ -2797,43 +3249,43 @@ public final void rule__CombinedFragment__KeywordAlternatives_0_0() throws Recog // $ANTLR start "rule__StateFragment__KeywordAlternatives_2_0" - // InternalTextualScenario.g:864:1: rule__StateFragment__KeywordAlternatives_2_0 : ( ( 'state' ) | ( 'mode' ) | ( 'function' ) ); + // InternalTextualScenario.g:997:1: rule__StateFragment__KeywordAlternatives_2_0 : ( ( 'state' ) | ( 'mode' ) | ( 'function' ) ); public final void rule__StateFragment__KeywordAlternatives_2_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:868:1: ( ( 'state' ) | ( 'mode' ) | ( 'function' ) ) - int alt8=3; + // InternalTextualScenario.g:1001:1: ( ( 'state' ) | ( 'mode' ) | ( 'function' ) ) + int alt9=3; switch ( input.LA(1) ) { case 22: { - alt8=1; + alt9=1; } break; case 23: { - alt8=2; + alt9=2; } break; case 24: { - alt8=3; + alt9=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 8, 0, input); + new NoViableAltException("", 9, 0, input); throw nvae; } - switch (alt8) { + switch (alt9) { case 1 : - // InternalTextualScenario.g:869:2: ( 'state' ) + // InternalTextualScenario.g:1002:2: ( 'state' ) { - // InternalTextualScenario.g:869:2: ( 'state' ) - // InternalTextualScenario.g:870:3: 'state' + // InternalTextualScenario.g:1002:2: ( 'state' ) + // InternalTextualScenario.g:1003:3: 'state' { before(grammarAccess.getStateFragmentAccess().getKeywordStateKeyword_2_0_0()); match(input,22,FOLLOW_2); @@ -2845,10 +3297,10 @@ public final void rule__StateFragment__KeywordAlternatives_2_0() throws Recognit } break; case 2 : - // InternalTextualScenario.g:875:2: ( 'mode' ) + // InternalTextualScenario.g:1008:2: ( 'mode' ) { - // InternalTextualScenario.g:875:2: ( 'mode' ) - // InternalTextualScenario.g:876:3: 'mode' + // InternalTextualScenario.g:1008:2: ( 'mode' ) + // InternalTextualScenario.g:1009:3: 'mode' { before(grammarAccess.getStateFragmentAccess().getKeywordModeKeyword_2_0_1()); match(input,23,FOLLOW_2); @@ -2860,10 +3312,10 @@ public final void rule__StateFragment__KeywordAlternatives_2_0() throws Recognit } break; case 3 : - // InternalTextualScenario.g:881:2: ( 'function' ) + // InternalTextualScenario.g:1014:2: ( 'function' ) { - // InternalTextualScenario.g:881:2: ( 'function' ) - // InternalTextualScenario.g:882:3: 'function' + // InternalTextualScenario.g:1014:2: ( 'function' ) + // InternalTextualScenario.g:1015:3: 'function' { before(grammarAccess.getStateFragmentAccess().getKeywordFunctionKeyword_2_0_2()); match(input,24,FOLLOW_2); @@ -2892,14 +3344,14 @@ public final void rule__StateFragment__KeywordAlternatives_2_0() throws Recognit // $ANTLR start "rule__Model__Group__0" - // InternalTextualScenario.g:891:1: rule__Model__Group__0 : rule__Model__Group__0__Impl rule__Model__Group__1 ; + // InternalTextualScenario.g:1024: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 { - // InternalTextualScenario.g:895:1: ( rule__Model__Group__0__Impl rule__Model__Group__1 ) - // InternalTextualScenario.g:896:2: rule__Model__Group__0__Impl rule__Model__Group__1 + // InternalTextualScenario.g:1028:1: ( rule__Model__Group__0__Impl rule__Model__Group__1 ) + // InternalTextualScenario.g:1029:2: rule__Model__Group__0__Impl rule__Model__Group__1 { pushFollow(FOLLOW_3); rule__Model__Group__0__Impl(); @@ -2930,17 +3382,17 @@ public final void rule__Model__Group__0() throws RecognitionException { // $ANTLR start "rule__Model__Group__0__Impl" - // InternalTextualScenario.g:903:1: rule__Model__Group__0__Impl : ( 'scenario' ) ; + // InternalTextualScenario.g:1036:1: rule__Model__Group__0__Impl : ( 'scenario' ) ; public final void rule__Model__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:907:1: ( ( 'scenario' ) ) - // InternalTextualScenario.g:908:1: ( 'scenario' ) + // InternalTextualScenario.g:1040:1: ( ( 'scenario' ) ) + // InternalTextualScenario.g:1041:1: ( 'scenario' ) { - // InternalTextualScenario.g:908:1: ( 'scenario' ) - // InternalTextualScenario.g:909:2: 'scenario' + // InternalTextualScenario.g:1041:1: ( 'scenario' ) + // InternalTextualScenario.g:1042:2: 'scenario' { before(grammarAccess.getModelAccess().getScenarioKeyword_0()); match(input,25,FOLLOW_2); @@ -2967,14 +3419,14 @@ public final void rule__Model__Group__0__Impl() throws RecognitionException { // $ANTLR start "rule__Model__Group__1" - // InternalTextualScenario.g:918:1: rule__Model__Group__1 : rule__Model__Group__1__Impl rule__Model__Group__2 ; + // InternalTextualScenario.g:1051: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 { - // InternalTextualScenario.g:922:1: ( rule__Model__Group__1__Impl rule__Model__Group__2 ) - // InternalTextualScenario.g:923:2: rule__Model__Group__1__Impl rule__Model__Group__2 + // InternalTextualScenario.g:1055:1: ( rule__Model__Group__1__Impl rule__Model__Group__2 ) + // InternalTextualScenario.g:1056:2: rule__Model__Group__1__Impl rule__Model__Group__2 { pushFollow(FOLLOW_4); rule__Model__Group__1__Impl(); @@ -3005,21 +3457,21 @@ public final void rule__Model__Group__1() throws RecognitionException { // $ANTLR start "rule__Model__Group__1__Impl" - // InternalTextualScenario.g:930:1: rule__Model__Group__1__Impl : ( ( rule__Model__BeginAssignment_1 ) ) ; + // InternalTextualScenario.g:1063:1: rule__Model__Group__1__Impl : ( ( rule__Model__BeginAssignment_1 ) ) ; public final void rule__Model__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:934:1: ( ( ( rule__Model__BeginAssignment_1 ) ) ) - // InternalTextualScenario.g:935:1: ( ( rule__Model__BeginAssignment_1 ) ) + // InternalTextualScenario.g:1067:1: ( ( ( rule__Model__BeginAssignment_1 ) ) ) + // InternalTextualScenario.g:1068:1: ( ( rule__Model__BeginAssignment_1 ) ) { - // InternalTextualScenario.g:935:1: ( ( rule__Model__BeginAssignment_1 ) ) - // InternalTextualScenario.g:936:2: ( rule__Model__BeginAssignment_1 ) + // InternalTextualScenario.g:1068:1: ( ( rule__Model__BeginAssignment_1 ) ) + // InternalTextualScenario.g:1069:2: ( rule__Model__BeginAssignment_1 ) { before(grammarAccess.getModelAccess().getBeginAssignment_1()); - // InternalTextualScenario.g:937:2: ( rule__Model__BeginAssignment_1 ) - // InternalTextualScenario.g:937:3: rule__Model__BeginAssignment_1 + // InternalTextualScenario.g:1070:2: ( rule__Model__BeginAssignment_1 ) + // InternalTextualScenario.g:1070:3: rule__Model__BeginAssignment_1 { pushFollow(FOLLOW_2); rule__Model__BeginAssignment_1(); @@ -3052,14 +3504,14 @@ public final void rule__Model__Group__1__Impl() throws RecognitionException { // $ANTLR start "rule__Model__Group__2" - // InternalTextualScenario.g:945:1: rule__Model__Group__2 : rule__Model__Group__2__Impl rule__Model__Group__3 ; + // InternalTextualScenario.g:1078:1: rule__Model__Group__2 : rule__Model__Group__2__Impl rule__Model__Group__3 ; public final void rule__Model__Group__2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:949:1: ( rule__Model__Group__2__Impl rule__Model__Group__3 ) - // InternalTextualScenario.g:950:2: rule__Model__Group__2__Impl rule__Model__Group__3 + // InternalTextualScenario.g:1082:1: ( rule__Model__Group__2__Impl rule__Model__Group__3 ) + // InternalTextualScenario.g:1083:2: rule__Model__Group__2__Impl rule__Model__Group__3 { pushFollow(FOLLOW_4); rule__Model__Group__2__Impl(); @@ -3090,33 +3542,33 @@ public final void rule__Model__Group__2() throws RecognitionException { // $ANTLR start "rule__Model__Group__2__Impl" - // InternalTextualScenario.g:957:1: rule__Model__Group__2__Impl : ( ( rule__Model__ParticipantsAssignment_2 )* ) ; + // InternalTextualScenario.g:1090:1: rule__Model__Group__2__Impl : ( ( rule__Model__ParticipantsAssignment_2 )* ) ; public final void rule__Model__Group__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:961:1: ( ( ( rule__Model__ParticipantsAssignment_2 )* ) ) - // InternalTextualScenario.g:962:1: ( ( rule__Model__ParticipantsAssignment_2 )* ) + // InternalTextualScenario.g:1094:1: ( ( ( rule__Model__ParticipantsAssignment_2 )* ) ) + // InternalTextualScenario.g:1095:1: ( ( rule__Model__ParticipantsAssignment_2 )* ) { - // InternalTextualScenario.g:962:1: ( ( rule__Model__ParticipantsAssignment_2 )* ) - // InternalTextualScenario.g:963:2: ( rule__Model__ParticipantsAssignment_2 )* + // InternalTextualScenario.g:1095:1: ( ( rule__Model__ParticipantsAssignment_2 )* ) + // InternalTextualScenario.g:1096:2: ( rule__Model__ParticipantsAssignment_2 )* { before(grammarAccess.getModelAccess().getParticipantsAssignment_2()); - // InternalTextualScenario.g:964:2: ( rule__Model__ParticipantsAssignment_2 )* - loop9: + // InternalTextualScenario.g:1097:2: ( rule__Model__ParticipantsAssignment_2 )* + loop10: do { - int alt9=2; - int LA9_0 = input.LA(1); + int alt10=2; + int LA10_0 = input.LA(1); - if ( (LA9_0==24||(LA9_0>=28 && LA9_0<=33)) ) { - alt9=1; + if ( (LA10_0==24||(LA10_0>=28 && LA10_0<=33)) ) { + alt10=1; } - switch (alt9) { + switch (alt10) { case 1 : - // InternalTextualScenario.g:964:3: rule__Model__ParticipantsAssignment_2 + // InternalTextualScenario.g:1097:3: rule__Model__ParticipantsAssignment_2 { pushFollow(FOLLOW_5); rule__Model__ParticipantsAssignment_2(); @@ -3128,7 +3580,7 @@ public final void rule__Model__Group__2__Impl() throws RecognitionException { break; default : - break loop9; + break loop10; } } while (true); @@ -3155,14 +3607,14 @@ public final void rule__Model__Group__2__Impl() throws RecognitionException { // $ANTLR start "rule__Model__Group__3" - // InternalTextualScenario.g:972:1: rule__Model__Group__3 : rule__Model__Group__3__Impl rule__Model__Group__4 ; + // InternalTextualScenario.g:1105:1: rule__Model__Group__3 : rule__Model__Group__3__Impl rule__Model__Group__4 ; public final void rule__Model__Group__3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:976:1: ( rule__Model__Group__3__Impl rule__Model__Group__4 ) - // InternalTextualScenario.g:977:2: rule__Model__Group__3__Impl rule__Model__Group__4 + // InternalTextualScenario.g:1109:1: ( rule__Model__Group__3__Impl rule__Model__Group__4 ) + // InternalTextualScenario.g:1110:2: rule__Model__Group__3__Impl rule__Model__Group__4 { pushFollow(FOLLOW_4); rule__Model__Group__3__Impl(); @@ -3193,33 +3645,33 @@ public final void rule__Model__Group__3() throws RecognitionException { // $ANTLR start "rule__Model__Group__3__Impl" - // InternalTextualScenario.g:984:1: rule__Model__Group__3__Impl : ( ( rule__Model__ElementsAssignment_3 )* ) ; + // InternalTextualScenario.g:1117:1: rule__Model__Group__3__Impl : ( ( rule__Model__ElementsAssignment_3 )* ) ; public final void rule__Model__Group__3__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:988:1: ( ( ( rule__Model__ElementsAssignment_3 )* ) ) - // InternalTextualScenario.g:989:1: ( ( rule__Model__ElementsAssignment_3 )* ) + // InternalTextualScenario.g:1121:1: ( ( ( rule__Model__ElementsAssignment_3 )* ) ) + // InternalTextualScenario.g:1122:1: ( ( rule__Model__ElementsAssignment_3 )* ) { - // InternalTextualScenario.g:989:1: ( ( rule__Model__ElementsAssignment_3 )* ) - // InternalTextualScenario.g:990:2: ( rule__Model__ElementsAssignment_3 )* + // InternalTextualScenario.g:1122:1: ( ( rule__Model__ElementsAssignment_3 )* ) + // InternalTextualScenario.g:1123:2: ( rule__Model__ElementsAssignment_3 )* { before(grammarAccess.getModelAccess().getElementsAssignment_3()); - // InternalTextualScenario.g:991:2: ( rule__Model__ElementsAssignment_3 )* - loop10: + // InternalTextualScenario.g:1124:2: ( rule__Model__ElementsAssignment_3 )* + loop11: do { - int alt10=2; - int LA10_0 = input.LA(1); + int alt11=2; + int LA11_0 = input.LA(1); - if ( (LA10_0==RULE_STRING||(LA10_0>=11 && LA10_0<=21)||(LA10_0>=40 && LA10_0<=41)||LA10_0==44) ) { - alt10=1; + if ( (LA11_0==RULE_STRING||(LA11_0>=11 && LA11_0<=21)||LA11_0==40||(LA11_0>=42 && LA11_0<=43)||(LA11_0>=46 && LA11_0<=47)) ) { + alt11=1; } - switch (alt10) { + switch (alt11) { case 1 : - // InternalTextualScenario.g:991:3: rule__Model__ElementsAssignment_3 + // InternalTextualScenario.g:1124:3: rule__Model__ElementsAssignment_3 { pushFollow(FOLLOW_6); rule__Model__ElementsAssignment_3(); @@ -3231,7 +3683,7 @@ public final void rule__Model__Group__3__Impl() throws RecognitionException { break; default : - break loop10; + break loop11; } } while (true); @@ -3258,14 +3710,14 @@ public final void rule__Model__Group__3__Impl() throws RecognitionException { // $ANTLR start "rule__Model__Group__4" - // InternalTextualScenario.g:999:1: rule__Model__Group__4 : rule__Model__Group__4__Impl ; + // InternalTextualScenario.g:1132:1: rule__Model__Group__4 : rule__Model__Group__4__Impl ; public final void rule__Model__Group__4() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1003:1: ( rule__Model__Group__4__Impl ) - // InternalTextualScenario.g:1004:2: rule__Model__Group__4__Impl + // InternalTextualScenario.g:1136:1: ( rule__Model__Group__4__Impl ) + // InternalTextualScenario.g:1137:2: rule__Model__Group__4__Impl { pushFollow(FOLLOW_2); rule__Model__Group__4__Impl(); @@ -3291,21 +3743,21 @@ public final void rule__Model__Group__4() throws RecognitionException { // $ANTLR start "rule__Model__Group__4__Impl" - // InternalTextualScenario.g:1010:1: rule__Model__Group__4__Impl : ( ( rule__Model__EndAssignment_4 ) ) ; + // InternalTextualScenario.g:1143:1: rule__Model__Group__4__Impl : ( ( rule__Model__EndAssignment_4 ) ) ; public final void rule__Model__Group__4__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1014:1: ( ( ( rule__Model__EndAssignment_4 ) ) ) - // InternalTextualScenario.g:1015:1: ( ( rule__Model__EndAssignment_4 ) ) + // InternalTextualScenario.g:1147:1: ( ( ( rule__Model__EndAssignment_4 ) ) ) + // InternalTextualScenario.g:1148:1: ( ( rule__Model__EndAssignment_4 ) ) { - // InternalTextualScenario.g:1015:1: ( ( rule__Model__EndAssignment_4 ) ) - // InternalTextualScenario.g:1016:2: ( rule__Model__EndAssignment_4 ) + // InternalTextualScenario.g:1148:1: ( ( rule__Model__EndAssignment_4 ) ) + // InternalTextualScenario.g:1149:2: ( rule__Model__EndAssignment_4 ) { before(grammarAccess.getModelAccess().getEndAssignment_4()); - // InternalTextualScenario.g:1017:2: ( rule__Model__EndAssignment_4 ) - // InternalTextualScenario.g:1017:3: rule__Model__EndAssignment_4 + // InternalTextualScenario.g:1150:2: ( rule__Model__EndAssignment_4 ) + // InternalTextualScenario.g:1150:3: rule__Model__EndAssignment_4 { pushFollow(FOLLOW_2); rule__Model__EndAssignment_4(); @@ -3338,14 +3790,14 @@ public final void rule__Model__Group__4__Impl() throws RecognitionException { // $ANTLR start "rule__Actor__Group__0" - // InternalTextualScenario.g:1026:1: rule__Actor__Group__0 : rule__Actor__Group__0__Impl rule__Actor__Group__1 ; + // InternalTextualScenario.g:1159:1: rule__Actor__Group__0 : rule__Actor__Group__0__Impl rule__Actor__Group__1 ; public final void rule__Actor__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1030:1: ( rule__Actor__Group__0__Impl rule__Actor__Group__1 ) - // InternalTextualScenario.g:1031:2: rule__Actor__Group__0__Impl rule__Actor__Group__1 + // InternalTextualScenario.g:1163:1: ( rule__Actor__Group__0__Impl rule__Actor__Group__1 ) + // InternalTextualScenario.g:1164:2: rule__Actor__Group__0__Impl rule__Actor__Group__1 { pushFollow(FOLLOW_7); rule__Actor__Group__0__Impl(); @@ -3376,21 +3828,21 @@ public final void rule__Actor__Group__0() throws RecognitionException { // $ANTLR start "rule__Actor__Group__0__Impl" - // InternalTextualScenario.g:1038:1: rule__Actor__Group__0__Impl : ( ( rule__Actor__KeywordAssignment_0 ) ) ; + // InternalTextualScenario.g:1171:1: rule__Actor__Group__0__Impl : ( ( rule__Actor__KeywordAssignment_0 ) ) ; public final void rule__Actor__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1042:1: ( ( ( rule__Actor__KeywordAssignment_0 ) ) ) - // InternalTextualScenario.g:1043:1: ( ( rule__Actor__KeywordAssignment_0 ) ) + // InternalTextualScenario.g:1175:1: ( ( ( rule__Actor__KeywordAssignment_0 ) ) ) + // InternalTextualScenario.g:1176:1: ( ( rule__Actor__KeywordAssignment_0 ) ) { - // InternalTextualScenario.g:1043:1: ( ( rule__Actor__KeywordAssignment_0 ) ) - // InternalTextualScenario.g:1044:2: ( rule__Actor__KeywordAssignment_0 ) + // InternalTextualScenario.g:1176:1: ( ( rule__Actor__KeywordAssignment_0 ) ) + // InternalTextualScenario.g:1177:2: ( rule__Actor__KeywordAssignment_0 ) { before(grammarAccess.getActorAccess().getKeywordAssignment_0()); - // InternalTextualScenario.g:1045:2: ( rule__Actor__KeywordAssignment_0 ) - // InternalTextualScenario.g:1045:3: rule__Actor__KeywordAssignment_0 + // InternalTextualScenario.g:1178:2: ( rule__Actor__KeywordAssignment_0 ) + // InternalTextualScenario.g:1178:3: rule__Actor__KeywordAssignment_0 { pushFollow(FOLLOW_2); rule__Actor__KeywordAssignment_0(); @@ -3423,14 +3875,14 @@ public final void rule__Actor__Group__0__Impl() throws RecognitionException { // $ANTLR start "rule__Actor__Group__1" - // InternalTextualScenario.g:1053:1: rule__Actor__Group__1 : rule__Actor__Group__1__Impl ; + // InternalTextualScenario.g:1186:1: rule__Actor__Group__1 : rule__Actor__Group__1__Impl ; public final void rule__Actor__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1057:1: ( rule__Actor__Group__1__Impl ) - // InternalTextualScenario.g:1058:2: rule__Actor__Group__1__Impl + // InternalTextualScenario.g:1190:1: ( rule__Actor__Group__1__Impl ) + // InternalTextualScenario.g:1191:2: rule__Actor__Group__1__Impl { pushFollow(FOLLOW_2); rule__Actor__Group__1__Impl(); @@ -3456,21 +3908,21 @@ public final void rule__Actor__Group__1() throws RecognitionException { // $ANTLR start "rule__Actor__Group__1__Impl" - // InternalTextualScenario.g:1064:1: rule__Actor__Group__1__Impl : ( ( rule__Actor__NameAssignment_1 ) ) ; + // InternalTextualScenario.g:1197:1: rule__Actor__Group__1__Impl : ( ( rule__Actor__NameAssignment_1 ) ) ; public final void rule__Actor__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1068:1: ( ( ( rule__Actor__NameAssignment_1 ) ) ) - // InternalTextualScenario.g:1069:1: ( ( rule__Actor__NameAssignment_1 ) ) + // InternalTextualScenario.g:1201:1: ( ( ( rule__Actor__NameAssignment_1 ) ) ) + // InternalTextualScenario.g:1202:1: ( ( rule__Actor__NameAssignment_1 ) ) { - // InternalTextualScenario.g:1069:1: ( ( rule__Actor__NameAssignment_1 ) ) - // InternalTextualScenario.g:1070:2: ( rule__Actor__NameAssignment_1 ) + // InternalTextualScenario.g:1202:1: ( ( rule__Actor__NameAssignment_1 ) ) + // InternalTextualScenario.g:1203:2: ( rule__Actor__NameAssignment_1 ) { before(grammarAccess.getActorAccess().getNameAssignment_1()); - // InternalTextualScenario.g:1071:2: ( rule__Actor__NameAssignment_1 ) - // InternalTextualScenario.g:1071:3: rule__Actor__NameAssignment_1 + // InternalTextualScenario.g:1204:2: ( rule__Actor__NameAssignment_1 ) + // InternalTextualScenario.g:1204:3: rule__Actor__NameAssignment_1 { pushFollow(FOLLOW_2); rule__Actor__NameAssignment_1(); @@ -3503,14 +3955,14 @@ public final void rule__Actor__Group__1__Impl() throws RecognitionException { // $ANTLR start "rule__Component__Group__0" - // InternalTextualScenario.g:1080:1: rule__Component__Group__0 : rule__Component__Group__0__Impl rule__Component__Group__1 ; + // InternalTextualScenario.g:1213:1: rule__Component__Group__0 : rule__Component__Group__0__Impl rule__Component__Group__1 ; public final void rule__Component__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1084:1: ( rule__Component__Group__0__Impl rule__Component__Group__1 ) - // InternalTextualScenario.g:1085:2: rule__Component__Group__0__Impl rule__Component__Group__1 + // InternalTextualScenario.g:1217:1: ( rule__Component__Group__0__Impl rule__Component__Group__1 ) + // InternalTextualScenario.g:1218:2: rule__Component__Group__0__Impl rule__Component__Group__1 { pushFollow(FOLLOW_7); rule__Component__Group__0__Impl(); @@ -3541,21 +3993,21 @@ public final void rule__Component__Group__0() throws RecognitionException { // $ANTLR start "rule__Component__Group__0__Impl" - // InternalTextualScenario.g:1092:1: rule__Component__Group__0__Impl : ( ( rule__Component__KeywordAssignment_0 ) ) ; + // InternalTextualScenario.g:1225:1: rule__Component__Group__0__Impl : ( ( rule__Component__KeywordAssignment_0 ) ) ; public final void rule__Component__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1096:1: ( ( ( rule__Component__KeywordAssignment_0 ) ) ) - // InternalTextualScenario.g:1097:1: ( ( rule__Component__KeywordAssignment_0 ) ) + // InternalTextualScenario.g:1229:1: ( ( ( rule__Component__KeywordAssignment_0 ) ) ) + // InternalTextualScenario.g:1230:1: ( ( rule__Component__KeywordAssignment_0 ) ) { - // InternalTextualScenario.g:1097:1: ( ( rule__Component__KeywordAssignment_0 ) ) - // InternalTextualScenario.g:1098:2: ( rule__Component__KeywordAssignment_0 ) + // InternalTextualScenario.g:1230:1: ( ( rule__Component__KeywordAssignment_0 ) ) + // InternalTextualScenario.g:1231:2: ( rule__Component__KeywordAssignment_0 ) { before(grammarAccess.getComponentAccess().getKeywordAssignment_0()); - // InternalTextualScenario.g:1099:2: ( rule__Component__KeywordAssignment_0 ) - // InternalTextualScenario.g:1099:3: rule__Component__KeywordAssignment_0 + // InternalTextualScenario.g:1232:2: ( rule__Component__KeywordAssignment_0 ) + // InternalTextualScenario.g:1232:3: rule__Component__KeywordAssignment_0 { pushFollow(FOLLOW_2); rule__Component__KeywordAssignment_0(); @@ -3588,14 +4040,14 @@ public final void rule__Component__Group__0__Impl() throws RecognitionException // $ANTLR start "rule__Component__Group__1" - // InternalTextualScenario.g:1107:1: rule__Component__Group__1 : rule__Component__Group__1__Impl ; + // InternalTextualScenario.g:1240:1: rule__Component__Group__1 : rule__Component__Group__1__Impl ; public final void rule__Component__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1111:1: ( rule__Component__Group__1__Impl ) - // InternalTextualScenario.g:1112:2: rule__Component__Group__1__Impl + // InternalTextualScenario.g:1244:1: ( rule__Component__Group__1__Impl ) + // InternalTextualScenario.g:1245:2: rule__Component__Group__1__Impl { pushFollow(FOLLOW_2); rule__Component__Group__1__Impl(); @@ -3621,21 +4073,21 @@ public final void rule__Component__Group__1() throws RecognitionException { // $ANTLR start "rule__Component__Group__1__Impl" - // InternalTextualScenario.g:1118:1: rule__Component__Group__1__Impl : ( ( rule__Component__NameAssignment_1 ) ) ; + // InternalTextualScenario.g:1251:1: rule__Component__Group__1__Impl : ( ( rule__Component__NameAssignment_1 ) ) ; public final void rule__Component__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1122:1: ( ( ( rule__Component__NameAssignment_1 ) ) ) - // InternalTextualScenario.g:1123:1: ( ( rule__Component__NameAssignment_1 ) ) + // InternalTextualScenario.g:1255:1: ( ( ( rule__Component__NameAssignment_1 ) ) ) + // InternalTextualScenario.g:1256:1: ( ( rule__Component__NameAssignment_1 ) ) { - // InternalTextualScenario.g:1123:1: ( ( rule__Component__NameAssignment_1 ) ) - // InternalTextualScenario.g:1124:2: ( rule__Component__NameAssignment_1 ) + // InternalTextualScenario.g:1256:1: ( ( rule__Component__NameAssignment_1 ) ) + // InternalTextualScenario.g:1257:2: ( rule__Component__NameAssignment_1 ) { before(grammarAccess.getComponentAccess().getNameAssignment_1()); - // InternalTextualScenario.g:1125:2: ( rule__Component__NameAssignment_1 ) - // InternalTextualScenario.g:1125:3: rule__Component__NameAssignment_1 + // InternalTextualScenario.g:1258:2: ( rule__Component__NameAssignment_1 ) + // InternalTextualScenario.g:1258:3: rule__Component__NameAssignment_1 { pushFollow(FOLLOW_2); rule__Component__NameAssignment_1(); @@ -3668,14 +4120,14 @@ public final void rule__Component__Group__1__Impl() throws RecognitionException // $ANTLR start "rule__ConfigurationItem__Group__0" - // InternalTextualScenario.g:1134:1: rule__ConfigurationItem__Group__0 : rule__ConfigurationItem__Group__0__Impl rule__ConfigurationItem__Group__1 ; + // InternalTextualScenario.g:1267:1: rule__ConfigurationItem__Group__0 : rule__ConfigurationItem__Group__0__Impl rule__ConfigurationItem__Group__1 ; public final void rule__ConfigurationItem__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1138:1: ( rule__ConfigurationItem__Group__0__Impl rule__ConfigurationItem__Group__1 ) - // InternalTextualScenario.g:1139:2: rule__ConfigurationItem__Group__0__Impl rule__ConfigurationItem__Group__1 + // InternalTextualScenario.g:1271:1: ( rule__ConfigurationItem__Group__0__Impl rule__ConfigurationItem__Group__1 ) + // InternalTextualScenario.g:1272:2: rule__ConfigurationItem__Group__0__Impl rule__ConfigurationItem__Group__1 { pushFollow(FOLLOW_7); rule__ConfigurationItem__Group__0__Impl(); @@ -3706,21 +4158,21 @@ public final void rule__ConfigurationItem__Group__0() throws RecognitionExceptio // $ANTLR start "rule__ConfigurationItem__Group__0__Impl" - // InternalTextualScenario.g:1146:1: rule__ConfigurationItem__Group__0__Impl : ( ( rule__ConfigurationItem__KeywordAssignment_0 ) ) ; + // InternalTextualScenario.g:1279:1: rule__ConfigurationItem__Group__0__Impl : ( ( rule__ConfigurationItem__KeywordAssignment_0 ) ) ; public final void rule__ConfigurationItem__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1150:1: ( ( ( rule__ConfigurationItem__KeywordAssignment_0 ) ) ) - // InternalTextualScenario.g:1151:1: ( ( rule__ConfigurationItem__KeywordAssignment_0 ) ) + // InternalTextualScenario.g:1283:1: ( ( ( rule__ConfigurationItem__KeywordAssignment_0 ) ) ) + // InternalTextualScenario.g:1284:1: ( ( rule__ConfigurationItem__KeywordAssignment_0 ) ) { - // InternalTextualScenario.g:1151:1: ( ( rule__ConfigurationItem__KeywordAssignment_0 ) ) - // InternalTextualScenario.g:1152:2: ( rule__ConfigurationItem__KeywordAssignment_0 ) + // InternalTextualScenario.g:1284:1: ( ( rule__ConfigurationItem__KeywordAssignment_0 ) ) + // InternalTextualScenario.g:1285:2: ( rule__ConfigurationItem__KeywordAssignment_0 ) { before(grammarAccess.getConfigurationItemAccess().getKeywordAssignment_0()); - // InternalTextualScenario.g:1153:2: ( rule__ConfigurationItem__KeywordAssignment_0 ) - // InternalTextualScenario.g:1153:3: rule__ConfigurationItem__KeywordAssignment_0 + // InternalTextualScenario.g:1286:2: ( rule__ConfigurationItem__KeywordAssignment_0 ) + // InternalTextualScenario.g:1286:3: rule__ConfigurationItem__KeywordAssignment_0 { pushFollow(FOLLOW_2); rule__ConfigurationItem__KeywordAssignment_0(); @@ -3753,14 +4205,14 @@ public final void rule__ConfigurationItem__Group__0__Impl() throws RecognitionEx // $ANTLR start "rule__ConfigurationItem__Group__1" - // InternalTextualScenario.g:1161:1: rule__ConfigurationItem__Group__1 : rule__ConfigurationItem__Group__1__Impl ; + // InternalTextualScenario.g:1294:1: rule__ConfigurationItem__Group__1 : rule__ConfigurationItem__Group__1__Impl ; public final void rule__ConfigurationItem__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1165:1: ( rule__ConfigurationItem__Group__1__Impl ) - // InternalTextualScenario.g:1166:2: rule__ConfigurationItem__Group__1__Impl + // InternalTextualScenario.g:1298:1: ( rule__ConfigurationItem__Group__1__Impl ) + // InternalTextualScenario.g:1299:2: rule__ConfigurationItem__Group__1__Impl { pushFollow(FOLLOW_2); rule__ConfigurationItem__Group__1__Impl(); @@ -3786,21 +4238,21 @@ public final void rule__ConfigurationItem__Group__1() throws RecognitionExceptio // $ANTLR start "rule__ConfigurationItem__Group__1__Impl" - // InternalTextualScenario.g:1172:1: rule__ConfigurationItem__Group__1__Impl : ( ( rule__ConfigurationItem__NameAssignment_1 ) ) ; + // InternalTextualScenario.g:1305:1: rule__ConfigurationItem__Group__1__Impl : ( ( rule__ConfigurationItem__NameAssignment_1 ) ) ; public final void rule__ConfigurationItem__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1176:1: ( ( ( rule__ConfigurationItem__NameAssignment_1 ) ) ) - // InternalTextualScenario.g:1177:1: ( ( rule__ConfigurationItem__NameAssignment_1 ) ) + // InternalTextualScenario.g:1309:1: ( ( ( rule__ConfigurationItem__NameAssignment_1 ) ) ) + // InternalTextualScenario.g:1310:1: ( ( rule__ConfigurationItem__NameAssignment_1 ) ) { - // InternalTextualScenario.g:1177:1: ( ( rule__ConfigurationItem__NameAssignment_1 ) ) - // InternalTextualScenario.g:1178:2: ( rule__ConfigurationItem__NameAssignment_1 ) + // InternalTextualScenario.g:1310:1: ( ( rule__ConfigurationItem__NameAssignment_1 ) ) + // InternalTextualScenario.g:1311:2: ( rule__ConfigurationItem__NameAssignment_1 ) { before(grammarAccess.getConfigurationItemAccess().getNameAssignment_1()); - // InternalTextualScenario.g:1179:2: ( rule__ConfigurationItem__NameAssignment_1 ) - // InternalTextualScenario.g:1179:3: rule__ConfigurationItem__NameAssignment_1 + // InternalTextualScenario.g:1312:2: ( rule__ConfigurationItem__NameAssignment_1 ) + // InternalTextualScenario.g:1312:3: rule__ConfigurationItem__NameAssignment_1 { pushFollow(FOLLOW_2); rule__ConfigurationItem__NameAssignment_1(); @@ -3833,14 +4285,14 @@ public final void rule__ConfigurationItem__Group__1__Impl() throws RecognitionEx // $ANTLR start "rule__Function__Group__0" - // InternalTextualScenario.g:1188:1: rule__Function__Group__0 : rule__Function__Group__0__Impl rule__Function__Group__1 ; + // InternalTextualScenario.g:1321:1: rule__Function__Group__0 : rule__Function__Group__0__Impl rule__Function__Group__1 ; public final void rule__Function__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1192:1: ( rule__Function__Group__0__Impl rule__Function__Group__1 ) - // InternalTextualScenario.g:1193:2: rule__Function__Group__0__Impl rule__Function__Group__1 + // InternalTextualScenario.g:1325:1: ( rule__Function__Group__0__Impl rule__Function__Group__1 ) + // InternalTextualScenario.g:1326:2: rule__Function__Group__0__Impl rule__Function__Group__1 { pushFollow(FOLLOW_7); rule__Function__Group__0__Impl(); @@ -3871,21 +4323,21 @@ public final void rule__Function__Group__0() throws RecognitionException { // $ANTLR start "rule__Function__Group__0__Impl" - // InternalTextualScenario.g:1200:1: rule__Function__Group__0__Impl : ( ( rule__Function__KeywordAssignment_0 ) ) ; + // InternalTextualScenario.g:1333:1: rule__Function__Group__0__Impl : ( ( rule__Function__KeywordAssignment_0 ) ) ; public final void rule__Function__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1204:1: ( ( ( rule__Function__KeywordAssignment_0 ) ) ) - // InternalTextualScenario.g:1205:1: ( ( rule__Function__KeywordAssignment_0 ) ) + // InternalTextualScenario.g:1337:1: ( ( ( rule__Function__KeywordAssignment_0 ) ) ) + // InternalTextualScenario.g:1338:1: ( ( rule__Function__KeywordAssignment_0 ) ) { - // InternalTextualScenario.g:1205:1: ( ( rule__Function__KeywordAssignment_0 ) ) - // InternalTextualScenario.g:1206:2: ( rule__Function__KeywordAssignment_0 ) + // InternalTextualScenario.g:1338:1: ( ( rule__Function__KeywordAssignment_0 ) ) + // InternalTextualScenario.g:1339:2: ( rule__Function__KeywordAssignment_0 ) { before(grammarAccess.getFunctionAccess().getKeywordAssignment_0()); - // InternalTextualScenario.g:1207:2: ( rule__Function__KeywordAssignment_0 ) - // InternalTextualScenario.g:1207:3: rule__Function__KeywordAssignment_0 + // InternalTextualScenario.g:1340:2: ( rule__Function__KeywordAssignment_0 ) + // InternalTextualScenario.g:1340:3: rule__Function__KeywordAssignment_0 { pushFollow(FOLLOW_2); rule__Function__KeywordAssignment_0(); @@ -3918,14 +4370,14 @@ public final void rule__Function__Group__0__Impl() throws RecognitionException { // $ANTLR start "rule__Function__Group__1" - // InternalTextualScenario.g:1215:1: rule__Function__Group__1 : rule__Function__Group__1__Impl ; + // InternalTextualScenario.g:1348:1: rule__Function__Group__1 : rule__Function__Group__1__Impl ; public final void rule__Function__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1219:1: ( rule__Function__Group__1__Impl ) - // InternalTextualScenario.g:1220:2: rule__Function__Group__1__Impl + // InternalTextualScenario.g:1352:1: ( rule__Function__Group__1__Impl ) + // InternalTextualScenario.g:1353:2: rule__Function__Group__1__Impl { pushFollow(FOLLOW_2); rule__Function__Group__1__Impl(); @@ -3951,21 +4403,21 @@ public final void rule__Function__Group__1() throws RecognitionException { // $ANTLR start "rule__Function__Group__1__Impl" - // InternalTextualScenario.g:1226:1: rule__Function__Group__1__Impl : ( ( rule__Function__NameAssignment_1 ) ) ; + // InternalTextualScenario.g:1359:1: rule__Function__Group__1__Impl : ( ( rule__Function__NameAssignment_1 ) ) ; public final void rule__Function__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1230:1: ( ( ( rule__Function__NameAssignment_1 ) ) ) - // InternalTextualScenario.g:1231:1: ( ( rule__Function__NameAssignment_1 ) ) + // InternalTextualScenario.g:1363:1: ( ( ( rule__Function__NameAssignment_1 ) ) ) + // InternalTextualScenario.g:1364:1: ( ( rule__Function__NameAssignment_1 ) ) { - // InternalTextualScenario.g:1231:1: ( ( rule__Function__NameAssignment_1 ) ) - // InternalTextualScenario.g:1232:2: ( rule__Function__NameAssignment_1 ) + // InternalTextualScenario.g:1364:1: ( ( rule__Function__NameAssignment_1 ) ) + // InternalTextualScenario.g:1365:2: ( rule__Function__NameAssignment_1 ) { before(grammarAccess.getFunctionAccess().getNameAssignment_1()); - // InternalTextualScenario.g:1233:2: ( rule__Function__NameAssignment_1 ) - // InternalTextualScenario.g:1233:3: rule__Function__NameAssignment_1 + // InternalTextualScenario.g:1366:2: ( rule__Function__NameAssignment_1 ) + // InternalTextualScenario.g:1366:3: rule__Function__NameAssignment_1 { pushFollow(FOLLOW_2); rule__Function__NameAssignment_1(); @@ -3998,14 +4450,14 @@ public final void rule__Function__Group__1__Impl() throws RecognitionException { // $ANTLR start "rule__Activity__Group__0" - // InternalTextualScenario.g:1242:1: rule__Activity__Group__0 : rule__Activity__Group__0__Impl rule__Activity__Group__1 ; + // InternalTextualScenario.g:1375:1: rule__Activity__Group__0 : rule__Activity__Group__0__Impl rule__Activity__Group__1 ; public final void rule__Activity__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1246:1: ( rule__Activity__Group__0__Impl rule__Activity__Group__1 ) - // InternalTextualScenario.g:1247:2: rule__Activity__Group__0__Impl rule__Activity__Group__1 + // InternalTextualScenario.g:1379:1: ( rule__Activity__Group__0__Impl rule__Activity__Group__1 ) + // InternalTextualScenario.g:1380:2: rule__Activity__Group__0__Impl rule__Activity__Group__1 { pushFollow(FOLLOW_7); rule__Activity__Group__0__Impl(); @@ -4036,21 +4488,21 @@ public final void rule__Activity__Group__0() throws RecognitionException { // $ANTLR start "rule__Activity__Group__0__Impl" - // InternalTextualScenario.g:1254:1: rule__Activity__Group__0__Impl : ( ( rule__Activity__KeywordAssignment_0 ) ) ; + // InternalTextualScenario.g:1387:1: rule__Activity__Group__0__Impl : ( ( rule__Activity__KeywordAssignment_0 ) ) ; public final void rule__Activity__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1258:1: ( ( ( rule__Activity__KeywordAssignment_0 ) ) ) - // InternalTextualScenario.g:1259:1: ( ( rule__Activity__KeywordAssignment_0 ) ) + // InternalTextualScenario.g:1391:1: ( ( ( rule__Activity__KeywordAssignment_0 ) ) ) + // InternalTextualScenario.g:1392:1: ( ( rule__Activity__KeywordAssignment_0 ) ) { - // InternalTextualScenario.g:1259:1: ( ( rule__Activity__KeywordAssignment_0 ) ) - // InternalTextualScenario.g:1260:2: ( rule__Activity__KeywordAssignment_0 ) + // InternalTextualScenario.g:1392:1: ( ( rule__Activity__KeywordAssignment_0 ) ) + // InternalTextualScenario.g:1393:2: ( rule__Activity__KeywordAssignment_0 ) { before(grammarAccess.getActivityAccess().getKeywordAssignment_0()); - // InternalTextualScenario.g:1261:2: ( rule__Activity__KeywordAssignment_0 ) - // InternalTextualScenario.g:1261:3: rule__Activity__KeywordAssignment_0 + // InternalTextualScenario.g:1394:2: ( rule__Activity__KeywordAssignment_0 ) + // InternalTextualScenario.g:1394:3: rule__Activity__KeywordAssignment_0 { pushFollow(FOLLOW_2); rule__Activity__KeywordAssignment_0(); @@ -4083,14 +4535,14 @@ public final void rule__Activity__Group__0__Impl() throws RecognitionException { // $ANTLR start "rule__Activity__Group__1" - // InternalTextualScenario.g:1269:1: rule__Activity__Group__1 : rule__Activity__Group__1__Impl ; + // InternalTextualScenario.g:1402:1: rule__Activity__Group__1 : rule__Activity__Group__1__Impl ; public final void rule__Activity__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1273:1: ( rule__Activity__Group__1__Impl ) - // InternalTextualScenario.g:1274:2: rule__Activity__Group__1__Impl + // InternalTextualScenario.g:1406:1: ( rule__Activity__Group__1__Impl ) + // InternalTextualScenario.g:1407:2: rule__Activity__Group__1__Impl { pushFollow(FOLLOW_2); rule__Activity__Group__1__Impl(); @@ -4116,21 +4568,21 @@ public final void rule__Activity__Group__1() throws RecognitionException { // $ANTLR start "rule__Activity__Group__1__Impl" - // InternalTextualScenario.g:1280:1: rule__Activity__Group__1__Impl : ( ( rule__Activity__NameAssignment_1 ) ) ; + // InternalTextualScenario.g:1413:1: rule__Activity__Group__1__Impl : ( ( rule__Activity__NameAssignment_1 ) ) ; public final void rule__Activity__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1284:1: ( ( ( rule__Activity__NameAssignment_1 ) ) ) - // InternalTextualScenario.g:1285:1: ( ( rule__Activity__NameAssignment_1 ) ) + // InternalTextualScenario.g:1417:1: ( ( ( rule__Activity__NameAssignment_1 ) ) ) + // InternalTextualScenario.g:1418:1: ( ( rule__Activity__NameAssignment_1 ) ) { - // InternalTextualScenario.g:1285:1: ( ( rule__Activity__NameAssignment_1 ) ) - // InternalTextualScenario.g:1286:2: ( rule__Activity__NameAssignment_1 ) + // InternalTextualScenario.g:1418:1: ( ( rule__Activity__NameAssignment_1 ) ) + // InternalTextualScenario.g:1419:2: ( rule__Activity__NameAssignment_1 ) { before(grammarAccess.getActivityAccess().getNameAssignment_1()); - // InternalTextualScenario.g:1287:2: ( rule__Activity__NameAssignment_1 ) - // InternalTextualScenario.g:1287:3: rule__Activity__NameAssignment_1 + // InternalTextualScenario.g:1420:2: ( rule__Activity__NameAssignment_1 ) + // InternalTextualScenario.g:1420:3: rule__Activity__NameAssignment_1 { pushFollow(FOLLOW_2); rule__Activity__NameAssignment_1(); @@ -4163,14 +4615,14 @@ public final void rule__Activity__Group__1__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group__0" - // InternalTextualScenario.g:1296:1: rule__Entity__Group__0 : rule__Entity__Group__0__Impl rule__Entity__Group__1 ; + // InternalTextualScenario.g:1429:1: rule__Entity__Group__0 : rule__Entity__Group__0__Impl rule__Entity__Group__1 ; public final void rule__Entity__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1300:1: ( rule__Entity__Group__0__Impl rule__Entity__Group__1 ) - // InternalTextualScenario.g:1301:2: rule__Entity__Group__0__Impl rule__Entity__Group__1 + // InternalTextualScenario.g:1433:1: ( rule__Entity__Group__0__Impl rule__Entity__Group__1 ) + // InternalTextualScenario.g:1434:2: rule__Entity__Group__0__Impl rule__Entity__Group__1 { pushFollow(FOLLOW_7); rule__Entity__Group__0__Impl(); @@ -4201,21 +4653,21 @@ public final void rule__Entity__Group__0() throws RecognitionException { // $ANTLR start "rule__Entity__Group__0__Impl" - // InternalTextualScenario.g:1308:1: rule__Entity__Group__0__Impl : ( ( rule__Entity__KeywordAssignment_0 ) ) ; + // InternalTextualScenario.g:1441:1: rule__Entity__Group__0__Impl : ( ( rule__Entity__KeywordAssignment_0 ) ) ; public final void rule__Entity__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1312:1: ( ( ( rule__Entity__KeywordAssignment_0 ) ) ) - // InternalTextualScenario.g:1313:1: ( ( rule__Entity__KeywordAssignment_0 ) ) + // InternalTextualScenario.g:1445:1: ( ( ( rule__Entity__KeywordAssignment_0 ) ) ) + // InternalTextualScenario.g:1446:1: ( ( rule__Entity__KeywordAssignment_0 ) ) { - // InternalTextualScenario.g:1313:1: ( ( rule__Entity__KeywordAssignment_0 ) ) - // InternalTextualScenario.g:1314:2: ( rule__Entity__KeywordAssignment_0 ) + // InternalTextualScenario.g:1446:1: ( ( rule__Entity__KeywordAssignment_0 ) ) + // InternalTextualScenario.g:1447:2: ( rule__Entity__KeywordAssignment_0 ) { before(grammarAccess.getEntityAccess().getKeywordAssignment_0()); - // InternalTextualScenario.g:1315:2: ( rule__Entity__KeywordAssignment_0 ) - // InternalTextualScenario.g:1315:3: rule__Entity__KeywordAssignment_0 + // InternalTextualScenario.g:1448:2: ( rule__Entity__KeywordAssignment_0 ) + // InternalTextualScenario.g:1448:3: rule__Entity__KeywordAssignment_0 { pushFollow(FOLLOW_2); rule__Entity__KeywordAssignment_0(); @@ -4248,14 +4700,14 @@ public final void rule__Entity__Group__0__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group__1" - // InternalTextualScenario.g:1323:1: rule__Entity__Group__1 : rule__Entity__Group__1__Impl ; + // InternalTextualScenario.g:1456:1: rule__Entity__Group__1 : rule__Entity__Group__1__Impl ; public final void rule__Entity__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1327:1: ( rule__Entity__Group__1__Impl ) - // InternalTextualScenario.g:1328:2: rule__Entity__Group__1__Impl + // InternalTextualScenario.g:1460:1: ( rule__Entity__Group__1__Impl ) + // InternalTextualScenario.g:1461:2: rule__Entity__Group__1__Impl { pushFollow(FOLLOW_2); rule__Entity__Group__1__Impl(); @@ -4281,21 +4733,21 @@ public final void rule__Entity__Group__1() throws RecognitionException { // $ANTLR start "rule__Entity__Group__1__Impl" - // InternalTextualScenario.g:1334:1: rule__Entity__Group__1__Impl : ( ( rule__Entity__NameAssignment_1 ) ) ; + // InternalTextualScenario.g:1467:1: rule__Entity__Group__1__Impl : ( ( rule__Entity__NameAssignment_1 ) ) ; public final void rule__Entity__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1338:1: ( ( ( rule__Entity__NameAssignment_1 ) ) ) - // InternalTextualScenario.g:1339:1: ( ( rule__Entity__NameAssignment_1 ) ) + // InternalTextualScenario.g:1471:1: ( ( ( rule__Entity__NameAssignment_1 ) ) ) + // InternalTextualScenario.g:1472:1: ( ( rule__Entity__NameAssignment_1 ) ) { - // InternalTextualScenario.g:1339:1: ( ( rule__Entity__NameAssignment_1 ) ) - // InternalTextualScenario.g:1340:2: ( rule__Entity__NameAssignment_1 ) + // InternalTextualScenario.g:1472:1: ( ( rule__Entity__NameAssignment_1 ) ) + // InternalTextualScenario.g:1473:2: ( rule__Entity__NameAssignment_1 ) { before(grammarAccess.getEntityAccess().getNameAssignment_1()); - // InternalTextualScenario.g:1341:2: ( rule__Entity__NameAssignment_1 ) - // InternalTextualScenario.g:1341:3: rule__Entity__NameAssignment_1 + // InternalTextualScenario.g:1474:2: ( rule__Entity__NameAssignment_1 ) + // InternalTextualScenario.g:1474:3: rule__Entity__NameAssignment_1 { pushFollow(FOLLOW_2); rule__Entity__NameAssignment_1(); @@ -4328,14 +4780,14 @@ public final void rule__Entity__Group__1__Impl() throws RecognitionException { // $ANTLR start "rule__Role__Group__0" - // InternalTextualScenario.g:1350:1: rule__Role__Group__0 : rule__Role__Group__0__Impl rule__Role__Group__1 ; + // InternalTextualScenario.g:1483:1: rule__Role__Group__0 : rule__Role__Group__0__Impl rule__Role__Group__1 ; public final void rule__Role__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1354:1: ( rule__Role__Group__0__Impl rule__Role__Group__1 ) - // InternalTextualScenario.g:1355:2: rule__Role__Group__0__Impl rule__Role__Group__1 + // InternalTextualScenario.g:1487:1: ( rule__Role__Group__0__Impl rule__Role__Group__1 ) + // InternalTextualScenario.g:1488:2: rule__Role__Group__0__Impl rule__Role__Group__1 { pushFollow(FOLLOW_7); rule__Role__Group__0__Impl(); @@ -4366,21 +4818,21 @@ public final void rule__Role__Group__0() throws RecognitionException { // $ANTLR start "rule__Role__Group__0__Impl" - // InternalTextualScenario.g:1362:1: rule__Role__Group__0__Impl : ( ( rule__Role__KeywordAssignment_0 ) ) ; + // InternalTextualScenario.g:1495:1: rule__Role__Group__0__Impl : ( ( rule__Role__KeywordAssignment_0 ) ) ; public final void rule__Role__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1366:1: ( ( ( rule__Role__KeywordAssignment_0 ) ) ) - // InternalTextualScenario.g:1367:1: ( ( rule__Role__KeywordAssignment_0 ) ) + // InternalTextualScenario.g:1499:1: ( ( ( rule__Role__KeywordAssignment_0 ) ) ) + // InternalTextualScenario.g:1500:1: ( ( rule__Role__KeywordAssignment_0 ) ) { - // InternalTextualScenario.g:1367:1: ( ( rule__Role__KeywordAssignment_0 ) ) - // InternalTextualScenario.g:1368:2: ( rule__Role__KeywordAssignment_0 ) + // InternalTextualScenario.g:1500:1: ( ( rule__Role__KeywordAssignment_0 ) ) + // InternalTextualScenario.g:1501:2: ( rule__Role__KeywordAssignment_0 ) { before(grammarAccess.getRoleAccess().getKeywordAssignment_0()); - // InternalTextualScenario.g:1369:2: ( rule__Role__KeywordAssignment_0 ) - // InternalTextualScenario.g:1369:3: rule__Role__KeywordAssignment_0 + // InternalTextualScenario.g:1502:2: ( rule__Role__KeywordAssignment_0 ) + // InternalTextualScenario.g:1502:3: rule__Role__KeywordAssignment_0 { pushFollow(FOLLOW_2); rule__Role__KeywordAssignment_0(); @@ -4413,14 +4865,14 @@ public final void rule__Role__Group__0__Impl() throws RecognitionException { // $ANTLR start "rule__Role__Group__1" - // InternalTextualScenario.g:1377:1: rule__Role__Group__1 : rule__Role__Group__1__Impl ; + // InternalTextualScenario.g:1510:1: rule__Role__Group__1 : rule__Role__Group__1__Impl ; public final void rule__Role__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1381:1: ( rule__Role__Group__1__Impl ) - // InternalTextualScenario.g:1382:2: rule__Role__Group__1__Impl + // InternalTextualScenario.g:1514:1: ( rule__Role__Group__1__Impl ) + // InternalTextualScenario.g:1515:2: rule__Role__Group__1__Impl { pushFollow(FOLLOW_2); rule__Role__Group__1__Impl(); @@ -4446,21 +4898,21 @@ public final void rule__Role__Group__1() throws RecognitionException { // $ANTLR start "rule__Role__Group__1__Impl" - // InternalTextualScenario.g:1388:1: rule__Role__Group__1__Impl : ( ( rule__Role__NameAssignment_1 ) ) ; + // InternalTextualScenario.g:1521:1: rule__Role__Group__1__Impl : ( ( rule__Role__NameAssignment_1 ) ) ; public final void rule__Role__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1392:1: ( ( ( rule__Role__NameAssignment_1 ) ) ) - // InternalTextualScenario.g:1393:1: ( ( rule__Role__NameAssignment_1 ) ) + // InternalTextualScenario.g:1525:1: ( ( ( rule__Role__NameAssignment_1 ) ) ) + // InternalTextualScenario.g:1526:1: ( ( rule__Role__NameAssignment_1 ) ) { - // InternalTextualScenario.g:1393:1: ( ( rule__Role__NameAssignment_1 ) ) - // InternalTextualScenario.g:1394:2: ( rule__Role__NameAssignment_1 ) + // InternalTextualScenario.g:1526:1: ( ( rule__Role__NameAssignment_1 ) ) + // InternalTextualScenario.g:1527:2: ( rule__Role__NameAssignment_1 ) { before(grammarAccess.getRoleAccess().getNameAssignment_1()); - // InternalTextualScenario.g:1395:2: ( rule__Role__NameAssignment_1 ) - // InternalTextualScenario.g:1395:3: rule__Role__NameAssignment_1 + // InternalTextualScenario.g:1528:2: ( rule__Role__NameAssignment_1 ) + // InternalTextualScenario.g:1528:3: rule__Role__NameAssignment_1 { pushFollow(FOLLOW_2); rule__Role__NameAssignment_1(); @@ -4493,14 +4945,14 @@ public final void rule__Role__Group__1__Impl() throws RecognitionException { // $ANTLR start "rule__SequenceMessage__Group__0" - // InternalTextualScenario.g:1404:1: rule__SequenceMessage__Group__0 : rule__SequenceMessage__Group__0__Impl rule__SequenceMessage__Group__1 ; + // InternalTextualScenario.g:1537:1: rule__SequenceMessage__Group__0 : rule__SequenceMessage__Group__0__Impl rule__SequenceMessage__Group__1 ; public final void rule__SequenceMessage__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1408:1: ( rule__SequenceMessage__Group__0__Impl rule__SequenceMessage__Group__1 ) - // InternalTextualScenario.g:1409:2: rule__SequenceMessage__Group__0__Impl rule__SequenceMessage__Group__1 + // InternalTextualScenario.g:1541:1: ( rule__SequenceMessage__Group__0__Impl rule__SequenceMessage__Group__1 ) + // InternalTextualScenario.g:1542:2: rule__SequenceMessage__Group__0__Impl rule__SequenceMessage__Group__1 { pushFollow(FOLLOW_8); rule__SequenceMessage__Group__0__Impl(); @@ -4531,21 +4983,21 @@ public final void rule__SequenceMessage__Group__0() throws RecognitionException // $ANTLR start "rule__SequenceMessage__Group__0__Impl" - // InternalTextualScenario.g:1416:1: rule__SequenceMessage__Group__0__Impl : ( ( rule__SequenceMessage__SourceAssignment_0 ) ) ; + // InternalTextualScenario.g:1549:1: rule__SequenceMessage__Group__0__Impl : ( ( rule__SequenceMessage__SourceAssignment_0 ) ) ; public final void rule__SequenceMessage__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1420:1: ( ( ( rule__SequenceMessage__SourceAssignment_0 ) ) ) - // InternalTextualScenario.g:1421:1: ( ( rule__SequenceMessage__SourceAssignment_0 ) ) + // InternalTextualScenario.g:1553:1: ( ( ( rule__SequenceMessage__SourceAssignment_0 ) ) ) + // InternalTextualScenario.g:1554:1: ( ( rule__SequenceMessage__SourceAssignment_0 ) ) { - // InternalTextualScenario.g:1421:1: ( ( rule__SequenceMessage__SourceAssignment_0 ) ) - // InternalTextualScenario.g:1422:2: ( rule__SequenceMessage__SourceAssignment_0 ) + // InternalTextualScenario.g:1554:1: ( ( rule__SequenceMessage__SourceAssignment_0 ) ) + // InternalTextualScenario.g:1555:2: ( rule__SequenceMessage__SourceAssignment_0 ) { before(grammarAccess.getSequenceMessageAccess().getSourceAssignment_0()); - // InternalTextualScenario.g:1423:2: ( rule__SequenceMessage__SourceAssignment_0 ) - // InternalTextualScenario.g:1423:3: rule__SequenceMessage__SourceAssignment_0 + // InternalTextualScenario.g:1556:2: ( rule__SequenceMessage__SourceAssignment_0 ) + // InternalTextualScenario.g:1556:3: rule__SequenceMessage__SourceAssignment_0 { pushFollow(FOLLOW_2); rule__SequenceMessage__SourceAssignment_0(); @@ -4578,14 +5030,14 @@ public final void rule__SequenceMessage__Group__0__Impl() throws RecognitionExce // $ANTLR start "rule__SequenceMessage__Group__1" - // InternalTextualScenario.g:1431:1: rule__SequenceMessage__Group__1 : rule__SequenceMessage__Group__1__Impl rule__SequenceMessage__Group__2 ; + // InternalTextualScenario.g:1564:1: rule__SequenceMessage__Group__1 : rule__SequenceMessage__Group__1__Impl rule__SequenceMessage__Group__2 ; public final void rule__SequenceMessage__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1435:1: ( rule__SequenceMessage__Group__1__Impl rule__SequenceMessage__Group__2 ) - // InternalTextualScenario.g:1436:2: rule__SequenceMessage__Group__1__Impl rule__SequenceMessage__Group__2 + // InternalTextualScenario.g:1568:1: ( rule__SequenceMessage__Group__1__Impl rule__SequenceMessage__Group__2 ) + // InternalTextualScenario.g:1569:2: rule__SequenceMessage__Group__1__Impl rule__SequenceMessage__Group__2 { pushFollow(FOLLOW_7); rule__SequenceMessage__Group__1__Impl(); @@ -4616,21 +5068,21 @@ public final void rule__SequenceMessage__Group__1() throws RecognitionException // $ANTLR start "rule__SequenceMessage__Group__1__Impl" - // InternalTextualScenario.g:1443:1: rule__SequenceMessage__Group__1__Impl : ( ( rule__SequenceMessage__ArrowAssignment_1 ) ) ; + // InternalTextualScenario.g:1576:1: rule__SequenceMessage__Group__1__Impl : ( ( rule__SequenceMessage__ArrowAssignment_1 ) ) ; public final void rule__SequenceMessage__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1447:1: ( ( ( rule__SequenceMessage__ArrowAssignment_1 ) ) ) - // InternalTextualScenario.g:1448:1: ( ( rule__SequenceMessage__ArrowAssignment_1 ) ) + // InternalTextualScenario.g:1580:1: ( ( ( rule__SequenceMessage__ArrowAssignment_1 ) ) ) + // InternalTextualScenario.g:1581:1: ( ( rule__SequenceMessage__ArrowAssignment_1 ) ) { - // InternalTextualScenario.g:1448:1: ( ( rule__SequenceMessage__ArrowAssignment_1 ) ) - // InternalTextualScenario.g:1449:2: ( rule__SequenceMessage__ArrowAssignment_1 ) + // InternalTextualScenario.g:1581:1: ( ( rule__SequenceMessage__ArrowAssignment_1 ) ) + // InternalTextualScenario.g:1582:2: ( rule__SequenceMessage__ArrowAssignment_1 ) { before(grammarAccess.getSequenceMessageAccess().getArrowAssignment_1()); - // InternalTextualScenario.g:1450:2: ( rule__SequenceMessage__ArrowAssignment_1 ) - // InternalTextualScenario.g:1450:3: rule__SequenceMessage__ArrowAssignment_1 + // InternalTextualScenario.g:1583:2: ( rule__SequenceMessage__ArrowAssignment_1 ) + // InternalTextualScenario.g:1583:3: rule__SequenceMessage__ArrowAssignment_1 { pushFollow(FOLLOW_2); rule__SequenceMessage__ArrowAssignment_1(); @@ -4663,14 +5115,14 @@ public final void rule__SequenceMessage__Group__1__Impl() throws RecognitionExce // $ANTLR start "rule__SequenceMessage__Group__2" - // InternalTextualScenario.g:1458:1: rule__SequenceMessage__Group__2 : rule__SequenceMessage__Group__2__Impl rule__SequenceMessage__Group__3 ; + // InternalTextualScenario.g:1591:1: rule__SequenceMessage__Group__2 : rule__SequenceMessage__Group__2__Impl rule__SequenceMessage__Group__3 ; public final void rule__SequenceMessage__Group__2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1462:1: ( rule__SequenceMessage__Group__2__Impl rule__SequenceMessage__Group__3 ) - // InternalTextualScenario.g:1463:2: rule__SequenceMessage__Group__2__Impl rule__SequenceMessage__Group__3 + // InternalTextualScenario.g:1595:1: ( rule__SequenceMessage__Group__2__Impl rule__SequenceMessage__Group__3 ) + // InternalTextualScenario.g:1596:2: rule__SequenceMessage__Group__2__Impl rule__SequenceMessage__Group__3 { pushFollow(FOLLOW_9); rule__SequenceMessage__Group__2__Impl(); @@ -4701,21 +5153,21 @@ public final void rule__SequenceMessage__Group__2() throws RecognitionException // $ANTLR start "rule__SequenceMessage__Group__2__Impl" - // InternalTextualScenario.g:1470:1: rule__SequenceMessage__Group__2__Impl : ( ( rule__SequenceMessage__TargetAssignment_2 ) ) ; + // InternalTextualScenario.g:1603:1: rule__SequenceMessage__Group__2__Impl : ( ( rule__SequenceMessage__TargetAssignment_2 ) ) ; public final void rule__SequenceMessage__Group__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1474:1: ( ( ( rule__SequenceMessage__TargetAssignment_2 ) ) ) - // InternalTextualScenario.g:1475:1: ( ( rule__SequenceMessage__TargetAssignment_2 ) ) + // InternalTextualScenario.g:1607:1: ( ( ( rule__SequenceMessage__TargetAssignment_2 ) ) ) + // InternalTextualScenario.g:1608:1: ( ( rule__SequenceMessage__TargetAssignment_2 ) ) { - // InternalTextualScenario.g:1475:1: ( ( rule__SequenceMessage__TargetAssignment_2 ) ) - // InternalTextualScenario.g:1476:2: ( rule__SequenceMessage__TargetAssignment_2 ) + // InternalTextualScenario.g:1608:1: ( ( rule__SequenceMessage__TargetAssignment_2 ) ) + // InternalTextualScenario.g:1609:2: ( rule__SequenceMessage__TargetAssignment_2 ) { before(grammarAccess.getSequenceMessageAccess().getTargetAssignment_2()); - // InternalTextualScenario.g:1477:2: ( rule__SequenceMessage__TargetAssignment_2 ) - // InternalTextualScenario.g:1477:3: rule__SequenceMessage__TargetAssignment_2 + // InternalTextualScenario.g:1610:2: ( rule__SequenceMessage__TargetAssignment_2 ) + // InternalTextualScenario.g:1610:3: rule__SequenceMessage__TargetAssignment_2 { pushFollow(FOLLOW_2); rule__SequenceMessage__TargetAssignment_2(); @@ -4748,14 +5200,14 @@ public final void rule__SequenceMessage__Group__2__Impl() throws RecognitionExce // $ANTLR start "rule__SequenceMessage__Group__3" - // InternalTextualScenario.g:1485:1: rule__SequenceMessage__Group__3 : rule__SequenceMessage__Group__3__Impl rule__SequenceMessage__Group__4 ; + // InternalTextualScenario.g:1618:1: rule__SequenceMessage__Group__3 : rule__SequenceMessage__Group__3__Impl rule__SequenceMessage__Group__4 ; public final void rule__SequenceMessage__Group__3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1489:1: ( rule__SequenceMessage__Group__3__Impl rule__SequenceMessage__Group__4 ) - // InternalTextualScenario.g:1490:2: rule__SequenceMessage__Group__3__Impl rule__SequenceMessage__Group__4 + // InternalTextualScenario.g:1622:1: ( rule__SequenceMessage__Group__3__Impl rule__SequenceMessage__Group__4 ) + // InternalTextualScenario.g:1623:2: rule__SequenceMessage__Group__3__Impl rule__SequenceMessage__Group__4 { pushFollow(FOLLOW_9); rule__SequenceMessage__Group__3__Impl(); @@ -4786,29 +5238,29 @@ public final void rule__SequenceMessage__Group__3() throws RecognitionException // $ANTLR start "rule__SequenceMessage__Group__3__Impl" - // InternalTextualScenario.g:1497:1: rule__SequenceMessage__Group__3__Impl : ( ( rule__SequenceMessage__ExecutionAssignment_3 )? ) ; + // InternalTextualScenario.g:1630:1: rule__SequenceMessage__Group__3__Impl : ( ( rule__SequenceMessage__ExecutionAssignment_3 )? ) ; public final void rule__SequenceMessage__Group__3__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1501:1: ( ( ( rule__SequenceMessage__ExecutionAssignment_3 )? ) ) - // InternalTextualScenario.g:1502:1: ( ( rule__SequenceMessage__ExecutionAssignment_3 )? ) + // InternalTextualScenario.g:1634:1: ( ( ( rule__SequenceMessage__ExecutionAssignment_3 )? ) ) + // InternalTextualScenario.g:1635:1: ( ( rule__SequenceMessage__ExecutionAssignment_3 )? ) { - // InternalTextualScenario.g:1502:1: ( ( rule__SequenceMessage__ExecutionAssignment_3 )? ) - // InternalTextualScenario.g:1503:2: ( rule__SequenceMessage__ExecutionAssignment_3 )? + // InternalTextualScenario.g:1635:1: ( ( rule__SequenceMessage__ExecutionAssignment_3 )? ) + // InternalTextualScenario.g:1636:2: ( rule__SequenceMessage__ExecutionAssignment_3 )? { before(grammarAccess.getSequenceMessageAccess().getExecutionAssignment_3()); - // InternalTextualScenario.g:1504:2: ( rule__SequenceMessage__ExecutionAssignment_3 )? - int alt11=2; - int LA11_0 = input.LA(1); + // InternalTextualScenario.g:1637:2: ( rule__SequenceMessage__ExecutionAssignment_3 )? + int alt12=2; + int LA12_0 = input.LA(1); - if ( (LA11_0==35) ) { - alt11=1; + if ( (LA12_0==35) ) { + alt12=1; } - switch (alt11) { + switch (alt12) { case 1 : - // InternalTextualScenario.g:1504:3: rule__SequenceMessage__ExecutionAssignment_3 + // InternalTextualScenario.g:1637:3: rule__SequenceMessage__ExecutionAssignment_3 { pushFollow(FOLLOW_2); rule__SequenceMessage__ExecutionAssignment_3(); @@ -4844,14 +5296,14 @@ public final void rule__SequenceMessage__Group__3__Impl() throws RecognitionExce // $ANTLR start "rule__SequenceMessage__Group__4" - // InternalTextualScenario.g:1512:1: rule__SequenceMessage__Group__4 : rule__SequenceMessage__Group__4__Impl rule__SequenceMessage__Group__5 ; + // InternalTextualScenario.g:1645:1: rule__SequenceMessage__Group__4 : rule__SequenceMessage__Group__4__Impl rule__SequenceMessage__Group__5 ; public final void rule__SequenceMessage__Group__4() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1516:1: ( rule__SequenceMessage__Group__4__Impl rule__SequenceMessage__Group__5 ) - // InternalTextualScenario.g:1517:2: rule__SequenceMessage__Group__4__Impl rule__SequenceMessage__Group__5 + // InternalTextualScenario.g:1649:1: ( rule__SequenceMessage__Group__4__Impl rule__SequenceMessage__Group__5 ) + // InternalTextualScenario.g:1650:2: rule__SequenceMessage__Group__4__Impl rule__SequenceMessage__Group__5 { pushFollow(FOLLOW_9); rule__SequenceMessage__Group__4__Impl(); @@ -4882,29 +5334,29 @@ public final void rule__SequenceMessage__Group__4() throws RecognitionException // $ANTLR start "rule__SequenceMessage__Group__4__Impl" - // InternalTextualScenario.g:1524:1: rule__SequenceMessage__Group__4__Impl : ( ( rule__SequenceMessage__ReturnAssignment_4 )? ) ; + // InternalTextualScenario.g:1657:1: rule__SequenceMessage__Group__4__Impl : ( ( rule__SequenceMessage__ReturnAssignment_4 )? ) ; public final void rule__SequenceMessage__Group__4__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1528:1: ( ( ( rule__SequenceMessage__ReturnAssignment_4 )? ) ) - // InternalTextualScenario.g:1529:1: ( ( rule__SequenceMessage__ReturnAssignment_4 )? ) + // InternalTextualScenario.g:1661:1: ( ( ( rule__SequenceMessage__ReturnAssignment_4 )? ) ) + // InternalTextualScenario.g:1662:1: ( ( rule__SequenceMessage__ReturnAssignment_4 )? ) { - // InternalTextualScenario.g:1529:1: ( ( rule__SequenceMessage__ReturnAssignment_4 )? ) - // InternalTextualScenario.g:1530:2: ( rule__SequenceMessage__ReturnAssignment_4 )? + // InternalTextualScenario.g:1662:1: ( ( rule__SequenceMessage__ReturnAssignment_4 )? ) + // InternalTextualScenario.g:1663:2: ( rule__SequenceMessage__ReturnAssignment_4 )? { before(grammarAccess.getSequenceMessageAccess().getReturnAssignment_4()); - // InternalTextualScenario.g:1531:2: ( rule__SequenceMessage__ReturnAssignment_4 )? - int alt12=2; - int LA12_0 = input.LA(1); + // InternalTextualScenario.g:1664:2: ( rule__SequenceMessage__ReturnAssignment_4 )? + int alt13=2; + int LA13_0 = input.LA(1); - if ( (LA12_0==36) ) { - alt12=1; + if ( (LA13_0==36) ) { + alt13=1; } - switch (alt12) { + switch (alt13) { case 1 : - // InternalTextualScenario.g:1531:3: rule__SequenceMessage__ReturnAssignment_4 + // InternalTextualScenario.g:1664:3: rule__SequenceMessage__ReturnAssignment_4 { pushFollow(FOLLOW_2); rule__SequenceMessage__ReturnAssignment_4(); @@ -4940,14 +5392,14 @@ public final void rule__SequenceMessage__Group__4__Impl() throws RecognitionExce // $ANTLR start "rule__SequenceMessage__Group__5" - // InternalTextualScenario.g:1539:1: rule__SequenceMessage__Group__5 : rule__SequenceMessage__Group__5__Impl rule__SequenceMessage__Group__6 ; + // InternalTextualScenario.g:1672:1: rule__SequenceMessage__Group__5 : rule__SequenceMessage__Group__5__Impl rule__SequenceMessage__Group__6 ; public final void rule__SequenceMessage__Group__5() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1543:1: ( rule__SequenceMessage__Group__5__Impl rule__SequenceMessage__Group__6 ) - // InternalTextualScenario.g:1544:2: rule__SequenceMessage__Group__5__Impl rule__SequenceMessage__Group__6 + // InternalTextualScenario.g:1676:1: ( rule__SequenceMessage__Group__5__Impl rule__SequenceMessage__Group__6 ) + // InternalTextualScenario.g:1677:2: rule__SequenceMessage__Group__5__Impl rule__SequenceMessage__Group__6 { pushFollow(FOLLOW_7); rule__SequenceMessage__Group__5__Impl(); @@ -4978,21 +5430,21 @@ public final void rule__SequenceMessage__Group__5() throws RecognitionException // $ANTLR start "rule__SequenceMessage__Group__5__Impl" - // InternalTextualScenario.g:1551:1: rule__SequenceMessage__Group__5__Impl : ( ( rule__SequenceMessage__DoubleDotAssignment_5 ) ) ; + // InternalTextualScenario.g:1684:1: rule__SequenceMessage__Group__5__Impl : ( ( rule__SequenceMessage__DoubleDotAssignment_5 ) ) ; public final void rule__SequenceMessage__Group__5__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1555:1: ( ( ( rule__SequenceMessage__DoubleDotAssignment_5 ) ) ) - // InternalTextualScenario.g:1556:1: ( ( rule__SequenceMessage__DoubleDotAssignment_5 ) ) + // InternalTextualScenario.g:1688:1: ( ( ( rule__SequenceMessage__DoubleDotAssignment_5 ) ) ) + // InternalTextualScenario.g:1689:1: ( ( rule__SequenceMessage__DoubleDotAssignment_5 ) ) { - // InternalTextualScenario.g:1556:1: ( ( rule__SequenceMessage__DoubleDotAssignment_5 ) ) - // InternalTextualScenario.g:1557:2: ( rule__SequenceMessage__DoubleDotAssignment_5 ) + // InternalTextualScenario.g:1689:1: ( ( rule__SequenceMessage__DoubleDotAssignment_5 ) ) + // InternalTextualScenario.g:1690:2: ( rule__SequenceMessage__DoubleDotAssignment_5 ) { before(grammarAccess.getSequenceMessageAccess().getDoubleDotAssignment_5()); - // InternalTextualScenario.g:1558:2: ( rule__SequenceMessage__DoubleDotAssignment_5 ) - // InternalTextualScenario.g:1558:3: rule__SequenceMessage__DoubleDotAssignment_5 + // InternalTextualScenario.g:1691:2: ( rule__SequenceMessage__DoubleDotAssignment_5 ) + // InternalTextualScenario.g:1691:3: rule__SequenceMessage__DoubleDotAssignment_5 { pushFollow(FOLLOW_2); rule__SequenceMessage__DoubleDotAssignment_5(); @@ -5025,14 +5477,14 @@ public final void rule__SequenceMessage__Group__5__Impl() throws RecognitionExce // $ANTLR start "rule__SequenceMessage__Group__6" - // InternalTextualScenario.g:1566:1: rule__SequenceMessage__Group__6 : rule__SequenceMessage__Group__6__Impl ; + // InternalTextualScenario.g:1699:1: rule__SequenceMessage__Group__6 : rule__SequenceMessage__Group__6__Impl ; public final void rule__SequenceMessage__Group__6() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1570:1: ( rule__SequenceMessage__Group__6__Impl ) - // InternalTextualScenario.g:1571:2: rule__SequenceMessage__Group__6__Impl + // InternalTextualScenario.g:1703:1: ( rule__SequenceMessage__Group__6__Impl ) + // InternalTextualScenario.g:1704:2: rule__SequenceMessage__Group__6__Impl { pushFollow(FOLLOW_2); rule__SequenceMessage__Group__6__Impl(); @@ -5058,21 +5510,21 @@ public final void rule__SequenceMessage__Group__6() throws RecognitionException // $ANTLR start "rule__SequenceMessage__Group__6__Impl" - // InternalTextualScenario.g:1577:1: rule__SequenceMessage__Group__6__Impl : ( ( rule__SequenceMessage__NameAssignment_6 ) ) ; + // InternalTextualScenario.g:1710:1: rule__SequenceMessage__Group__6__Impl : ( ( rule__SequenceMessage__NameAssignment_6 ) ) ; public final void rule__SequenceMessage__Group__6__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1581:1: ( ( ( rule__SequenceMessage__NameAssignment_6 ) ) ) - // InternalTextualScenario.g:1582:1: ( ( rule__SequenceMessage__NameAssignment_6 ) ) + // InternalTextualScenario.g:1714:1: ( ( ( rule__SequenceMessage__NameAssignment_6 ) ) ) + // InternalTextualScenario.g:1715:1: ( ( rule__SequenceMessage__NameAssignment_6 ) ) { - // InternalTextualScenario.g:1582:1: ( ( rule__SequenceMessage__NameAssignment_6 ) ) - // InternalTextualScenario.g:1583:2: ( rule__SequenceMessage__NameAssignment_6 ) + // InternalTextualScenario.g:1715:1: ( ( rule__SequenceMessage__NameAssignment_6 ) ) + // InternalTextualScenario.g:1716:2: ( rule__SequenceMessage__NameAssignment_6 ) { before(grammarAccess.getSequenceMessageAccess().getNameAssignment_6()); - // InternalTextualScenario.g:1584:2: ( rule__SequenceMessage__NameAssignment_6 ) - // InternalTextualScenario.g:1584:3: rule__SequenceMessage__NameAssignment_6 + // InternalTextualScenario.g:1717:2: ( rule__SequenceMessage__NameAssignment_6 ) + // InternalTextualScenario.g:1717:3: rule__SequenceMessage__NameAssignment_6 { pushFollow(FOLLOW_2); rule__SequenceMessage__NameAssignment_6(); @@ -5105,14 +5557,14 @@ public final void rule__SequenceMessage__Group__6__Impl() throws RecognitionExce // $ANTLR start "rule__CreateMessage__Group__0" - // InternalTextualScenario.g:1593:1: rule__CreateMessage__Group__0 : rule__CreateMessage__Group__0__Impl rule__CreateMessage__Group__1 ; + // InternalTextualScenario.g:1726:1: rule__CreateMessage__Group__0 : rule__CreateMessage__Group__0__Impl rule__CreateMessage__Group__1 ; public final void rule__CreateMessage__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1597:1: ( rule__CreateMessage__Group__0__Impl rule__CreateMessage__Group__1 ) - // InternalTextualScenario.g:1598:2: rule__CreateMessage__Group__0__Impl rule__CreateMessage__Group__1 + // InternalTextualScenario.g:1730:1: ( rule__CreateMessage__Group__0__Impl rule__CreateMessage__Group__1 ) + // InternalTextualScenario.g:1731:2: rule__CreateMessage__Group__0__Impl rule__CreateMessage__Group__1 { pushFollow(FOLLOW_10); rule__CreateMessage__Group__0__Impl(); @@ -5143,21 +5595,21 @@ public final void rule__CreateMessage__Group__0() throws RecognitionException { // $ANTLR start "rule__CreateMessage__Group__0__Impl" - // InternalTextualScenario.g:1605:1: rule__CreateMessage__Group__0__Impl : ( ( rule__CreateMessage__SourceAssignment_0 ) ) ; + // InternalTextualScenario.g:1738:1: rule__CreateMessage__Group__0__Impl : ( ( rule__CreateMessage__SourceAssignment_0 ) ) ; public final void rule__CreateMessage__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1609:1: ( ( ( rule__CreateMessage__SourceAssignment_0 ) ) ) - // InternalTextualScenario.g:1610:1: ( ( rule__CreateMessage__SourceAssignment_0 ) ) + // InternalTextualScenario.g:1742:1: ( ( ( rule__CreateMessage__SourceAssignment_0 ) ) ) + // InternalTextualScenario.g:1743:1: ( ( rule__CreateMessage__SourceAssignment_0 ) ) { - // InternalTextualScenario.g:1610:1: ( ( rule__CreateMessage__SourceAssignment_0 ) ) - // InternalTextualScenario.g:1611:2: ( rule__CreateMessage__SourceAssignment_0 ) + // InternalTextualScenario.g:1743:1: ( ( rule__CreateMessage__SourceAssignment_0 ) ) + // InternalTextualScenario.g:1744:2: ( rule__CreateMessage__SourceAssignment_0 ) { before(grammarAccess.getCreateMessageAccess().getSourceAssignment_0()); - // InternalTextualScenario.g:1612:2: ( rule__CreateMessage__SourceAssignment_0 ) - // InternalTextualScenario.g:1612:3: rule__CreateMessage__SourceAssignment_0 + // InternalTextualScenario.g:1745:2: ( rule__CreateMessage__SourceAssignment_0 ) + // InternalTextualScenario.g:1745:3: rule__CreateMessage__SourceAssignment_0 { pushFollow(FOLLOW_2); rule__CreateMessage__SourceAssignment_0(); @@ -5190,14 +5642,14 @@ public final void rule__CreateMessage__Group__0__Impl() throws RecognitionExcept // $ANTLR start "rule__CreateMessage__Group__1" - // InternalTextualScenario.g:1620:1: rule__CreateMessage__Group__1 : rule__CreateMessage__Group__1__Impl rule__CreateMessage__Group__2 ; + // InternalTextualScenario.g:1753:1: rule__CreateMessage__Group__1 : rule__CreateMessage__Group__1__Impl rule__CreateMessage__Group__2 ; public final void rule__CreateMessage__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1624:1: ( rule__CreateMessage__Group__1__Impl rule__CreateMessage__Group__2 ) - // InternalTextualScenario.g:1625:2: rule__CreateMessage__Group__1__Impl rule__CreateMessage__Group__2 + // InternalTextualScenario.g:1757:1: ( rule__CreateMessage__Group__1__Impl rule__CreateMessage__Group__2 ) + // InternalTextualScenario.g:1758:2: rule__CreateMessage__Group__1__Impl rule__CreateMessage__Group__2 { pushFollow(FOLLOW_7); rule__CreateMessage__Group__1__Impl(); @@ -5228,21 +5680,21 @@ public final void rule__CreateMessage__Group__1() throws RecognitionException { // $ANTLR start "rule__CreateMessage__Group__1__Impl" - // InternalTextualScenario.g:1632:1: rule__CreateMessage__Group__1__Impl : ( ( rule__CreateMessage__ArrowAssignment_1 ) ) ; + // InternalTextualScenario.g:1765:1: rule__CreateMessage__Group__1__Impl : ( ( rule__CreateMessage__ArrowAssignment_1 ) ) ; public final void rule__CreateMessage__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1636:1: ( ( ( rule__CreateMessage__ArrowAssignment_1 ) ) ) - // InternalTextualScenario.g:1637:1: ( ( rule__CreateMessage__ArrowAssignment_1 ) ) + // InternalTextualScenario.g:1769:1: ( ( ( rule__CreateMessage__ArrowAssignment_1 ) ) ) + // InternalTextualScenario.g:1770:1: ( ( rule__CreateMessage__ArrowAssignment_1 ) ) { - // InternalTextualScenario.g:1637:1: ( ( rule__CreateMessage__ArrowAssignment_1 ) ) - // InternalTextualScenario.g:1638:2: ( rule__CreateMessage__ArrowAssignment_1 ) + // InternalTextualScenario.g:1770:1: ( ( rule__CreateMessage__ArrowAssignment_1 ) ) + // InternalTextualScenario.g:1771:2: ( rule__CreateMessage__ArrowAssignment_1 ) { before(grammarAccess.getCreateMessageAccess().getArrowAssignment_1()); - // InternalTextualScenario.g:1639:2: ( rule__CreateMessage__ArrowAssignment_1 ) - // InternalTextualScenario.g:1639:3: rule__CreateMessage__ArrowAssignment_1 + // InternalTextualScenario.g:1772:2: ( rule__CreateMessage__ArrowAssignment_1 ) + // InternalTextualScenario.g:1772:3: rule__CreateMessage__ArrowAssignment_1 { pushFollow(FOLLOW_2); rule__CreateMessage__ArrowAssignment_1(); @@ -5275,14 +5727,14 @@ public final void rule__CreateMessage__Group__1__Impl() throws RecognitionExcept // $ANTLR start "rule__CreateMessage__Group__2" - // InternalTextualScenario.g:1647:1: rule__CreateMessage__Group__2 : rule__CreateMessage__Group__2__Impl rule__CreateMessage__Group__3 ; + // InternalTextualScenario.g:1780:1: rule__CreateMessage__Group__2 : rule__CreateMessage__Group__2__Impl rule__CreateMessage__Group__3 ; public final void rule__CreateMessage__Group__2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1651:1: ( rule__CreateMessage__Group__2__Impl rule__CreateMessage__Group__3 ) - // InternalTextualScenario.g:1652:2: rule__CreateMessage__Group__2__Impl rule__CreateMessage__Group__3 + // InternalTextualScenario.g:1784:1: ( rule__CreateMessage__Group__2__Impl rule__CreateMessage__Group__3 ) + // InternalTextualScenario.g:1785:2: rule__CreateMessage__Group__2__Impl rule__CreateMessage__Group__3 { pushFollow(FOLLOW_11); rule__CreateMessage__Group__2__Impl(); @@ -5313,21 +5765,21 @@ public final void rule__CreateMessage__Group__2() throws RecognitionException { // $ANTLR start "rule__CreateMessage__Group__2__Impl" - // InternalTextualScenario.g:1659:1: rule__CreateMessage__Group__2__Impl : ( ( rule__CreateMessage__TargetAssignment_2 ) ) ; + // InternalTextualScenario.g:1792:1: rule__CreateMessage__Group__2__Impl : ( ( rule__CreateMessage__TargetAssignment_2 ) ) ; public final void rule__CreateMessage__Group__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1663:1: ( ( ( rule__CreateMessage__TargetAssignment_2 ) ) ) - // InternalTextualScenario.g:1664:1: ( ( rule__CreateMessage__TargetAssignment_2 ) ) + // InternalTextualScenario.g:1796:1: ( ( ( rule__CreateMessage__TargetAssignment_2 ) ) ) + // InternalTextualScenario.g:1797:1: ( ( rule__CreateMessage__TargetAssignment_2 ) ) { - // InternalTextualScenario.g:1664:1: ( ( rule__CreateMessage__TargetAssignment_2 ) ) - // InternalTextualScenario.g:1665:2: ( rule__CreateMessage__TargetAssignment_2 ) + // InternalTextualScenario.g:1797:1: ( ( rule__CreateMessage__TargetAssignment_2 ) ) + // InternalTextualScenario.g:1798:2: ( rule__CreateMessage__TargetAssignment_2 ) { before(grammarAccess.getCreateMessageAccess().getTargetAssignment_2()); - // InternalTextualScenario.g:1666:2: ( rule__CreateMessage__TargetAssignment_2 ) - // InternalTextualScenario.g:1666:3: rule__CreateMessage__TargetAssignment_2 + // InternalTextualScenario.g:1799:2: ( rule__CreateMessage__TargetAssignment_2 ) + // InternalTextualScenario.g:1799:3: rule__CreateMessage__TargetAssignment_2 { pushFollow(FOLLOW_2); rule__CreateMessage__TargetAssignment_2(); @@ -5360,14 +5812,14 @@ public final void rule__CreateMessage__Group__2__Impl() throws RecognitionExcept // $ANTLR start "rule__CreateMessage__Group__3" - // InternalTextualScenario.g:1674:1: rule__CreateMessage__Group__3 : rule__CreateMessage__Group__3__Impl rule__CreateMessage__Group__4 ; + // InternalTextualScenario.g:1807:1: rule__CreateMessage__Group__3 : rule__CreateMessage__Group__3__Impl rule__CreateMessage__Group__4 ; public final void rule__CreateMessage__Group__3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1678:1: ( rule__CreateMessage__Group__3__Impl rule__CreateMessage__Group__4 ) - // InternalTextualScenario.g:1679:2: rule__CreateMessage__Group__3__Impl rule__CreateMessage__Group__4 + // InternalTextualScenario.g:1811:1: ( rule__CreateMessage__Group__3__Impl rule__CreateMessage__Group__4 ) + // InternalTextualScenario.g:1812:2: rule__CreateMessage__Group__3__Impl rule__CreateMessage__Group__4 { pushFollow(FOLLOW_7); rule__CreateMessage__Group__3__Impl(); @@ -5398,21 +5850,21 @@ public final void rule__CreateMessage__Group__3() throws RecognitionException { // $ANTLR start "rule__CreateMessage__Group__3__Impl" - // InternalTextualScenario.g:1686:1: rule__CreateMessage__Group__3__Impl : ( ( rule__CreateMessage__DoubleDotAssignment_3 ) ) ; + // InternalTextualScenario.g:1819:1: rule__CreateMessage__Group__3__Impl : ( ( rule__CreateMessage__DoubleDotAssignment_3 ) ) ; public final void rule__CreateMessage__Group__3__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1690:1: ( ( ( rule__CreateMessage__DoubleDotAssignment_3 ) ) ) - // InternalTextualScenario.g:1691:1: ( ( rule__CreateMessage__DoubleDotAssignment_3 ) ) + // InternalTextualScenario.g:1823:1: ( ( ( rule__CreateMessage__DoubleDotAssignment_3 ) ) ) + // InternalTextualScenario.g:1824:1: ( ( rule__CreateMessage__DoubleDotAssignment_3 ) ) { - // InternalTextualScenario.g:1691:1: ( ( rule__CreateMessage__DoubleDotAssignment_3 ) ) - // InternalTextualScenario.g:1692:2: ( rule__CreateMessage__DoubleDotAssignment_3 ) + // InternalTextualScenario.g:1824:1: ( ( rule__CreateMessage__DoubleDotAssignment_3 ) ) + // InternalTextualScenario.g:1825:2: ( rule__CreateMessage__DoubleDotAssignment_3 ) { before(grammarAccess.getCreateMessageAccess().getDoubleDotAssignment_3()); - // InternalTextualScenario.g:1693:2: ( rule__CreateMessage__DoubleDotAssignment_3 ) - // InternalTextualScenario.g:1693:3: rule__CreateMessage__DoubleDotAssignment_3 + // InternalTextualScenario.g:1826:2: ( rule__CreateMessage__DoubleDotAssignment_3 ) + // InternalTextualScenario.g:1826:3: rule__CreateMessage__DoubleDotAssignment_3 { pushFollow(FOLLOW_2); rule__CreateMessage__DoubleDotAssignment_3(); @@ -5445,14 +5897,14 @@ public final void rule__CreateMessage__Group__3__Impl() throws RecognitionExcept // $ANTLR start "rule__CreateMessage__Group__4" - // InternalTextualScenario.g:1701:1: rule__CreateMessage__Group__4 : rule__CreateMessage__Group__4__Impl ; + // InternalTextualScenario.g:1834:1: rule__CreateMessage__Group__4 : rule__CreateMessage__Group__4__Impl ; public final void rule__CreateMessage__Group__4() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1705:1: ( rule__CreateMessage__Group__4__Impl ) - // InternalTextualScenario.g:1706:2: rule__CreateMessage__Group__4__Impl + // InternalTextualScenario.g:1838:1: ( rule__CreateMessage__Group__4__Impl ) + // InternalTextualScenario.g:1839:2: rule__CreateMessage__Group__4__Impl { pushFollow(FOLLOW_2); rule__CreateMessage__Group__4__Impl(); @@ -5478,21 +5930,21 @@ public final void rule__CreateMessage__Group__4() throws RecognitionException { // $ANTLR start "rule__CreateMessage__Group__4__Impl" - // InternalTextualScenario.g:1712:1: rule__CreateMessage__Group__4__Impl : ( ( rule__CreateMessage__NameAssignment_4 ) ) ; + // InternalTextualScenario.g:1845:1: rule__CreateMessage__Group__4__Impl : ( ( rule__CreateMessage__NameAssignment_4 ) ) ; public final void rule__CreateMessage__Group__4__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1716:1: ( ( ( rule__CreateMessage__NameAssignment_4 ) ) ) - // InternalTextualScenario.g:1717:1: ( ( rule__CreateMessage__NameAssignment_4 ) ) + // InternalTextualScenario.g:1849:1: ( ( ( rule__CreateMessage__NameAssignment_4 ) ) ) + // InternalTextualScenario.g:1850:1: ( ( rule__CreateMessage__NameAssignment_4 ) ) { - // InternalTextualScenario.g:1717:1: ( ( rule__CreateMessage__NameAssignment_4 ) ) - // InternalTextualScenario.g:1718:2: ( rule__CreateMessage__NameAssignment_4 ) + // InternalTextualScenario.g:1850:1: ( ( rule__CreateMessage__NameAssignment_4 ) ) + // InternalTextualScenario.g:1851:2: ( rule__CreateMessage__NameAssignment_4 ) { before(grammarAccess.getCreateMessageAccess().getNameAssignment_4()); - // InternalTextualScenario.g:1719:2: ( rule__CreateMessage__NameAssignment_4 ) - // InternalTextualScenario.g:1719:3: rule__CreateMessage__NameAssignment_4 + // InternalTextualScenario.g:1852:2: ( rule__CreateMessage__NameAssignment_4 ) + // InternalTextualScenario.g:1852:3: rule__CreateMessage__NameAssignment_4 { pushFollow(FOLLOW_2); rule__CreateMessage__NameAssignment_4(); @@ -5525,14 +5977,14 @@ public final void rule__CreateMessage__Group__4__Impl() throws RecognitionExcept // $ANTLR start "rule__DeleteMessage__Group__0" - // InternalTextualScenario.g:1728:1: rule__DeleteMessage__Group__0 : rule__DeleteMessage__Group__0__Impl rule__DeleteMessage__Group__1 ; + // InternalTextualScenario.g:1861:1: rule__DeleteMessage__Group__0 : rule__DeleteMessage__Group__0__Impl rule__DeleteMessage__Group__1 ; public final void rule__DeleteMessage__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1732:1: ( rule__DeleteMessage__Group__0__Impl rule__DeleteMessage__Group__1 ) - // InternalTextualScenario.g:1733:2: rule__DeleteMessage__Group__0__Impl rule__DeleteMessage__Group__1 + // InternalTextualScenario.g:1865:1: ( rule__DeleteMessage__Group__0__Impl rule__DeleteMessage__Group__1 ) + // InternalTextualScenario.g:1866:2: rule__DeleteMessage__Group__0__Impl rule__DeleteMessage__Group__1 { pushFollow(FOLLOW_12); rule__DeleteMessage__Group__0__Impl(); @@ -5563,21 +6015,21 @@ public final void rule__DeleteMessage__Group__0() throws RecognitionException { // $ANTLR start "rule__DeleteMessage__Group__0__Impl" - // InternalTextualScenario.g:1740:1: rule__DeleteMessage__Group__0__Impl : ( ( rule__DeleteMessage__SourceAssignment_0 ) ) ; + // InternalTextualScenario.g:1873:1: rule__DeleteMessage__Group__0__Impl : ( ( rule__DeleteMessage__SourceAssignment_0 ) ) ; public final void rule__DeleteMessage__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1744:1: ( ( ( rule__DeleteMessage__SourceAssignment_0 ) ) ) - // InternalTextualScenario.g:1745:1: ( ( rule__DeleteMessage__SourceAssignment_0 ) ) + // InternalTextualScenario.g:1877:1: ( ( ( rule__DeleteMessage__SourceAssignment_0 ) ) ) + // InternalTextualScenario.g:1878:1: ( ( rule__DeleteMessage__SourceAssignment_0 ) ) { - // InternalTextualScenario.g:1745:1: ( ( rule__DeleteMessage__SourceAssignment_0 ) ) - // InternalTextualScenario.g:1746:2: ( rule__DeleteMessage__SourceAssignment_0 ) + // InternalTextualScenario.g:1878:1: ( ( rule__DeleteMessage__SourceAssignment_0 ) ) + // InternalTextualScenario.g:1879:2: ( rule__DeleteMessage__SourceAssignment_0 ) { before(grammarAccess.getDeleteMessageAccess().getSourceAssignment_0()); - // InternalTextualScenario.g:1747:2: ( rule__DeleteMessage__SourceAssignment_0 ) - // InternalTextualScenario.g:1747:3: rule__DeleteMessage__SourceAssignment_0 + // InternalTextualScenario.g:1880:2: ( rule__DeleteMessage__SourceAssignment_0 ) + // InternalTextualScenario.g:1880:3: rule__DeleteMessage__SourceAssignment_0 { pushFollow(FOLLOW_2); rule__DeleteMessage__SourceAssignment_0(); @@ -5610,14 +6062,14 @@ public final void rule__DeleteMessage__Group__0__Impl() throws RecognitionExcept // $ANTLR start "rule__DeleteMessage__Group__1" - // InternalTextualScenario.g:1755:1: rule__DeleteMessage__Group__1 : rule__DeleteMessage__Group__1__Impl rule__DeleteMessage__Group__2 ; + // InternalTextualScenario.g:1888:1: rule__DeleteMessage__Group__1 : rule__DeleteMessage__Group__1__Impl rule__DeleteMessage__Group__2 ; public final void rule__DeleteMessage__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1759:1: ( rule__DeleteMessage__Group__1__Impl rule__DeleteMessage__Group__2 ) - // InternalTextualScenario.g:1760:2: rule__DeleteMessage__Group__1__Impl rule__DeleteMessage__Group__2 + // InternalTextualScenario.g:1892:1: ( rule__DeleteMessage__Group__1__Impl rule__DeleteMessage__Group__2 ) + // InternalTextualScenario.g:1893:2: rule__DeleteMessage__Group__1__Impl rule__DeleteMessage__Group__2 { pushFollow(FOLLOW_7); rule__DeleteMessage__Group__1__Impl(); @@ -5648,21 +6100,21 @@ public final void rule__DeleteMessage__Group__1() throws RecognitionException { // $ANTLR start "rule__DeleteMessage__Group__1__Impl" - // InternalTextualScenario.g:1767:1: rule__DeleteMessage__Group__1__Impl : ( ( rule__DeleteMessage__ArrowAssignment_1 ) ) ; + // InternalTextualScenario.g:1900:1: rule__DeleteMessage__Group__1__Impl : ( ( rule__DeleteMessage__ArrowAssignment_1 ) ) ; public final void rule__DeleteMessage__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1771:1: ( ( ( rule__DeleteMessage__ArrowAssignment_1 ) ) ) - // InternalTextualScenario.g:1772:1: ( ( rule__DeleteMessage__ArrowAssignment_1 ) ) + // InternalTextualScenario.g:1904:1: ( ( ( rule__DeleteMessage__ArrowAssignment_1 ) ) ) + // InternalTextualScenario.g:1905:1: ( ( rule__DeleteMessage__ArrowAssignment_1 ) ) { - // InternalTextualScenario.g:1772:1: ( ( rule__DeleteMessage__ArrowAssignment_1 ) ) - // InternalTextualScenario.g:1773:2: ( rule__DeleteMessage__ArrowAssignment_1 ) + // InternalTextualScenario.g:1905:1: ( ( rule__DeleteMessage__ArrowAssignment_1 ) ) + // InternalTextualScenario.g:1906:2: ( rule__DeleteMessage__ArrowAssignment_1 ) { before(grammarAccess.getDeleteMessageAccess().getArrowAssignment_1()); - // InternalTextualScenario.g:1774:2: ( rule__DeleteMessage__ArrowAssignment_1 ) - // InternalTextualScenario.g:1774:3: rule__DeleteMessage__ArrowAssignment_1 + // InternalTextualScenario.g:1907:2: ( rule__DeleteMessage__ArrowAssignment_1 ) + // InternalTextualScenario.g:1907:3: rule__DeleteMessage__ArrowAssignment_1 { pushFollow(FOLLOW_2); rule__DeleteMessage__ArrowAssignment_1(); @@ -5695,14 +6147,14 @@ public final void rule__DeleteMessage__Group__1__Impl() throws RecognitionExcept // $ANTLR start "rule__DeleteMessage__Group__2" - // InternalTextualScenario.g:1782:1: rule__DeleteMessage__Group__2 : rule__DeleteMessage__Group__2__Impl rule__DeleteMessage__Group__3 ; + // InternalTextualScenario.g:1915:1: rule__DeleteMessage__Group__2 : rule__DeleteMessage__Group__2__Impl rule__DeleteMessage__Group__3 ; public final void rule__DeleteMessage__Group__2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1786:1: ( rule__DeleteMessage__Group__2__Impl rule__DeleteMessage__Group__3 ) - // InternalTextualScenario.g:1787:2: rule__DeleteMessage__Group__2__Impl rule__DeleteMessage__Group__3 + // InternalTextualScenario.g:1919:1: ( rule__DeleteMessage__Group__2__Impl rule__DeleteMessage__Group__3 ) + // InternalTextualScenario.g:1920:2: rule__DeleteMessage__Group__2__Impl rule__DeleteMessage__Group__3 { pushFollow(FOLLOW_11); rule__DeleteMessage__Group__2__Impl(); @@ -5733,21 +6185,21 @@ public final void rule__DeleteMessage__Group__2() throws RecognitionException { // $ANTLR start "rule__DeleteMessage__Group__2__Impl" - // InternalTextualScenario.g:1794:1: rule__DeleteMessage__Group__2__Impl : ( ( rule__DeleteMessage__TargetAssignment_2 ) ) ; + // InternalTextualScenario.g:1927:1: rule__DeleteMessage__Group__2__Impl : ( ( rule__DeleteMessage__TargetAssignment_2 ) ) ; public final void rule__DeleteMessage__Group__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1798:1: ( ( ( rule__DeleteMessage__TargetAssignment_2 ) ) ) - // InternalTextualScenario.g:1799:1: ( ( rule__DeleteMessage__TargetAssignment_2 ) ) + // InternalTextualScenario.g:1931:1: ( ( ( rule__DeleteMessage__TargetAssignment_2 ) ) ) + // InternalTextualScenario.g:1932:1: ( ( rule__DeleteMessage__TargetAssignment_2 ) ) { - // InternalTextualScenario.g:1799:1: ( ( rule__DeleteMessage__TargetAssignment_2 ) ) - // InternalTextualScenario.g:1800:2: ( rule__DeleteMessage__TargetAssignment_2 ) + // InternalTextualScenario.g:1932:1: ( ( rule__DeleteMessage__TargetAssignment_2 ) ) + // InternalTextualScenario.g:1933:2: ( rule__DeleteMessage__TargetAssignment_2 ) { before(grammarAccess.getDeleteMessageAccess().getTargetAssignment_2()); - // InternalTextualScenario.g:1801:2: ( rule__DeleteMessage__TargetAssignment_2 ) - // InternalTextualScenario.g:1801:3: rule__DeleteMessage__TargetAssignment_2 + // InternalTextualScenario.g:1934:2: ( rule__DeleteMessage__TargetAssignment_2 ) + // InternalTextualScenario.g:1934:3: rule__DeleteMessage__TargetAssignment_2 { pushFollow(FOLLOW_2); rule__DeleteMessage__TargetAssignment_2(); @@ -5780,14 +6232,14 @@ public final void rule__DeleteMessage__Group__2__Impl() throws RecognitionExcept // $ANTLR start "rule__DeleteMessage__Group__3" - // InternalTextualScenario.g:1809:1: rule__DeleteMessage__Group__3 : rule__DeleteMessage__Group__3__Impl rule__DeleteMessage__Group__4 ; + // InternalTextualScenario.g:1942:1: rule__DeleteMessage__Group__3 : rule__DeleteMessage__Group__3__Impl rule__DeleteMessage__Group__4 ; public final void rule__DeleteMessage__Group__3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1813:1: ( rule__DeleteMessage__Group__3__Impl rule__DeleteMessage__Group__4 ) - // InternalTextualScenario.g:1814:2: rule__DeleteMessage__Group__3__Impl rule__DeleteMessage__Group__4 + // InternalTextualScenario.g:1946:1: ( rule__DeleteMessage__Group__3__Impl rule__DeleteMessage__Group__4 ) + // InternalTextualScenario.g:1947:2: rule__DeleteMessage__Group__3__Impl rule__DeleteMessage__Group__4 { pushFollow(FOLLOW_7); rule__DeleteMessage__Group__3__Impl(); @@ -5818,21 +6270,21 @@ public final void rule__DeleteMessage__Group__3() throws RecognitionException { // $ANTLR start "rule__DeleteMessage__Group__3__Impl" - // InternalTextualScenario.g:1821:1: rule__DeleteMessage__Group__3__Impl : ( ( rule__DeleteMessage__DoubleDotAssignment_3 ) ) ; + // InternalTextualScenario.g:1954:1: rule__DeleteMessage__Group__3__Impl : ( ( rule__DeleteMessage__DoubleDotAssignment_3 ) ) ; public final void rule__DeleteMessage__Group__3__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1825:1: ( ( ( rule__DeleteMessage__DoubleDotAssignment_3 ) ) ) - // InternalTextualScenario.g:1826:1: ( ( rule__DeleteMessage__DoubleDotAssignment_3 ) ) + // InternalTextualScenario.g:1958:1: ( ( ( rule__DeleteMessage__DoubleDotAssignment_3 ) ) ) + // InternalTextualScenario.g:1959:1: ( ( rule__DeleteMessage__DoubleDotAssignment_3 ) ) { - // InternalTextualScenario.g:1826:1: ( ( rule__DeleteMessage__DoubleDotAssignment_3 ) ) - // InternalTextualScenario.g:1827:2: ( rule__DeleteMessage__DoubleDotAssignment_3 ) + // InternalTextualScenario.g:1959:1: ( ( rule__DeleteMessage__DoubleDotAssignment_3 ) ) + // InternalTextualScenario.g:1960:2: ( rule__DeleteMessage__DoubleDotAssignment_3 ) { before(grammarAccess.getDeleteMessageAccess().getDoubleDotAssignment_3()); - // InternalTextualScenario.g:1828:2: ( rule__DeleteMessage__DoubleDotAssignment_3 ) - // InternalTextualScenario.g:1828:3: rule__DeleteMessage__DoubleDotAssignment_3 + // InternalTextualScenario.g:1961:2: ( rule__DeleteMessage__DoubleDotAssignment_3 ) + // InternalTextualScenario.g:1961:3: rule__DeleteMessage__DoubleDotAssignment_3 { pushFollow(FOLLOW_2); rule__DeleteMessage__DoubleDotAssignment_3(); @@ -5865,14 +6317,14 @@ public final void rule__DeleteMessage__Group__3__Impl() throws RecognitionExcept // $ANTLR start "rule__DeleteMessage__Group__4" - // InternalTextualScenario.g:1836:1: rule__DeleteMessage__Group__4 : rule__DeleteMessage__Group__4__Impl ; + // InternalTextualScenario.g:1969:1: rule__DeleteMessage__Group__4 : rule__DeleteMessage__Group__4__Impl ; public final void rule__DeleteMessage__Group__4() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1840:1: ( rule__DeleteMessage__Group__4__Impl ) - // InternalTextualScenario.g:1841:2: rule__DeleteMessage__Group__4__Impl + // InternalTextualScenario.g:1973:1: ( rule__DeleteMessage__Group__4__Impl ) + // InternalTextualScenario.g:1974:2: rule__DeleteMessage__Group__4__Impl { pushFollow(FOLLOW_2); rule__DeleteMessage__Group__4__Impl(); @@ -5898,21 +6350,21 @@ public final void rule__DeleteMessage__Group__4() throws RecognitionException { // $ANTLR start "rule__DeleteMessage__Group__4__Impl" - // InternalTextualScenario.g:1847:1: rule__DeleteMessage__Group__4__Impl : ( ( rule__DeleteMessage__NameAssignment_4 ) ) ; + // InternalTextualScenario.g:1980:1: rule__DeleteMessage__Group__4__Impl : ( ( rule__DeleteMessage__NameAssignment_4 ) ) ; public final void rule__DeleteMessage__Group__4__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1851:1: ( ( ( rule__DeleteMessage__NameAssignment_4 ) ) ) - // InternalTextualScenario.g:1852:1: ( ( rule__DeleteMessage__NameAssignment_4 ) ) + // InternalTextualScenario.g:1984:1: ( ( ( rule__DeleteMessage__NameAssignment_4 ) ) ) + // InternalTextualScenario.g:1985:1: ( ( rule__DeleteMessage__NameAssignment_4 ) ) { - // InternalTextualScenario.g:1852:1: ( ( rule__DeleteMessage__NameAssignment_4 ) ) - // InternalTextualScenario.g:1853:2: ( rule__DeleteMessage__NameAssignment_4 ) + // InternalTextualScenario.g:1985:1: ( ( rule__DeleteMessage__NameAssignment_4 ) ) + // InternalTextualScenario.g:1986:2: ( rule__DeleteMessage__NameAssignment_4 ) { before(grammarAccess.getDeleteMessageAccess().getNameAssignment_4()); - // InternalTextualScenario.g:1854:2: ( rule__DeleteMessage__NameAssignment_4 ) - // InternalTextualScenario.g:1854:3: rule__DeleteMessage__NameAssignment_4 + // InternalTextualScenario.g:1987:2: ( rule__DeleteMessage__NameAssignment_4 ) + // InternalTextualScenario.g:1987:3: rule__DeleteMessage__NameAssignment_4 { pushFollow(FOLLOW_2); rule__DeleteMessage__NameAssignment_4(); @@ -5945,14 +6397,14 @@ public final void rule__DeleteMessage__Group__4__Impl() throws RecognitionExcept // $ANTLR start "rule__ArmTimerMessage__Group__0" - // InternalTextualScenario.g:1863:1: rule__ArmTimerMessage__Group__0 : rule__ArmTimerMessage__Group__0__Impl rule__ArmTimerMessage__Group__1 ; + // InternalTextualScenario.g:1996:1: rule__ArmTimerMessage__Group__0 : rule__ArmTimerMessage__Group__0__Impl rule__ArmTimerMessage__Group__1 ; public final void rule__ArmTimerMessage__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1867:1: ( rule__ArmTimerMessage__Group__0__Impl rule__ArmTimerMessage__Group__1 ) - // InternalTextualScenario.g:1868:2: rule__ArmTimerMessage__Group__0__Impl rule__ArmTimerMessage__Group__1 + // InternalTextualScenario.g:2000:1: ( rule__ArmTimerMessage__Group__0__Impl rule__ArmTimerMessage__Group__1 ) + // InternalTextualScenario.g:2001:2: rule__ArmTimerMessage__Group__0__Impl rule__ArmTimerMessage__Group__1 { pushFollow(FOLLOW_7); rule__ArmTimerMessage__Group__0__Impl(); @@ -5983,21 +6435,21 @@ public final void rule__ArmTimerMessage__Group__0() throws RecognitionException // $ANTLR start "rule__ArmTimerMessage__Group__0__Impl" - // InternalTextualScenario.g:1875:1: rule__ArmTimerMessage__Group__0__Impl : ( ( rule__ArmTimerMessage__ArrowAssignment_0 ) ) ; + // InternalTextualScenario.g:2008:1: rule__ArmTimerMessage__Group__0__Impl : ( ( rule__ArmTimerMessage__ArrowAssignment_0 ) ) ; public final void rule__ArmTimerMessage__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1879:1: ( ( ( rule__ArmTimerMessage__ArrowAssignment_0 ) ) ) - // InternalTextualScenario.g:1880:1: ( ( rule__ArmTimerMessage__ArrowAssignment_0 ) ) + // InternalTextualScenario.g:2012:1: ( ( ( rule__ArmTimerMessage__ArrowAssignment_0 ) ) ) + // InternalTextualScenario.g:2013:1: ( ( rule__ArmTimerMessage__ArrowAssignment_0 ) ) { - // InternalTextualScenario.g:1880:1: ( ( rule__ArmTimerMessage__ArrowAssignment_0 ) ) - // InternalTextualScenario.g:1881:2: ( rule__ArmTimerMessage__ArrowAssignment_0 ) + // InternalTextualScenario.g:2013:1: ( ( rule__ArmTimerMessage__ArrowAssignment_0 ) ) + // InternalTextualScenario.g:2014:2: ( rule__ArmTimerMessage__ArrowAssignment_0 ) { before(grammarAccess.getArmTimerMessageAccess().getArrowAssignment_0()); - // InternalTextualScenario.g:1882:2: ( rule__ArmTimerMessage__ArrowAssignment_0 ) - // InternalTextualScenario.g:1882:3: rule__ArmTimerMessage__ArrowAssignment_0 + // InternalTextualScenario.g:2015:2: ( rule__ArmTimerMessage__ArrowAssignment_0 ) + // InternalTextualScenario.g:2015:3: rule__ArmTimerMessage__ArrowAssignment_0 { pushFollow(FOLLOW_2); rule__ArmTimerMessage__ArrowAssignment_0(); @@ -6030,14 +6482,14 @@ public final void rule__ArmTimerMessage__Group__0__Impl() throws RecognitionExce // $ANTLR start "rule__ArmTimerMessage__Group__1" - // InternalTextualScenario.g:1890:1: rule__ArmTimerMessage__Group__1 : rule__ArmTimerMessage__Group__1__Impl rule__ArmTimerMessage__Group__2 ; + // InternalTextualScenario.g:2023:1: rule__ArmTimerMessage__Group__1 : rule__ArmTimerMessage__Group__1__Impl rule__ArmTimerMessage__Group__2 ; public final void rule__ArmTimerMessage__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1894:1: ( rule__ArmTimerMessage__Group__1__Impl rule__ArmTimerMessage__Group__2 ) - // InternalTextualScenario.g:1895:2: rule__ArmTimerMessage__Group__1__Impl rule__ArmTimerMessage__Group__2 + // InternalTextualScenario.g:2027:1: ( rule__ArmTimerMessage__Group__1__Impl rule__ArmTimerMessage__Group__2 ) + // InternalTextualScenario.g:2028:2: rule__ArmTimerMessage__Group__1__Impl rule__ArmTimerMessage__Group__2 { pushFollow(FOLLOW_13); rule__ArmTimerMessage__Group__1__Impl(); @@ -6068,21 +6520,21 @@ public final void rule__ArmTimerMessage__Group__1() throws RecognitionException // $ANTLR start "rule__ArmTimerMessage__Group__1__Impl" - // InternalTextualScenario.g:1902:1: rule__ArmTimerMessage__Group__1__Impl : ( ( rule__ArmTimerMessage__ParticipantAssignment_1 ) ) ; + // InternalTextualScenario.g:2035:1: rule__ArmTimerMessage__Group__1__Impl : ( ( rule__ArmTimerMessage__ParticipantAssignment_1 ) ) ; public final void rule__ArmTimerMessage__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1906:1: ( ( ( rule__ArmTimerMessage__ParticipantAssignment_1 ) ) ) - // InternalTextualScenario.g:1907:1: ( ( rule__ArmTimerMessage__ParticipantAssignment_1 ) ) + // InternalTextualScenario.g:2039:1: ( ( ( rule__ArmTimerMessage__ParticipantAssignment_1 ) ) ) + // InternalTextualScenario.g:2040:1: ( ( rule__ArmTimerMessage__ParticipantAssignment_1 ) ) { - // InternalTextualScenario.g:1907:1: ( ( rule__ArmTimerMessage__ParticipantAssignment_1 ) ) - // InternalTextualScenario.g:1908:2: ( rule__ArmTimerMessage__ParticipantAssignment_1 ) + // InternalTextualScenario.g:2040:1: ( ( rule__ArmTimerMessage__ParticipantAssignment_1 ) ) + // InternalTextualScenario.g:2041:2: ( rule__ArmTimerMessage__ParticipantAssignment_1 ) { before(grammarAccess.getArmTimerMessageAccess().getParticipantAssignment_1()); - // InternalTextualScenario.g:1909:2: ( rule__ArmTimerMessage__ParticipantAssignment_1 ) - // InternalTextualScenario.g:1909:3: rule__ArmTimerMessage__ParticipantAssignment_1 + // InternalTextualScenario.g:2042:2: ( rule__ArmTimerMessage__ParticipantAssignment_1 ) + // InternalTextualScenario.g:2042:3: rule__ArmTimerMessage__ParticipantAssignment_1 { pushFollow(FOLLOW_2); rule__ArmTimerMessage__ParticipantAssignment_1(); @@ -6115,14 +6567,14 @@ public final void rule__ArmTimerMessage__Group__1__Impl() throws RecognitionExce // $ANTLR start "rule__ArmTimerMessage__Group__2" - // InternalTextualScenario.g:1917:1: rule__ArmTimerMessage__Group__2 : rule__ArmTimerMessage__Group__2__Impl rule__ArmTimerMessage__Group__3 ; + // InternalTextualScenario.g:2050:1: rule__ArmTimerMessage__Group__2 : rule__ArmTimerMessage__Group__2__Impl rule__ArmTimerMessage__Group__3 ; public final void rule__ArmTimerMessage__Group__2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1921:1: ( rule__ArmTimerMessage__Group__2__Impl rule__ArmTimerMessage__Group__3 ) - // InternalTextualScenario.g:1922:2: rule__ArmTimerMessage__Group__2__Impl rule__ArmTimerMessage__Group__3 + // InternalTextualScenario.g:2054:1: ( rule__ArmTimerMessage__Group__2__Impl rule__ArmTimerMessage__Group__3 ) + // InternalTextualScenario.g:2055:2: rule__ArmTimerMessage__Group__2__Impl rule__ArmTimerMessage__Group__3 { pushFollow(FOLLOW_13); rule__ArmTimerMessage__Group__2__Impl(); @@ -6153,29 +6605,29 @@ public final void rule__ArmTimerMessage__Group__2() throws RecognitionException // $ANTLR start "rule__ArmTimerMessage__Group__2__Impl" - // InternalTextualScenario.g:1929:1: rule__ArmTimerMessage__Group__2__Impl : ( ( rule__ArmTimerMessage__ExecutionAssignment_2 )? ) ; + // InternalTextualScenario.g:2062:1: rule__ArmTimerMessage__Group__2__Impl : ( ( rule__ArmTimerMessage__ExecutionAssignment_2 )? ) ; public final void rule__ArmTimerMessage__Group__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1933:1: ( ( ( rule__ArmTimerMessage__ExecutionAssignment_2 )? ) ) - // InternalTextualScenario.g:1934:1: ( ( rule__ArmTimerMessage__ExecutionAssignment_2 )? ) + // InternalTextualScenario.g:2066:1: ( ( ( rule__ArmTimerMessage__ExecutionAssignment_2 )? ) ) + // InternalTextualScenario.g:2067:1: ( ( rule__ArmTimerMessage__ExecutionAssignment_2 )? ) { - // InternalTextualScenario.g:1934:1: ( ( rule__ArmTimerMessage__ExecutionAssignment_2 )? ) - // InternalTextualScenario.g:1935:2: ( rule__ArmTimerMessage__ExecutionAssignment_2 )? + // InternalTextualScenario.g:2067:1: ( ( rule__ArmTimerMessage__ExecutionAssignment_2 )? ) + // InternalTextualScenario.g:2068:2: ( rule__ArmTimerMessage__ExecutionAssignment_2 )? { before(grammarAccess.getArmTimerMessageAccess().getExecutionAssignment_2()); - // InternalTextualScenario.g:1936:2: ( rule__ArmTimerMessage__ExecutionAssignment_2 )? - int alt13=2; - int LA13_0 = input.LA(1); + // InternalTextualScenario.g:2069:2: ( rule__ArmTimerMessage__ExecutionAssignment_2 )? + int alt14=2; + int LA14_0 = input.LA(1); - if ( (LA13_0==35) ) { - alt13=1; + if ( (LA14_0==35) ) { + alt14=1; } - switch (alt13) { + switch (alt14) { case 1 : - // InternalTextualScenario.g:1936:3: rule__ArmTimerMessage__ExecutionAssignment_2 + // InternalTextualScenario.g:2069:3: rule__ArmTimerMessage__ExecutionAssignment_2 { pushFollow(FOLLOW_2); rule__ArmTimerMessage__ExecutionAssignment_2(); @@ -6211,14 +6663,14 @@ public final void rule__ArmTimerMessage__Group__2__Impl() throws RecognitionExce // $ANTLR start "rule__ArmTimerMessage__Group__3" - // InternalTextualScenario.g:1944:1: rule__ArmTimerMessage__Group__3 : rule__ArmTimerMessage__Group__3__Impl rule__ArmTimerMessage__Group__4 ; + // InternalTextualScenario.g:2077:1: rule__ArmTimerMessage__Group__3 : rule__ArmTimerMessage__Group__3__Impl rule__ArmTimerMessage__Group__4 ; public final void rule__ArmTimerMessage__Group__3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1948:1: ( rule__ArmTimerMessage__Group__3__Impl rule__ArmTimerMessage__Group__4 ) - // InternalTextualScenario.g:1949:2: rule__ArmTimerMessage__Group__3__Impl rule__ArmTimerMessage__Group__4 + // InternalTextualScenario.g:2081:1: ( rule__ArmTimerMessage__Group__3__Impl rule__ArmTimerMessage__Group__4 ) + // InternalTextualScenario.g:2082:2: rule__ArmTimerMessage__Group__3__Impl rule__ArmTimerMessage__Group__4 { pushFollow(FOLLOW_7); rule__ArmTimerMessage__Group__3__Impl(); @@ -6249,21 +6701,21 @@ public final void rule__ArmTimerMessage__Group__3() throws RecognitionException // $ANTLR start "rule__ArmTimerMessage__Group__3__Impl" - // InternalTextualScenario.g:1956:1: rule__ArmTimerMessage__Group__3__Impl : ( ( rule__ArmTimerMessage__DoubleDotAssignment_3 ) ) ; + // InternalTextualScenario.g:2089:1: rule__ArmTimerMessage__Group__3__Impl : ( ( rule__ArmTimerMessage__DoubleDotAssignment_3 ) ) ; public final void rule__ArmTimerMessage__Group__3__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1960:1: ( ( ( rule__ArmTimerMessage__DoubleDotAssignment_3 ) ) ) - // InternalTextualScenario.g:1961:1: ( ( rule__ArmTimerMessage__DoubleDotAssignment_3 ) ) + // InternalTextualScenario.g:2093:1: ( ( ( rule__ArmTimerMessage__DoubleDotAssignment_3 ) ) ) + // InternalTextualScenario.g:2094:1: ( ( rule__ArmTimerMessage__DoubleDotAssignment_3 ) ) { - // InternalTextualScenario.g:1961:1: ( ( rule__ArmTimerMessage__DoubleDotAssignment_3 ) ) - // InternalTextualScenario.g:1962:2: ( rule__ArmTimerMessage__DoubleDotAssignment_3 ) + // InternalTextualScenario.g:2094:1: ( ( rule__ArmTimerMessage__DoubleDotAssignment_3 ) ) + // InternalTextualScenario.g:2095:2: ( rule__ArmTimerMessage__DoubleDotAssignment_3 ) { before(grammarAccess.getArmTimerMessageAccess().getDoubleDotAssignment_3()); - // InternalTextualScenario.g:1963:2: ( rule__ArmTimerMessage__DoubleDotAssignment_3 ) - // InternalTextualScenario.g:1963:3: rule__ArmTimerMessage__DoubleDotAssignment_3 + // InternalTextualScenario.g:2096:2: ( rule__ArmTimerMessage__DoubleDotAssignment_3 ) + // InternalTextualScenario.g:2096:3: rule__ArmTimerMessage__DoubleDotAssignment_3 { pushFollow(FOLLOW_2); rule__ArmTimerMessage__DoubleDotAssignment_3(); @@ -6296,14 +6748,14 @@ public final void rule__ArmTimerMessage__Group__3__Impl() throws RecognitionExce // $ANTLR start "rule__ArmTimerMessage__Group__4" - // InternalTextualScenario.g:1971:1: rule__ArmTimerMessage__Group__4 : rule__ArmTimerMessage__Group__4__Impl ; + // InternalTextualScenario.g:2104:1: rule__ArmTimerMessage__Group__4 : rule__ArmTimerMessage__Group__4__Impl ; public final void rule__ArmTimerMessage__Group__4() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1975:1: ( rule__ArmTimerMessage__Group__4__Impl ) - // InternalTextualScenario.g:1976:2: rule__ArmTimerMessage__Group__4__Impl + // InternalTextualScenario.g:2108:1: ( rule__ArmTimerMessage__Group__4__Impl ) + // InternalTextualScenario.g:2109:2: rule__ArmTimerMessage__Group__4__Impl { pushFollow(FOLLOW_2); rule__ArmTimerMessage__Group__4__Impl(); @@ -6329,21 +6781,21 @@ public final void rule__ArmTimerMessage__Group__4() throws RecognitionException // $ANTLR start "rule__ArmTimerMessage__Group__4__Impl" - // InternalTextualScenario.g:1982:1: rule__ArmTimerMessage__Group__4__Impl : ( ( rule__ArmTimerMessage__NameAssignment_4 ) ) ; + // InternalTextualScenario.g:2115:1: rule__ArmTimerMessage__Group__4__Impl : ( ( rule__ArmTimerMessage__NameAssignment_4 ) ) ; public final void rule__ArmTimerMessage__Group__4__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:1986:1: ( ( ( rule__ArmTimerMessage__NameAssignment_4 ) ) ) - // InternalTextualScenario.g:1987:1: ( ( rule__ArmTimerMessage__NameAssignment_4 ) ) + // InternalTextualScenario.g:2119:1: ( ( ( rule__ArmTimerMessage__NameAssignment_4 ) ) ) + // InternalTextualScenario.g:2120:1: ( ( rule__ArmTimerMessage__NameAssignment_4 ) ) { - // InternalTextualScenario.g:1987:1: ( ( rule__ArmTimerMessage__NameAssignment_4 ) ) - // InternalTextualScenario.g:1988:2: ( rule__ArmTimerMessage__NameAssignment_4 ) + // InternalTextualScenario.g:2120:1: ( ( rule__ArmTimerMessage__NameAssignment_4 ) ) + // InternalTextualScenario.g:2121:2: ( rule__ArmTimerMessage__NameAssignment_4 ) { before(grammarAccess.getArmTimerMessageAccess().getNameAssignment_4()); - // InternalTextualScenario.g:1989:2: ( rule__ArmTimerMessage__NameAssignment_4 ) - // InternalTextualScenario.g:1989:3: rule__ArmTimerMessage__NameAssignment_4 + // InternalTextualScenario.g:2122:2: ( rule__ArmTimerMessage__NameAssignment_4 ) + // InternalTextualScenario.g:2122:3: rule__ArmTimerMessage__NameAssignment_4 { pushFollow(FOLLOW_2); rule__ArmTimerMessage__NameAssignment_4(); @@ -6375,23 +6827,23 @@ public final void rule__ArmTimerMessage__Group__4__Impl() throws RecognitionExce // $ANTLR end "rule__ArmTimerMessage__Group__4__Impl" - // $ANTLR start "rule__ParticipantDeactivation__Group__0" - // InternalTextualScenario.g:1998:1: rule__ParticipantDeactivation__Group__0 : rule__ParticipantDeactivation__Group__0__Impl rule__ParticipantDeactivation__Group__1 ; - public final void rule__ParticipantDeactivation__Group__0() throws RecognitionException { + // $ANTLR start "rule__LostMessage__Group__0" + // InternalTextualScenario.g:2131:1: rule__LostMessage__Group__0 : rule__LostMessage__Group__0__Impl rule__LostMessage__Group__1 ; + public final void rule__LostMessage__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2002:1: ( rule__ParticipantDeactivation__Group__0__Impl rule__ParticipantDeactivation__Group__1 ) - // InternalTextualScenario.g:2003:2: rule__ParticipantDeactivation__Group__0__Impl rule__ParticipantDeactivation__Group__1 + // InternalTextualScenario.g:2135:1: ( rule__LostMessage__Group__0__Impl rule__LostMessage__Group__1 ) + // InternalTextualScenario.g:2136:2: rule__LostMessage__Group__0__Impl rule__LostMessage__Group__1 { - pushFollow(FOLLOW_7); - rule__ParticipantDeactivation__Group__0__Impl(); + pushFollow(FOLLOW_14); + rule__LostMessage__Group__0__Impl(); state._fsp--; pushFollow(FOLLOW_2); - rule__ParticipantDeactivation__Group__1(); + rule__LostMessage__Group__1(); state._fsp--; @@ -6410,35 +6862,35 @@ public final void rule__ParticipantDeactivation__Group__0() throws RecognitionEx } return ; } - // $ANTLR end "rule__ParticipantDeactivation__Group__0" + // $ANTLR end "rule__LostMessage__Group__0" - // $ANTLR start "rule__ParticipantDeactivation__Group__0__Impl" - // InternalTextualScenario.g:2010:1: rule__ParticipantDeactivation__Group__0__Impl : ( ( rule__ParticipantDeactivation__KeywordAssignment_0 ) ) ; - public final void rule__ParticipantDeactivation__Group__0__Impl() throws RecognitionException { + // $ANTLR start "rule__LostMessage__Group__0__Impl" + // InternalTextualScenario.g:2143:1: rule__LostMessage__Group__0__Impl : ( ( rule__LostMessage__SourceAssignment_0 ) ) ; + public final void rule__LostMessage__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2014:1: ( ( ( rule__ParticipantDeactivation__KeywordAssignment_0 ) ) ) - // InternalTextualScenario.g:2015:1: ( ( rule__ParticipantDeactivation__KeywordAssignment_0 ) ) + // InternalTextualScenario.g:2147:1: ( ( ( rule__LostMessage__SourceAssignment_0 ) ) ) + // InternalTextualScenario.g:2148:1: ( ( rule__LostMessage__SourceAssignment_0 ) ) { - // InternalTextualScenario.g:2015:1: ( ( rule__ParticipantDeactivation__KeywordAssignment_0 ) ) - // InternalTextualScenario.g:2016:2: ( rule__ParticipantDeactivation__KeywordAssignment_0 ) + // InternalTextualScenario.g:2148:1: ( ( rule__LostMessage__SourceAssignment_0 ) ) + // InternalTextualScenario.g:2149:2: ( rule__LostMessage__SourceAssignment_0 ) { - before(grammarAccess.getParticipantDeactivationAccess().getKeywordAssignment_0()); - // InternalTextualScenario.g:2017:2: ( rule__ParticipantDeactivation__KeywordAssignment_0 ) - // InternalTextualScenario.g:2017:3: rule__ParticipantDeactivation__KeywordAssignment_0 + before(grammarAccess.getLostMessageAccess().getSourceAssignment_0()); + // InternalTextualScenario.g:2150:2: ( rule__LostMessage__SourceAssignment_0 ) + // InternalTextualScenario.g:2150:3: rule__LostMessage__SourceAssignment_0 { pushFollow(FOLLOW_2); - rule__ParticipantDeactivation__KeywordAssignment_0(); + rule__LostMessage__SourceAssignment_0(); state._fsp--; } - after(grammarAccess.getParticipantDeactivationAccess().getKeywordAssignment_0()); + after(grammarAccess.getLostMessageAccess().getSourceAssignment_0()); } @@ -6457,21 +6909,26 @@ public final void rule__ParticipantDeactivation__Group__0__Impl() throws Recogni } return ; } - // $ANTLR end "rule__ParticipantDeactivation__Group__0__Impl" + // $ANTLR end "rule__LostMessage__Group__0__Impl" - // $ANTLR start "rule__ParticipantDeactivation__Group__1" - // InternalTextualScenario.g:2025:1: rule__ParticipantDeactivation__Group__1 : rule__ParticipantDeactivation__Group__1__Impl ; - public final void rule__ParticipantDeactivation__Group__1() throws RecognitionException { + // $ANTLR start "rule__LostMessage__Group__1" + // InternalTextualScenario.g:2158:1: rule__LostMessage__Group__1 : rule__LostMessage__Group__1__Impl rule__LostMessage__Group__2 ; + public final void rule__LostMessage__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2029:1: ( rule__ParticipantDeactivation__Group__1__Impl ) - // InternalTextualScenario.g:2030:2: rule__ParticipantDeactivation__Group__1__Impl + // InternalTextualScenario.g:2162:1: ( rule__LostMessage__Group__1__Impl rule__LostMessage__Group__2 ) + // InternalTextualScenario.g:2163:2: rule__LostMessage__Group__1__Impl rule__LostMessage__Group__2 { + pushFollow(FOLLOW_11); + rule__LostMessage__Group__1__Impl(); + + state._fsp--; + pushFollow(FOLLOW_2); - rule__ParticipantDeactivation__Group__1__Impl(); + rule__LostMessage__Group__2(); state._fsp--; @@ -6490,35 +6947,35 @@ public final void rule__ParticipantDeactivation__Group__1() throws RecognitionEx } return ; } - // $ANTLR end "rule__ParticipantDeactivation__Group__1" + // $ANTLR end "rule__LostMessage__Group__1" - // $ANTLR start "rule__ParticipantDeactivation__Group__1__Impl" - // InternalTextualScenario.g:2036:1: rule__ParticipantDeactivation__Group__1__Impl : ( ( rule__ParticipantDeactivation__NameAssignment_1 ) ) ; - public final void rule__ParticipantDeactivation__Group__1__Impl() throws RecognitionException { + // $ANTLR start "rule__LostMessage__Group__1__Impl" + // InternalTextualScenario.g:2170:1: rule__LostMessage__Group__1__Impl : ( ( rule__LostMessage__ArrowAssignment_1 ) ) ; + public final void rule__LostMessage__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2040:1: ( ( ( rule__ParticipantDeactivation__NameAssignment_1 ) ) ) - // InternalTextualScenario.g:2041:1: ( ( rule__ParticipantDeactivation__NameAssignment_1 ) ) + // InternalTextualScenario.g:2174:1: ( ( ( rule__LostMessage__ArrowAssignment_1 ) ) ) + // InternalTextualScenario.g:2175:1: ( ( rule__LostMessage__ArrowAssignment_1 ) ) { - // InternalTextualScenario.g:2041:1: ( ( rule__ParticipantDeactivation__NameAssignment_1 ) ) - // InternalTextualScenario.g:2042:2: ( rule__ParticipantDeactivation__NameAssignment_1 ) + // InternalTextualScenario.g:2175:1: ( ( rule__LostMessage__ArrowAssignment_1 ) ) + // InternalTextualScenario.g:2176:2: ( rule__LostMessage__ArrowAssignment_1 ) { - before(grammarAccess.getParticipantDeactivationAccess().getNameAssignment_1()); - // InternalTextualScenario.g:2043:2: ( rule__ParticipantDeactivation__NameAssignment_1 ) - // InternalTextualScenario.g:2043:3: rule__ParticipantDeactivation__NameAssignment_1 + before(grammarAccess.getLostMessageAccess().getArrowAssignment_1()); + // InternalTextualScenario.g:2177:2: ( rule__LostMessage__ArrowAssignment_1 ) + // InternalTextualScenario.g:2177:3: rule__LostMessage__ArrowAssignment_1 { pushFollow(FOLLOW_2); - rule__ParticipantDeactivation__NameAssignment_1(); + rule__LostMessage__ArrowAssignment_1(); state._fsp--; } - after(grammarAccess.getParticipantDeactivationAccess().getNameAssignment_1()); + after(grammarAccess.getLostMessageAccess().getArrowAssignment_1()); } @@ -6537,26 +6994,26 @@ public final void rule__ParticipantDeactivation__Group__1__Impl() throws Recogni } return ; } - // $ANTLR end "rule__ParticipantDeactivation__Group__1__Impl" + // $ANTLR end "rule__LostMessage__Group__1__Impl" - // $ANTLR start "rule__CombinedFragment__Group__0" - // InternalTextualScenario.g:2052:1: rule__CombinedFragment__Group__0 : rule__CombinedFragment__Group__0__Impl rule__CombinedFragment__Group__1 ; - public final void rule__CombinedFragment__Group__0() throws RecognitionException { + // $ANTLR start "rule__LostMessage__Group__2" + // InternalTextualScenario.g:2185:1: rule__LostMessage__Group__2 : rule__LostMessage__Group__2__Impl rule__LostMessage__Group__3 ; + public final void rule__LostMessage__Group__2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2056:1: ( rule__CombinedFragment__Group__0__Impl rule__CombinedFragment__Group__1 ) - // InternalTextualScenario.g:2057:2: rule__CombinedFragment__Group__0__Impl rule__CombinedFragment__Group__1 + // InternalTextualScenario.g:2189:1: ( rule__LostMessage__Group__2__Impl rule__LostMessage__Group__3 ) + // InternalTextualScenario.g:2190:2: rule__LostMessage__Group__2__Impl rule__LostMessage__Group__3 { pushFollow(FOLLOW_7); - rule__CombinedFragment__Group__0__Impl(); + rule__LostMessage__Group__2__Impl(); state._fsp--; pushFollow(FOLLOW_2); - rule__CombinedFragment__Group__1(); + rule__LostMessage__Group__3(); state._fsp--; @@ -6575,35 +7032,35 @@ public final void rule__CombinedFragment__Group__0() throws RecognitionException } return ; } - // $ANTLR end "rule__CombinedFragment__Group__0" + // $ANTLR end "rule__LostMessage__Group__2" - // $ANTLR start "rule__CombinedFragment__Group__0__Impl" - // InternalTextualScenario.g:2064:1: rule__CombinedFragment__Group__0__Impl : ( ( rule__CombinedFragment__KeywordAssignment_0 ) ) ; - public final void rule__CombinedFragment__Group__0__Impl() throws RecognitionException { + // $ANTLR start "rule__LostMessage__Group__2__Impl" + // InternalTextualScenario.g:2197:1: rule__LostMessage__Group__2__Impl : ( ( rule__LostMessage__DoubleDotAssignment_2 ) ) ; + public final void rule__LostMessage__Group__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2068:1: ( ( ( rule__CombinedFragment__KeywordAssignment_0 ) ) ) - // InternalTextualScenario.g:2069:1: ( ( rule__CombinedFragment__KeywordAssignment_0 ) ) + // InternalTextualScenario.g:2201:1: ( ( ( rule__LostMessage__DoubleDotAssignment_2 ) ) ) + // InternalTextualScenario.g:2202:1: ( ( rule__LostMessage__DoubleDotAssignment_2 ) ) { - // InternalTextualScenario.g:2069:1: ( ( rule__CombinedFragment__KeywordAssignment_0 ) ) - // InternalTextualScenario.g:2070:2: ( rule__CombinedFragment__KeywordAssignment_0 ) + // InternalTextualScenario.g:2202:1: ( ( rule__LostMessage__DoubleDotAssignment_2 ) ) + // InternalTextualScenario.g:2203:2: ( rule__LostMessage__DoubleDotAssignment_2 ) { - before(grammarAccess.getCombinedFragmentAccess().getKeywordAssignment_0()); - // InternalTextualScenario.g:2071:2: ( rule__CombinedFragment__KeywordAssignment_0 ) - // InternalTextualScenario.g:2071:3: rule__CombinedFragment__KeywordAssignment_0 + before(grammarAccess.getLostMessageAccess().getDoubleDotAssignment_2()); + // InternalTextualScenario.g:2204:2: ( rule__LostMessage__DoubleDotAssignment_2 ) + // InternalTextualScenario.g:2204:3: rule__LostMessage__DoubleDotAssignment_2 { pushFollow(FOLLOW_2); - rule__CombinedFragment__KeywordAssignment_0(); + rule__LostMessage__DoubleDotAssignment_2(); state._fsp--; } - after(grammarAccess.getCombinedFragmentAccess().getKeywordAssignment_0()); + after(grammarAccess.getLostMessageAccess().getDoubleDotAssignment_2()); } @@ -6622,26 +7079,21 @@ public final void rule__CombinedFragment__Group__0__Impl() throws RecognitionExc } return ; } - // $ANTLR end "rule__CombinedFragment__Group__0__Impl" + // $ANTLR end "rule__LostMessage__Group__2__Impl" - // $ANTLR start "rule__CombinedFragment__Group__1" - // InternalTextualScenario.g:2079:1: rule__CombinedFragment__Group__1 : rule__CombinedFragment__Group__1__Impl rule__CombinedFragment__Group__2 ; - public final void rule__CombinedFragment__Group__1() throws RecognitionException { + // $ANTLR start "rule__LostMessage__Group__3" + // InternalTextualScenario.g:2212:1: rule__LostMessage__Group__3 : rule__LostMessage__Group__3__Impl ; + public final void rule__LostMessage__Group__3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2083:1: ( rule__CombinedFragment__Group__1__Impl rule__CombinedFragment__Group__2 ) - // InternalTextualScenario.g:2084:2: rule__CombinedFragment__Group__1__Impl rule__CombinedFragment__Group__2 + // InternalTextualScenario.g:2216:1: ( rule__LostMessage__Group__3__Impl ) + // InternalTextualScenario.g:2217:2: rule__LostMessage__Group__3__Impl { - pushFollow(FOLLOW_14); - rule__CombinedFragment__Group__1__Impl(); - - state._fsp--; - pushFollow(FOLLOW_2); - rule__CombinedFragment__Group__2(); + rule__LostMessage__Group__3__Impl(); state._fsp--; @@ -6660,35 +7112,35 @@ public final void rule__CombinedFragment__Group__1() throws RecognitionException } return ; } - // $ANTLR end "rule__CombinedFragment__Group__1" + // $ANTLR end "rule__LostMessage__Group__3" - // $ANTLR start "rule__CombinedFragment__Group__1__Impl" - // InternalTextualScenario.g:2091:1: rule__CombinedFragment__Group__1__Impl : ( ( rule__CombinedFragment__ExpressionAssignment_1 ) ) ; - public final void rule__CombinedFragment__Group__1__Impl() throws RecognitionException { + // $ANTLR start "rule__LostMessage__Group__3__Impl" + // InternalTextualScenario.g:2223:1: rule__LostMessage__Group__3__Impl : ( ( rule__LostMessage__NameAssignment_3 ) ) ; + public final void rule__LostMessage__Group__3__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2095:1: ( ( ( rule__CombinedFragment__ExpressionAssignment_1 ) ) ) - // InternalTextualScenario.g:2096:1: ( ( rule__CombinedFragment__ExpressionAssignment_1 ) ) + // InternalTextualScenario.g:2227:1: ( ( ( rule__LostMessage__NameAssignment_3 ) ) ) + // InternalTextualScenario.g:2228:1: ( ( rule__LostMessage__NameAssignment_3 ) ) { - // InternalTextualScenario.g:2096:1: ( ( rule__CombinedFragment__ExpressionAssignment_1 ) ) - // InternalTextualScenario.g:2097:2: ( rule__CombinedFragment__ExpressionAssignment_1 ) + // InternalTextualScenario.g:2228:1: ( ( rule__LostMessage__NameAssignment_3 ) ) + // InternalTextualScenario.g:2229:2: ( rule__LostMessage__NameAssignment_3 ) { - before(grammarAccess.getCombinedFragmentAccess().getExpressionAssignment_1()); - // InternalTextualScenario.g:2098:2: ( rule__CombinedFragment__ExpressionAssignment_1 ) - // InternalTextualScenario.g:2098:3: rule__CombinedFragment__ExpressionAssignment_1 + before(grammarAccess.getLostMessageAccess().getNameAssignment_3()); + // InternalTextualScenario.g:2230:2: ( rule__LostMessage__NameAssignment_3 ) + // InternalTextualScenario.g:2230:3: rule__LostMessage__NameAssignment_3 { pushFollow(FOLLOW_2); - rule__CombinedFragment__ExpressionAssignment_1(); + rule__LostMessage__NameAssignment_3(); state._fsp--; } - after(grammarAccess.getCombinedFragmentAccess().getExpressionAssignment_1()); + after(grammarAccess.getLostMessageAccess().getNameAssignment_3()); } @@ -6707,26 +7159,26 @@ public final void rule__CombinedFragment__Group__1__Impl() throws RecognitionExc } return ; } - // $ANTLR end "rule__CombinedFragment__Group__1__Impl" + // $ANTLR end "rule__LostMessage__Group__3__Impl" - // $ANTLR start "rule__CombinedFragment__Group__2" - // InternalTextualScenario.g:2106:1: rule__CombinedFragment__Group__2 : rule__CombinedFragment__Group__2__Impl rule__CombinedFragment__Group__3 ; - public final void rule__CombinedFragment__Group__2() throws RecognitionException { + // $ANTLR start "rule__FoundMessage__Group__0" + // InternalTextualScenario.g:2239:1: rule__FoundMessage__Group__0 : rule__FoundMessage__Group__0__Impl rule__FoundMessage__Group__1 ; + public final void rule__FoundMessage__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2110:1: ( rule__CombinedFragment__Group__2__Impl rule__CombinedFragment__Group__3 ) - // InternalTextualScenario.g:2111:2: rule__CombinedFragment__Group__2__Impl rule__CombinedFragment__Group__3 + // InternalTextualScenario.g:2243:1: ( rule__FoundMessage__Group__0__Impl rule__FoundMessage__Group__1 ) + // InternalTextualScenario.g:2244:2: rule__FoundMessage__Group__0__Impl rule__FoundMessage__Group__1 { pushFollow(FOLLOW_7); - rule__CombinedFragment__Group__2__Impl(); + rule__FoundMessage__Group__0__Impl(); state._fsp--; pushFollow(FOLLOW_2); - rule__CombinedFragment__Group__3(); + rule__FoundMessage__Group__1(); state._fsp--; @@ -6745,35 +7197,35 @@ public final void rule__CombinedFragment__Group__2() throws RecognitionException } return ; } - // $ANTLR end "rule__CombinedFragment__Group__2" + // $ANTLR end "rule__FoundMessage__Group__0" - // $ANTLR start "rule__CombinedFragment__Group__2__Impl" - // InternalTextualScenario.g:2118:1: rule__CombinedFragment__Group__2__Impl : ( ( rule__CombinedFragment__OverAssignment_2 ) ) ; - public final void rule__CombinedFragment__Group__2__Impl() throws RecognitionException { + // $ANTLR start "rule__FoundMessage__Group__0__Impl" + // InternalTextualScenario.g:2251:1: rule__FoundMessage__Group__0__Impl : ( ( rule__FoundMessage__ArrowAssignment_0 ) ) ; + public final void rule__FoundMessage__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2122:1: ( ( ( rule__CombinedFragment__OverAssignment_2 ) ) ) - // InternalTextualScenario.g:2123:1: ( ( rule__CombinedFragment__OverAssignment_2 ) ) + // InternalTextualScenario.g:2255:1: ( ( ( rule__FoundMessage__ArrowAssignment_0 ) ) ) + // InternalTextualScenario.g:2256:1: ( ( rule__FoundMessage__ArrowAssignment_0 ) ) { - // InternalTextualScenario.g:2123:1: ( ( rule__CombinedFragment__OverAssignment_2 ) ) - // InternalTextualScenario.g:2124:2: ( rule__CombinedFragment__OverAssignment_2 ) + // InternalTextualScenario.g:2256:1: ( ( rule__FoundMessage__ArrowAssignment_0 ) ) + // InternalTextualScenario.g:2257:2: ( rule__FoundMessage__ArrowAssignment_0 ) { - before(grammarAccess.getCombinedFragmentAccess().getOverAssignment_2()); - // InternalTextualScenario.g:2125:2: ( rule__CombinedFragment__OverAssignment_2 ) - // InternalTextualScenario.g:2125:3: rule__CombinedFragment__OverAssignment_2 + before(grammarAccess.getFoundMessageAccess().getArrowAssignment_0()); + // InternalTextualScenario.g:2258:2: ( rule__FoundMessage__ArrowAssignment_0 ) + // InternalTextualScenario.g:2258:3: rule__FoundMessage__ArrowAssignment_0 { pushFollow(FOLLOW_2); - rule__CombinedFragment__OverAssignment_2(); + rule__FoundMessage__ArrowAssignment_0(); state._fsp--; } - after(grammarAccess.getCombinedFragmentAccess().getOverAssignment_2()); + after(grammarAccess.getFoundMessageAccess().getArrowAssignment_0()); } @@ -6792,26 +7244,26 @@ public final void rule__CombinedFragment__Group__2__Impl() throws RecognitionExc } return ; } - // $ANTLR end "rule__CombinedFragment__Group__2__Impl" + // $ANTLR end "rule__FoundMessage__Group__0__Impl" - // $ANTLR start "rule__CombinedFragment__Group__3" - // InternalTextualScenario.g:2133:1: rule__CombinedFragment__Group__3 : rule__CombinedFragment__Group__3__Impl rule__CombinedFragment__Group__4 ; - public final void rule__CombinedFragment__Group__3() throws RecognitionException { + // $ANTLR start "rule__FoundMessage__Group__1" + // InternalTextualScenario.g:2266:1: rule__FoundMessage__Group__1 : rule__FoundMessage__Group__1__Impl rule__FoundMessage__Group__2 ; + public final void rule__FoundMessage__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2137:1: ( rule__CombinedFragment__Group__3__Impl rule__CombinedFragment__Group__4 ) - // InternalTextualScenario.g:2138:2: rule__CombinedFragment__Group__3__Impl rule__CombinedFragment__Group__4 + // InternalTextualScenario.g:2270:1: ( rule__FoundMessage__Group__1__Impl rule__FoundMessage__Group__2 ) + // InternalTextualScenario.g:2271:2: rule__FoundMessage__Group__1__Impl rule__FoundMessage__Group__2 { - pushFollow(FOLLOW_3); - rule__CombinedFragment__Group__3__Impl(); + pushFollow(FOLLOW_13); + rule__FoundMessage__Group__1__Impl(); state._fsp--; pushFollow(FOLLOW_2); - rule__CombinedFragment__Group__4(); + rule__FoundMessage__Group__2(); state._fsp--; @@ -6830,78 +7282,35 @@ public final void rule__CombinedFragment__Group__3() throws RecognitionException } return ; } - // $ANTLR end "rule__CombinedFragment__Group__3" + // $ANTLR end "rule__FoundMessage__Group__1" - // $ANTLR start "rule__CombinedFragment__Group__3__Impl" - // InternalTextualScenario.g:2145:1: rule__CombinedFragment__Group__3__Impl : ( ( ( rule__CombinedFragment__TimelinesAssignment_3 ) ) ( ( rule__CombinedFragment__TimelinesAssignment_3 )* ) ) ; - public final void rule__CombinedFragment__Group__3__Impl() throws RecognitionException { + // $ANTLR start "rule__FoundMessage__Group__1__Impl" + // InternalTextualScenario.g:2278:1: rule__FoundMessage__Group__1__Impl : ( ( rule__FoundMessage__TargetAssignment_1 ) ) ; + public final void rule__FoundMessage__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2149:1: ( ( ( ( rule__CombinedFragment__TimelinesAssignment_3 ) ) ( ( rule__CombinedFragment__TimelinesAssignment_3 )* ) ) ) - // InternalTextualScenario.g:2150:1: ( ( ( rule__CombinedFragment__TimelinesAssignment_3 ) ) ( ( rule__CombinedFragment__TimelinesAssignment_3 )* ) ) - { - // InternalTextualScenario.g:2150:1: ( ( ( rule__CombinedFragment__TimelinesAssignment_3 ) ) ( ( rule__CombinedFragment__TimelinesAssignment_3 )* ) ) - // InternalTextualScenario.g:2151:2: ( ( rule__CombinedFragment__TimelinesAssignment_3 ) ) ( ( rule__CombinedFragment__TimelinesAssignment_3 )* ) + // InternalTextualScenario.g:2282:1: ( ( ( rule__FoundMessage__TargetAssignment_1 ) ) ) + // InternalTextualScenario.g:2283:1: ( ( rule__FoundMessage__TargetAssignment_1 ) ) { - // InternalTextualScenario.g:2151:2: ( ( rule__CombinedFragment__TimelinesAssignment_3 ) ) - // InternalTextualScenario.g:2152:3: ( rule__CombinedFragment__TimelinesAssignment_3 ) + // InternalTextualScenario.g:2283:1: ( ( rule__FoundMessage__TargetAssignment_1 ) ) + // InternalTextualScenario.g:2284:2: ( rule__FoundMessage__TargetAssignment_1 ) { - before(grammarAccess.getCombinedFragmentAccess().getTimelinesAssignment_3()); - // InternalTextualScenario.g:2153:3: ( rule__CombinedFragment__TimelinesAssignment_3 ) - // InternalTextualScenario.g:2153:4: rule__CombinedFragment__TimelinesAssignment_3 + before(grammarAccess.getFoundMessageAccess().getTargetAssignment_1()); + // InternalTextualScenario.g:2285:2: ( rule__FoundMessage__TargetAssignment_1 ) + // InternalTextualScenario.g:2285:3: rule__FoundMessage__TargetAssignment_1 { - pushFollow(FOLLOW_15); - rule__CombinedFragment__TimelinesAssignment_3(); + pushFollow(FOLLOW_2); + rule__FoundMessage__TargetAssignment_1(); state._fsp--; } - after(grammarAccess.getCombinedFragmentAccess().getTimelinesAssignment_3()); - - } - - // InternalTextualScenario.g:2156:2: ( ( rule__CombinedFragment__TimelinesAssignment_3 )* ) - // InternalTextualScenario.g:2157:3: ( rule__CombinedFragment__TimelinesAssignment_3 )* - { - before(grammarAccess.getCombinedFragmentAccess().getTimelinesAssignment_3()); - // InternalTextualScenario.g:2158:3: ( rule__CombinedFragment__TimelinesAssignment_3 )* - loop14: - do { - int alt14=2; - int LA14_0 = input.LA(1); - - if ( (LA14_0==RULE_STRING) ) { - alt14=1; - } - - - switch (alt14) { - case 1 : - // InternalTextualScenario.g:2158:4: rule__CombinedFragment__TimelinesAssignment_3 - { - pushFollow(FOLLOW_15); - rule__CombinedFragment__TimelinesAssignment_3(); - - state._fsp--; - - - } - break; - - default : - break loop14; - } - } while (true); - - after(grammarAccess.getCombinedFragmentAccess().getTimelinesAssignment_3()); - - } - + after(grammarAccess.getFoundMessageAccess().getTargetAssignment_1()); } @@ -6920,26 +7329,26 @@ public final void rule__CombinedFragment__Group__3__Impl() throws RecognitionExc } return ; } - // $ANTLR end "rule__CombinedFragment__Group__3__Impl" + // $ANTLR end "rule__FoundMessage__Group__1__Impl" - // $ANTLR start "rule__CombinedFragment__Group__4" - // InternalTextualScenario.g:2167:1: rule__CombinedFragment__Group__4 : rule__CombinedFragment__Group__4__Impl rule__CombinedFragment__Group__5 ; - public final void rule__CombinedFragment__Group__4() throws RecognitionException { + // $ANTLR start "rule__FoundMessage__Group__2" + // InternalTextualScenario.g:2293:1: rule__FoundMessage__Group__2 : rule__FoundMessage__Group__2__Impl rule__FoundMessage__Group__3 ; + public final void rule__FoundMessage__Group__2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2171:1: ( rule__CombinedFragment__Group__4__Impl rule__CombinedFragment__Group__5 ) - // InternalTextualScenario.g:2172:2: rule__CombinedFragment__Group__4__Impl rule__CombinedFragment__Group__5 + // InternalTextualScenario.g:2297:1: ( rule__FoundMessage__Group__2__Impl rule__FoundMessage__Group__3 ) + // InternalTextualScenario.g:2298:2: rule__FoundMessage__Group__2__Impl rule__FoundMessage__Group__3 { - pushFollow(FOLLOW_16); - rule__CombinedFragment__Group__4__Impl(); + pushFollow(FOLLOW_13); + rule__FoundMessage__Group__2__Impl(); state._fsp--; pushFollow(FOLLOW_2); - rule__CombinedFragment__Group__5(); + rule__FoundMessage__Group__3(); state._fsp--; @@ -6958,35 +7367,46 @@ public final void rule__CombinedFragment__Group__4() throws RecognitionException } return ; } - // $ANTLR end "rule__CombinedFragment__Group__4" + // $ANTLR end "rule__FoundMessage__Group__2" - // $ANTLR start "rule__CombinedFragment__Group__4__Impl" - // InternalTextualScenario.g:2179:1: rule__CombinedFragment__Group__4__Impl : ( ( rule__CombinedFragment__BlockAssignment_4 ) ) ; - public final void rule__CombinedFragment__Group__4__Impl() throws RecognitionException { + // $ANTLR start "rule__FoundMessage__Group__2__Impl" + // InternalTextualScenario.g:2305:1: rule__FoundMessage__Group__2__Impl : ( ( rule__FoundMessage__ExecutionAssignment_2 )? ) ; + public final void rule__FoundMessage__Group__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2183:1: ( ( ( rule__CombinedFragment__BlockAssignment_4 ) ) ) - // InternalTextualScenario.g:2184:1: ( ( rule__CombinedFragment__BlockAssignment_4 ) ) - { - // InternalTextualScenario.g:2184:1: ( ( rule__CombinedFragment__BlockAssignment_4 ) ) - // InternalTextualScenario.g:2185:2: ( rule__CombinedFragment__BlockAssignment_4 ) + // InternalTextualScenario.g:2309:1: ( ( ( rule__FoundMessage__ExecutionAssignment_2 )? ) ) + // InternalTextualScenario.g:2310:1: ( ( rule__FoundMessage__ExecutionAssignment_2 )? ) { - before(grammarAccess.getCombinedFragmentAccess().getBlockAssignment_4()); - // InternalTextualScenario.g:2186:2: ( rule__CombinedFragment__BlockAssignment_4 ) - // InternalTextualScenario.g:2186:3: rule__CombinedFragment__BlockAssignment_4 + // InternalTextualScenario.g:2310:1: ( ( rule__FoundMessage__ExecutionAssignment_2 )? ) + // InternalTextualScenario.g:2311:2: ( rule__FoundMessage__ExecutionAssignment_2 )? { - pushFollow(FOLLOW_2); - rule__CombinedFragment__BlockAssignment_4(); + before(grammarAccess.getFoundMessageAccess().getExecutionAssignment_2()); + // InternalTextualScenario.g:2312:2: ( rule__FoundMessage__ExecutionAssignment_2 )? + int alt15=2; + int LA15_0 = input.LA(1); - state._fsp--; + if ( (LA15_0==35) ) { + alt15=1; + } + switch (alt15) { + case 1 : + // InternalTextualScenario.g:2312:3: rule__FoundMessage__ExecutionAssignment_2 + { + pushFollow(FOLLOW_2); + rule__FoundMessage__ExecutionAssignment_2(); + state._fsp--; + + + } + break; } - after(grammarAccess.getCombinedFragmentAccess().getBlockAssignment_4()); + after(grammarAccess.getFoundMessageAccess().getExecutionAssignment_2()); } @@ -7005,21 +7425,26 @@ public final void rule__CombinedFragment__Group__4__Impl() throws RecognitionExc } return ; } - // $ANTLR end "rule__CombinedFragment__Group__4__Impl" + // $ANTLR end "rule__FoundMessage__Group__2__Impl" - // $ANTLR start "rule__CombinedFragment__Group__5" - // InternalTextualScenario.g:2194:1: rule__CombinedFragment__Group__5 : rule__CombinedFragment__Group__5__Impl ; - public final void rule__CombinedFragment__Group__5() throws RecognitionException { + // $ANTLR start "rule__FoundMessage__Group__3" + // InternalTextualScenario.g:2320:1: rule__FoundMessage__Group__3 : rule__FoundMessage__Group__3__Impl rule__FoundMessage__Group__4 ; + public final void rule__FoundMessage__Group__3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2198:1: ( rule__CombinedFragment__Group__5__Impl ) - // InternalTextualScenario.g:2199:2: rule__CombinedFragment__Group__5__Impl + // InternalTextualScenario.g:2324:1: ( rule__FoundMessage__Group__3__Impl rule__FoundMessage__Group__4 ) + // InternalTextualScenario.g:2325:2: rule__FoundMessage__Group__3__Impl rule__FoundMessage__Group__4 { + pushFollow(FOLLOW_7); + rule__FoundMessage__Group__3__Impl(); + + state._fsp--; + pushFollow(FOLLOW_2); - rule__CombinedFragment__Group__5__Impl(); + rule__FoundMessage__Group__4(); state._fsp--; @@ -7038,62 +7463,35 @@ public final void rule__CombinedFragment__Group__5() throws RecognitionException } return ; } - // $ANTLR end "rule__CombinedFragment__Group__5" + // $ANTLR end "rule__FoundMessage__Group__3" - // $ANTLR start "rule__CombinedFragment__Group__5__Impl" - // InternalTextualScenario.g:2205:1: rule__CombinedFragment__Group__5__Impl : ( ( rule__CombinedFragment__OperandsAssignment_5 )* ) ; - public final void rule__CombinedFragment__Group__5__Impl() throws RecognitionException { + // $ANTLR start "rule__FoundMessage__Group__3__Impl" + // InternalTextualScenario.g:2332:1: rule__FoundMessage__Group__3__Impl : ( ( rule__FoundMessage__DoubleDotAssignment_3 ) ) ; + public final void rule__FoundMessage__Group__3__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2209:1: ( ( ( rule__CombinedFragment__OperandsAssignment_5 )* ) ) - // InternalTextualScenario.g:2210:1: ( ( rule__CombinedFragment__OperandsAssignment_5 )* ) + // InternalTextualScenario.g:2336:1: ( ( ( rule__FoundMessage__DoubleDotAssignment_3 ) ) ) + // InternalTextualScenario.g:2337:1: ( ( rule__FoundMessage__DoubleDotAssignment_3 ) ) { - // InternalTextualScenario.g:2210:1: ( ( rule__CombinedFragment__OperandsAssignment_5 )* ) - // InternalTextualScenario.g:2211:2: ( rule__CombinedFragment__OperandsAssignment_5 )* + // InternalTextualScenario.g:2337:1: ( ( rule__FoundMessage__DoubleDotAssignment_3 ) ) + // InternalTextualScenario.g:2338:2: ( rule__FoundMessage__DoubleDotAssignment_3 ) { - before(grammarAccess.getCombinedFragmentAccess().getOperandsAssignment_5()); - // InternalTextualScenario.g:2212:2: ( rule__CombinedFragment__OperandsAssignment_5 )* - loop15: - do { - int alt15=2; - int LA15_0 = input.LA(1); - - if ( (LA15_0==RULE_STRING) ) { - int LA15_2 = input.LA(2); - - if ( (LA15_2==26) ) { - alt15=1; - } - - - } - else if ( (LA15_0==43) ) { - alt15=1; - } - - - switch (alt15) { - case 1 : - // InternalTextualScenario.g:2212:3: rule__CombinedFragment__OperandsAssignment_5 - { - pushFollow(FOLLOW_17); - rule__CombinedFragment__OperandsAssignment_5(); - - state._fsp--; + before(grammarAccess.getFoundMessageAccess().getDoubleDotAssignment_3()); + // InternalTextualScenario.g:2339:2: ( rule__FoundMessage__DoubleDotAssignment_3 ) + // InternalTextualScenario.g:2339:3: rule__FoundMessage__DoubleDotAssignment_3 + { + pushFollow(FOLLOW_2); + rule__FoundMessage__DoubleDotAssignment_3(); + state._fsp--; - } - break; - default : - break loop15; - } - } while (true); + } - after(grammarAccess.getCombinedFragmentAccess().getOperandsAssignment_5()); + after(grammarAccess.getFoundMessageAccess().getDoubleDotAssignment_3()); } @@ -7112,26 +7510,21 @@ else if ( (LA15_0==43) ) { } return ; } - // $ANTLR end "rule__CombinedFragment__Group__5__Impl" + // $ANTLR end "rule__FoundMessage__Group__3__Impl" - // $ANTLR start "rule__Operand__Group__0" - // InternalTextualScenario.g:2221:1: rule__Operand__Group__0 : rule__Operand__Group__0__Impl rule__Operand__Group__1 ; - public final void rule__Operand__Group__0() throws RecognitionException { + // $ANTLR start "rule__FoundMessage__Group__4" + // InternalTextualScenario.g:2347:1: rule__FoundMessage__Group__4 : rule__FoundMessage__Group__4__Impl ; + public final void rule__FoundMessage__Group__4() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2225:1: ( rule__Operand__Group__0__Impl rule__Operand__Group__1 ) - // InternalTextualScenario.g:2226:2: rule__Operand__Group__0__Impl rule__Operand__Group__1 + // InternalTextualScenario.g:2351:1: ( rule__FoundMessage__Group__4__Impl ) + // InternalTextualScenario.g:2352:2: rule__FoundMessage__Group__4__Impl { - pushFollow(FOLLOW_16); - rule__Operand__Group__0__Impl(); - - state._fsp--; - pushFollow(FOLLOW_2); - rule__Operand__Group__1(); + rule__FoundMessage__Group__4__Impl(); state._fsp--; @@ -7150,46 +7543,35 @@ public final void rule__Operand__Group__0() throws RecognitionException { } return ; } - // $ANTLR end "rule__Operand__Group__0" + // $ANTLR end "rule__FoundMessage__Group__4" - // $ANTLR start "rule__Operand__Group__0__Impl" - // InternalTextualScenario.g:2233:1: rule__Operand__Group__0__Impl : ( ( rule__Operand__KeywordAssignment_0 )? ) ; - public final void rule__Operand__Group__0__Impl() throws RecognitionException { + // $ANTLR start "rule__FoundMessage__Group__4__Impl" + // InternalTextualScenario.g:2358:1: rule__FoundMessage__Group__4__Impl : ( ( rule__FoundMessage__NameAssignment_4 ) ) ; + public final void rule__FoundMessage__Group__4__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2237:1: ( ( ( rule__Operand__KeywordAssignment_0 )? ) ) - // InternalTextualScenario.g:2238:1: ( ( rule__Operand__KeywordAssignment_0 )? ) + // InternalTextualScenario.g:2362:1: ( ( ( rule__FoundMessage__NameAssignment_4 ) ) ) + // InternalTextualScenario.g:2363:1: ( ( rule__FoundMessage__NameAssignment_4 ) ) { - // InternalTextualScenario.g:2238:1: ( ( rule__Operand__KeywordAssignment_0 )? ) - // InternalTextualScenario.g:2239:2: ( rule__Operand__KeywordAssignment_0 )? + // InternalTextualScenario.g:2363:1: ( ( rule__FoundMessage__NameAssignment_4 ) ) + // InternalTextualScenario.g:2364:2: ( rule__FoundMessage__NameAssignment_4 ) { - before(grammarAccess.getOperandAccess().getKeywordAssignment_0()); - // InternalTextualScenario.g:2240:2: ( rule__Operand__KeywordAssignment_0 )? - int alt16=2; - int LA16_0 = input.LA(1); - - if ( (LA16_0==43) ) { - alt16=1; - } - switch (alt16) { - case 1 : - // InternalTextualScenario.g:2240:3: rule__Operand__KeywordAssignment_0 - { - pushFollow(FOLLOW_2); - rule__Operand__KeywordAssignment_0(); - - state._fsp--; + before(grammarAccess.getFoundMessageAccess().getNameAssignment_4()); + // InternalTextualScenario.g:2365:2: ( rule__FoundMessage__NameAssignment_4 ) + // InternalTextualScenario.g:2365:3: rule__FoundMessage__NameAssignment_4 + { + pushFollow(FOLLOW_2); + rule__FoundMessage__NameAssignment_4(); + state._fsp--; - } - break; } - after(grammarAccess.getOperandAccess().getKeywordAssignment_0()); + after(grammarAccess.getFoundMessageAccess().getNameAssignment_4()); } @@ -7208,26 +7590,26 @@ public final void rule__Operand__Group__0__Impl() throws RecognitionException { } return ; } - // $ANTLR end "rule__Operand__Group__0__Impl" + // $ANTLR end "rule__FoundMessage__Group__4__Impl" - // $ANTLR start "rule__Operand__Group__1" - // InternalTextualScenario.g:2248:1: rule__Operand__Group__1 : rule__Operand__Group__1__Impl rule__Operand__Group__2 ; - public final void rule__Operand__Group__1() throws RecognitionException { + // $ANTLR start "rule__ParticipantDeactivation__Group__0" + // InternalTextualScenario.g:2374:1: rule__ParticipantDeactivation__Group__0 : rule__ParticipantDeactivation__Group__0__Impl rule__ParticipantDeactivation__Group__1 ; + public final void rule__ParticipantDeactivation__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2252:1: ( rule__Operand__Group__1__Impl rule__Operand__Group__2 ) - // InternalTextualScenario.g:2253:2: rule__Operand__Group__1__Impl rule__Operand__Group__2 + // InternalTextualScenario.g:2378:1: ( rule__ParticipantDeactivation__Group__0__Impl rule__ParticipantDeactivation__Group__1 ) + // InternalTextualScenario.g:2379:2: rule__ParticipantDeactivation__Group__0__Impl rule__ParticipantDeactivation__Group__1 { - pushFollow(FOLLOW_3); - rule__Operand__Group__1__Impl(); + pushFollow(FOLLOW_7); + rule__ParticipantDeactivation__Group__0__Impl(); state._fsp--; pushFollow(FOLLOW_2); - rule__Operand__Group__2(); + rule__ParticipantDeactivation__Group__1(); state._fsp--; @@ -7246,35 +7628,35 @@ public final void rule__Operand__Group__1() throws RecognitionException { } return ; } - // $ANTLR end "rule__Operand__Group__1" + // $ANTLR end "rule__ParticipantDeactivation__Group__0" - // $ANTLR start "rule__Operand__Group__1__Impl" - // InternalTextualScenario.g:2260:1: rule__Operand__Group__1__Impl : ( ( rule__Operand__ExpressionAssignment_1 ) ) ; - public final void rule__Operand__Group__1__Impl() throws RecognitionException { + // $ANTLR start "rule__ParticipantDeactivation__Group__0__Impl" + // InternalTextualScenario.g:2386:1: rule__ParticipantDeactivation__Group__0__Impl : ( ( rule__ParticipantDeactivation__KeywordAssignment_0 ) ) ; + public final void rule__ParticipantDeactivation__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2264:1: ( ( ( rule__Operand__ExpressionAssignment_1 ) ) ) - // InternalTextualScenario.g:2265:1: ( ( rule__Operand__ExpressionAssignment_1 ) ) + // InternalTextualScenario.g:2390:1: ( ( ( rule__ParticipantDeactivation__KeywordAssignment_0 ) ) ) + // InternalTextualScenario.g:2391:1: ( ( rule__ParticipantDeactivation__KeywordAssignment_0 ) ) { - // InternalTextualScenario.g:2265:1: ( ( rule__Operand__ExpressionAssignment_1 ) ) - // InternalTextualScenario.g:2266:2: ( rule__Operand__ExpressionAssignment_1 ) + // InternalTextualScenario.g:2391:1: ( ( rule__ParticipantDeactivation__KeywordAssignment_0 ) ) + // InternalTextualScenario.g:2392:2: ( rule__ParticipantDeactivation__KeywordAssignment_0 ) { - before(grammarAccess.getOperandAccess().getExpressionAssignment_1()); - // InternalTextualScenario.g:2267:2: ( rule__Operand__ExpressionAssignment_1 ) - // InternalTextualScenario.g:2267:3: rule__Operand__ExpressionAssignment_1 + before(grammarAccess.getParticipantDeactivationAccess().getKeywordAssignment_0()); + // InternalTextualScenario.g:2393:2: ( rule__ParticipantDeactivation__KeywordAssignment_0 ) + // InternalTextualScenario.g:2393:3: rule__ParticipantDeactivation__KeywordAssignment_0 { pushFollow(FOLLOW_2); - rule__Operand__ExpressionAssignment_1(); + rule__ParticipantDeactivation__KeywordAssignment_0(); state._fsp--; } - after(grammarAccess.getOperandAccess().getExpressionAssignment_1()); + after(grammarAccess.getParticipantDeactivationAccess().getKeywordAssignment_0()); } @@ -7293,21 +7675,21 @@ public final void rule__Operand__Group__1__Impl() throws RecognitionException { } return ; } - // $ANTLR end "rule__Operand__Group__1__Impl" + // $ANTLR end "rule__ParticipantDeactivation__Group__0__Impl" - // $ANTLR start "rule__Operand__Group__2" - // InternalTextualScenario.g:2275:1: rule__Operand__Group__2 : rule__Operand__Group__2__Impl ; - public final void rule__Operand__Group__2() throws RecognitionException { + // $ANTLR start "rule__ParticipantDeactivation__Group__1" + // InternalTextualScenario.g:2401:1: rule__ParticipantDeactivation__Group__1 : rule__ParticipantDeactivation__Group__1__Impl ; + public final void rule__ParticipantDeactivation__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2279:1: ( rule__Operand__Group__2__Impl ) - // InternalTextualScenario.g:2280:2: rule__Operand__Group__2__Impl + // InternalTextualScenario.g:2405:1: ( rule__ParticipantDeactivation__Group__1__Impl ) + // InternalTextualScenario.g:2406:2: rule__ParticipantDeactivation__Group__1__Impl { pushFollow(FOLLOW_2); - rule__Operand__Group__2__Impl(); + rule__ParticipantDeactivation__Group__1__Impl(); state._fsp--; @@ -7326,35 +7708,35 @@ public final void rule__Operand__Group__2() throws RecognitionException { } return ; } - // $ANTLR end "rule__Operand__Group__2" + // $ANTLR end "rule__ParticipantDeactivation__Group__1" - // $ANTLR start "rule__Operand__Group__2__Impl" - // InternalTextualScenario.g:2286:1: rule__Operand__Group__2__Impl : ( ( rule__Operand__BlockAssignment_2 ) ) ; - public final void rule__Operand__Group__2__Impl() throws RecognitionException { + // $ANTLR start "rule__ParticipantDeactivation__Group__1__Impl" + // InternalTextualScenario.g:2412:1: rule__ParticipantDeactivation__Group__1__Impl : ( ( rule__ParticipantDeactivation__NameAssignment_1 ) ) ; + public final void rule__ParticipantDeactivation__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2290:1: ( ( ( rule__Operand__BlockAssignment_2 ) ) ) - // InternalTextualScenario.g:2291:1: ( ( rule__Operand__BlockAssignment_2 ) ) + // InternalTextualScenario.g:2416:1: ( ( ( rule__ParticipantDeactivation__NameAssignment_1 ) ) ) + // InternalTextualScenario.g:2417:1: ( ( rule__ParticipantDeactivation__NameAssignment_1 ) ) { - // InternalTextualScenario.g:2291:1: ( ( rule__Operand__BlockAssignment_2 ) ) - // InternalTextualScenario.g:2292:2: ( rule__Operand__BlockAssignment_2 ) + // InternalTextualScenario.g:2417:1: ( ( rule__ParticipantDeactivation__NameAssignment_1 ) ) + // InternalTextualScenario.g:2418:2: ( rule__ParticipantDeactivation__NameAssignment_1 ) { - before(grammarAccess.getOperandAccess().getBlockAssignment_2()); - // InternalTextualScenario.g:2293:2: ( rule__Operand__BlockAssignment_2 ) - // InternalTextualScenario.g:2293:3: rule__Operand__BlockAssignment_2 + before(grammarAccess.getParticipantDeactivationAccess().getNameAssignment_1()); + // InternalTextualScenario.g:2419:2: ( rule__ParticipantDeactivation__NameAssignment_1 ) + // InternalTextualScenario.g:2419:3: rule__ParticipantDeactivation__NameAssignment_1 { pushFollow(FOLLOW_2); - rule__Operand__BlockAssignment_2(); + rule__ParticipantDeactivation__NameAssignment_1(); state._fsp--; } - after(grammarAccess.getOperandAccess().getBlockAssignment_2()); + after(grammarAccess.getParticipantDeactivationAccess().getNameAssignment_1()); } @@ -7373,26 +7755,26 @@ public final void rule__Operand__Group__2__Impl() throws RecognitionException { } return ; } - // $ANTLR end "rule__Operand__Group__2__Impl" + // $ANTLR end "rule__ParticipantDeactivation__Group__1__Impl" - // $ANTLR start "rule__Block__Group__0" - // InternalTextualScenario.g:2302:1: rule__Block__Group__0 : rule__Block__Group__0__Impl rule__Block__Group__1 ; - public final void rule__Block__Group__0() throws RecognitionException { + // $ANTLR start "rule__CombinedFragment__Group__0" + // InternalTextualScenario.g:2428:1: rule__CombinedFragment__Group__0 : rule__CombinedFragment__Group__0__Impl rule__CombinedFragment__Group__1 ; + public final void rule__CombinedFragment__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2306:1: ( rule__Block__Group__0__Impl rule__Block__Group__1 ) - // InternalTextualScenario.g:2307:2: rule__Block__Group__0__Impl rule__Block__Group__1 + // InternalTextualScenario.g:2432:1: ( rule__CombinedFragment__Group__0__Impl rule__CombinedFragment__Group__1 ) + // InternalTextualScenario.g:2433:2: rule__CombinedFragment__Group__0__Impl rule__CombinedFragment__Group__1 { - pushFollow(FOLLOW_18); - rule__Block__Group__0__Impl(); + pushFollow(FOLLOW_15); + rule__CombinedFragment__Group__0__Impl(); state._fsp--; pushFollow(FOLLOW_2); - rule__Block__Group__1(); + rule__CombinedFragment__Group__1(); state._fsp--; @@ -7411,35 +7793,35 @@ public final void rule__Block__Group__0() throws RecognitionException { } return ; } - // $ANTLR end "rule__Block__Group__0" + // $ANTLR end "rule__CombinedFragment__Group__0" - // $ANTLR start "rule__Block__Group__0__Impl" - // InternalTextualScenario.g:2314:1: rule__Block__Group__0__Impl : ( ( rule__Block__BeginAssignment_0 ) ) ; - public final void rule__Block__Group__0__Impl() throws RecognitionException { + // $ANTLR start "rule__CombinedFragment__Group__0__Impl" + // InternalTextualScenario.g:2440:1: rule__CombinedFragment__Group__0__Impl : ( ( rule__CombinedFragment__KeywordAssignment_0 ) ) ; + public final void rule__CombinedFragment__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2318:1: ( ( ( rule__Block__BeginAssignment_0 ) ) ) - // InternalTextualScenario.g:2319:1: ( ( rule__Block__BeginAssignment_0 ) ) + // InternalTextualScenario.g:2444:1: ( ( ( rule__CombinedFragment__KeywordAssignment_0 ) ) ) + // InternalTextualScenario.g:2445:1: ( ( rule__CombinedFragment__KeywordAssignment_0 ) ) { - // InternalTextualScenario.g:2319:1: ( ( rule__Block__BeginAssignment_0 ) ) - // InternalTextualScenario.g:2320:2: ( rule__Block__BeginAssignment_0 ) + // InternalTextualScenario.g:2445:1: ( ( rule__CombinedFragment__KeywordAssignment_0 ) ) + // InternalTextualScenario.g:2446:2: ( rule__CombinedFragment__KeywordAssignment_0 ) { - before(grammarAccess.getBlockAccess().getBeginAssignment_0()); - // InternalTextualScenario.g:2321:2: ( rule__Block__BeginAssignment_0 ) - // InternalTextualScenario.g:2321:3: rule__Block__BeginAssignment_0 + before(grammarAccess.getCombinedFragmentAccess().getKeywordAssignment_0()); + // InternalTextualScenario.g:2447:2: ( rule__CombinedFragment__KeywordAssignment_0 ) + // InternalTextualScenario.g:2447:3: rule__CombinedFragment__KeywordAssignment_0 { pushFollow(FOLLOW_2); - rule__Block__BeginAssignment_0(); + rule__CombinedFragment__KeywordAssignment_0(); state._fsp--; } - after(grammarAccess.getBlockAccess().getBeginAssignment_0()); + after(grammarAccess.getCombinedFragmentAccess().getKeywordAssignment_0()); } @@ -7458,26 +7840,26 @@ public final void rule__Block__Group__0__Impl() throws RecognitionException { } return ; } - // $ANTLR end "rule__Block__Group__0__Impl" + // $ANTLR end "rule__CombinedFragment__Group__0__Impl" - // $ANTLR start "rule__Block__Group__1" - // InternalTextualScenario.g:2329:1: rule__Block__Group__1 : rule__Block__Group__1__Impl rule__Block__Group__2 ; - public final void rule__Block__Group__1() throws RecognitionException { + // $ANTLR start "rule__CombinedFragment__Group__1" + // InternalTextualScenario.g:2455:1: rule__CombinedFragment__Group__1 : rule__CombinedFragment__Group__1__Impl rule__CombinedFragment__Group__2 ; + public final void rule__CombinedFragment__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2333:1: ( rule__Block__Group__1__Impl rule__Block__Group__2 ) - // InternalTextualScenario.g:2334:2: rule__Block__Group__1__Impl rule__Block__Group__2 + // InternalTextualScenario.g:2459:1: ( rule__CombinedFragment__Group__1__Impl rule__CombinedFragment__Group__2 ) + // InternalTextualScenario.g:2460:2: rule__CombinedFragment__Group__1__Impl rule__CombinedFragment__Group__2 { - pushFollow(FOLLOW_18); - rule__Block__Group__1__Impl(); + pushFollow(FOLLOW_15); + rule__CombinedFragment__Group__1__Impl(); state._fsp--; pushFollow(FOLLOW_2); - rule__Block__Group__2(); + rule__CombinedFragment__Group__2(); state._fsp--; @@ -7496,53 +7878,46 @@ public final void rule__Block__Group__1() throws RecognitionException { } return ; } - // $ANTLR end "rule__Block__Group__1" + // $ANTLR end "rule__CombinedFragment__Group__1" - // $ANTLR start "rule__Block__Group__1__Impl" - // InternalTextualScenario.g:2341:1: rule__Block__Group__1__Impl : ( ( rule__Block__BlockElementsAssignment_1 )* ) ; - public final void rule__Block__Group__1__Impl() throws RecognitionException { + // $ANTLR start "rule__CombinedFragment__Group__1__Impl" + // InternalTextualScenario.g:2467:1: rule__CombinedFragment__Group__1__Impl : ( ( rule__CombinedFragment__ExpressionAssignment_1 )? ) ; + public final void rule__CombinedFragment__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2345:1: ( ( ( rule__Block__BlockElementsAssignment_1 )* ) ) - // InternalTextualScenario.g:2346:1: ( ( rule__Block__BlockElementsAssignment_1 )* ) + // InternalTextualScenario.g:2471:1: ( ( ( rule__CombinedFragment__ExpressionAssignment_1 )? ) ) + // InternalTextualScenario.g:2472:1: ( ( rule__CombinedFragment__ExpressionAssignment_1 )? ) { - // InternalTextualScenario.g:2346:1: ( ( rule__Block__BlockElementsAssignment_1 )* ) - // InternalTextualScenario.g:2347:2: ( rule__Block__BlockElementsAssignment_1 )* + // InternalTextualScenario.g:2472:1: ( ( rule__CombinedFragment__ExpressionAssignment_1 )? ) + // InternalTextualScenario.g:2473:2: ( rule__CombinedFragment__ExpressionAssignment_1 )? { - before(grammarAccess.getBlockAccess().getBlockElementsAssignment_1()); - // InternalTextualScenario.g:2348:2: ( rule__Block__BlockElementsAssignment_1 )* - loop17: - do { - int alt17=2; - int LA17_0 = input.LA(1); - - if ( (LA17_0==RULE_STRING||(LA17_0>=11 && LA17_0<=21)||(LA17_0>=40 && LA17_0<=41)||LA17_0==44) ) { - alt17=1; - } - + before(grammarAccess.getCombinedFragmentAccess().getExpressionAssignment_1()); + // InternalTextualScenario.g:2474:2: ( rule__CombinedFragment__ExpressionAssignment_1 )? + int alt16=2; + int LA16_0 = input.LA(1); - switch (alt17) { - case 1 : - // InternalTextualScenario.g:2348:3: rule__Block__BlockElementsAssignment_1 - { - pushFollow(FOLLOW_6); - rule__Block__BlockElementsAssignment_1(); + if ( (LA16_0==RULE_STRING) ) { + alt16=1; + } + switch (alt16) { + case 1 : + // InternalTextualScenario.g:2474:3: rule__CombinedFragment__ExpressionAssignment_1 + { + pushFollow(FOLLOW_2); + rule__CombinedFragment__ExpressionAssignment_1(); - state._fsp--; + state._fsp--; - } - break; + } + break; - default : - break loop17; - } - } while (true); + } - after(grammarAccess.getBlockAccess().getBlockElementsAssignment_1()); + after(grammarAccess.getCombinedFragmentAccess().getExpressionAssignment_1()); } @@ -7561,21 +7936,26 @@ public final void rule__Block__Group__1__Impl() throws RecognitionException { } return ; } - // $ANTLR end "rule__Block__Group__1__Impl" + // $ANTLR end "rule__CombinedFragment__Group__1__Impl" - // $ANTLR start "rule__Block__Group__2" - // InternalTextualScenario.g:2356:1: rule__Block__Group__2 : rule__Block__Group__2__Impl ; - public final void rule__Block__Group__2() throws RecognitionException { + // $ANTLR start "rule__CombinedFragment__Group__2" + // InternalTextualScenario.g:2482:1: rule__CombinedFragment__Group__2 : rule__CombinedFragment__Group__2__Impl rule__CombinedFragment__Group__3 ; + public final void rule__CombinedFragment__Group__2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2360:1: ( rule__Block__Group__2__Impl ) - // InternalTextualScenario.g:2361:2: rule__Block__Group__2__Impl + // InternalTextualScenario.g:2486:1: ( rule__CombinedFragment__Group__2__Impl rule__CombinedFragment__Group__3 ) + // InternalTextualScenario.g:2487:2: rule__CombinedFragment__Group__2__Impl rule__CombinedFragment__Group__3 { + pushFollow(FOLLOW_7); + rule__CombinedFragment__Group__2__Impl(); + + state._fsp--; + pushFollow(FOLLOW_2); - rule__Block__Group__2__Impl(); + rule__CombinedFragment__Group__3(); state._fsp--; @@ -7594,35 +7974,35 @@ public final void rule__Block__Group__2() throws RecognitionException { } return ; } - // $ANTLR end "rule__Block__Group__2" + // $ANTLR end "rule__CombinedFragment__Group__2" - // $ANTLR start "rule__Block__Group__2__Impl" - // InternalTextualScenario.g:2367:1: rule__Block__Group__2__Impl : ( ( rule__Block__EndAssignment_2 ) ) ; - public final void rule__Block__Group__2__Impl() throws RecognitionException { + // $ANTLR start "rule__CombinedFragment__Group__2__Impl" + // InternalTextualScenario.g:2494:1: rule__CombinedFragment__Group__2__Impl : ( ( rule__CombinedFragment__OverAssignment_2 ) ) ; + public final void rule__CombinedFragment__Group__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2371:1: ( ( ( rule__Block__EndAssignment_2 ) ) ) - // InternalTextualScenario.g:2372:1: ( ( rule__Block__EndAssignment_2 ) ) + // InternalTextualScenario.g:2498:1: ( ( ( rule__CombinedFragment__OverAssignment_2 ) ) ) + // InternalTextualScenario.g:2499:1: ( ( rule__CombinedFragment__OverAssignment_2 ) ) { - // InternalTextualScenario.g:2372:1: ( ( rule__Block__EndAssignment_2 ) ) - // InternalTextualScenario.g:2373:2: ( rule__Block__EndAssignment_2 ) + // InternalTextualScenario.g:2499:1: ( ( rule__CombinedFragment__OverAssignment_2 ) ) + // InternalTextualScenario.g:2500:2: ( rule__CombinedFragment__OverAssignment_2 ) { - before(grammarAccess.getBlockAccess().getEndAssignment_2()); - // InternalTextualScenario.g:2374:2: ( rule__Block__EndAssignment_2 ) - // InternalTextualScenario.g:2374:3: rule__Block__EndAssignment_2 + before(grammarAccess.getCombinedFragmentAccess().getOverAssignment_2()); + // InternalTextualScenario.g:2501:2: ( rule__CombinedFragment__OverAssignment_2 ) + // InternalTextualScenario.g:2501:3: rule__CombinedFragment__OverAssignment_2 { pushFollow(FOLLOW_2); - rule__Block__EndAssignment_2(); + rule__CombinedFragment__OverAssignment_2(); state._fsp--; } - after(grammarAccess.getBlockAccess().getEndAssignment_2()); + after(grammarAccess.getCombinedFragmentAccess().getOverAssignment_2()); } @@ -7641,26 +8021,26 @@ public final void rule__Block__Group__2__Impl() throws RecognitionException { } return ; } - // $ANTLR end "rule__Block__Group__2__Impl" + // $ANTLR end "rule__CombinedFragment__Group__2__Impl" - // $ANTLR start "rule__StateFragment__Group__0" - // InternalTextualScenario.g:2383:1: rule__StateFragment__Group__0 : rule__StateFragment__Group__0__Impl rule__StateFragment__Group__1 ; - public final void rule__StateFragment__Group__0() throws RecognitionException { + // $ANTLR start "rule__CombinedFragment__Group__3" + // InternalTextualScenario.g:2509:1: rule__CombinedFragment__Group__3 : rule__CombinedFragment__Group__3__Impl rule__CombinedFragment__Group__4 ; + public final void rule__CombinedFragment__Group__3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2387:1: ( rule__StateFragment__Group__0__Impl rule__StateFragment__Group__1 ) - // InternalTextualScenario.g:2388:2: rule__StateFragment__Group__0__Impl rule__StateFragment__Group__1 + // InternalTextualScenario.g:2513:1: ( rule__CombinedFragment__Group__3__Impl rule__CombinedFragment__Group__4 ) + // InternalTextualScenario.g:2514:2: rule__CombinedFragment__Group__3__Impl rule__CombinedFragment__Group__4 { - pushFollow(FOLLOW_7); - rule__StateFragment__Group__0__Impl(); + pushFollow(FOLLOW_3); + rule__CombinedFragment__Group__3__Impl(); state._fsp--; pushFollow(FOLLOW_2); - rule__StateFragment__Group__1(); + rule__CombinedFragment__Group__4(); state._fsp--; @@ -7679,73 +8059,1433 @@ public final void rule__StateFragment__Group__0() throws RecognitionException { } return ; } - // $ANTLR end "rule__StateFragment__Group__0" + // $ANTLR end "rule__CombinedFragment__Group__3" - // $ANTLR start "rule__StateFragment__Group__0__Impl" - // InternalTextualScenario.g:2395:1: rule__StateFragment__Group__0__Impl : ( ( rule__StateFragment__OnAssignment_0 ) ) ; - public final void rule__StateFragment__Group__0__Impl() throws RecognitionException { + // $ANTLR start "rule__CombinedFragment__Group__3__Impl" + // InternalTextualScenario.g:2521:1: rule__CombinedFragment__Group__3__Impl : ( ( ( rule__CombinedFragment__TimelinesAssignment_3 ) ) ( ( rule__CombinedFragment__TimelinesAssignment_3 )* ) ) ; + public final void rule__CombinedFragment__Group__3__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2399:1: ( ( ( rule__StateFragment__OnAssignment_0 ) ) ) - // InternalTextualScenario.g:2400:1: ( ( rule__StateFragment__OnAssignment_0 ) ) + // InternalTextualScenario.g:2525:1: ( ( ( ( rule__CombinedFragment__TimelinesAssignment_3 ) ) ( ( rule__CombinedFragment__TimelinesAssignment_3 )* ) ) ) + // InternalTextualScenario.g:2526:1: ( ( ( rule__CombinedFragment__TimelinesAssignment_3 ) ) ( ( rule__CombinedFragment__TimelinesAssignment_3 )* ) ) { - // InternalTextualScenario.g:2400:1: ( ( rule__StateFragment__OnAssignment_0 ) ) - // InternalTextualScenario.g:2401:2: ( rule__StateFragment__OnAssignment_0 ) + // InternalTextualScenario.g:2526:1: ( ( ( rule__CombinedFragment__TimelinesAssignment_3 ) ) ( ( rule__CombinedFragment__TimelinesAssignment_3 )* ) ) + // InternalTextualScenario.g:2527:2: ( ( rule__CombinedFragment__TimelinesAssignment_3 ) ) ( ( rule__CombinedFragment__TimelinesAssignment_3 )* ) { - before(grammarAccess.getStateFragmentAccess().getOnAssignment_0()); - // InternalTextualScenario.g:2402:2: ( rule__StateFragment__OnAssignment_0 ) - // InternalTextualScenario.g:2402:3: rule__StateFragment__OnAssignment_0 + // InternalTextualScenario.g:2527:2: ( ( rule__CombinedFragment__TimelinesAssignment_3 ) ) + // InternalTextualScenario.g:2528:3: ( rule__CombinedFragment__TimelinesAssignment_3 ) { - pushFollow(FOLLOW_2); - rule__StateFragment__OnAssignment_0(); + before(grammarAccess.getCombinedFragmentAccess().getTimelinesAssignment_3()); + // InternalTextualScenario.g:2529:3: ( rule__CombinedFragment__TimelinesAssignment_3 ) + // InternalTextualScenario.g:2529:4: rule__CombinedFragment__TimelinesAssignment_3 + { + pushFollow(FOLLOW_16); + rule__CombinedFragment__TimelinesAssignment_3(); state._fsp--; } - after(grammarAccess.getStateFragmentAccess().getOnAssignment_0()); + after(grammarAccess.getCombinedFragmentAccess().getTimelinesAssignment_3()); } + // InternalTextualScenario.g:2532:2: ( ( rule__CombinedFragment__TimelinesAssignment_3 )* ) + // InternalTextualScenario.g:2533:3: ( rule__CombinedFragment__TimelinesAssignment_3 )* + { + before(grammarAccess.getCombinedFragmentAccess().getTimelinesAssignment_3()); + // InternalTextualScenario.g:2534:3: ( rule__CombinedFragment__TimelinesAssignment_3 )* + loop17: + do { + int alt17=2; + int LA17_0 = input.LA(1); - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - finally { + if ( (LA17_0==RULE_STRING) ) { + alt17=1; + } - restoreStackSize(stackSize); - } - return ; - } - // $ANTLR end "rule__StateFragment__Group__0__Impl" + switch (alt17) { + case 1 : + // InternalTextualScenario.g:2534:4: rule__CombinedFragment__TimelinesAssignment_3 + { + pushFollow(FOLLOW_16); + rule__CombinedFragment__TimelinesAssignment_3(); + state._fsp--; - // $ANTLR start "rule__StateFragment__Group__1" - // InternalTextualScenario.g:2410:1: rule__StateFragment__Group__1 : rule__StateFragment__Group__1__Impl rule__StateFragment__Group__2 ; - public final void rule__StateFragment__Group__1() throws RecognitionException { + + } + break; + + default : + break loop17; + } + } while (true); + + after(grammarAccess.getCombinedFragmentAccess().getTimelinesAssignment_3()); + + } + + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CombinedFragment__Group__3__Impl" + + + // $ANTLR start "rule__CombinedFragment__Group__4" + // InternalTextualScenario.g:2543:1: rule__CombinedFragment__Group__4 : rule__CombinedFragment__Group__4__Impl rule__CombinedFragment__Group__5 ; + public final void rule__CombinedFragment__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2547:1: ( rule__CombinedFragment__Group__4__Impl rule__CombinedFragment__Group__5 ) + // InternalTextualScenario.g:2548:2: rule__CombinedFragment__Group__4__Impl rule__CombinedFragment__Group__5 + { + pushFollow(FOLLOW_17); + rule__CombinedFragment__Group__4__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__CombinedFragment__Group__5(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CombinedFragment__Group__4" + + + // $ANTLR start "rule__CombinedFragment__Group__4__Impl" + // InternalTextualScenario.g:2555:1: rule__CombinedFragment__Group__4__Impl : ( ( rule__CombinedFragment__BlockAssignment_4 ) ) ; + public final void rule__CombinedFragment__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2559:1: ( ( ( rule__CombinedFragment__BlockAssignment_4 ) ) ) + // InternalTextualScenario.g:2560:1: ( ( rule__CombinedFragment__BlockAssignment_4 ) ) + { + // InternalTextualScenario.g:2560:1: ( ( rule__CombinedFragment__BlockAssignment_4 ) ) + // InternalTextualScenario.g:2561:2: ( rule__CombinedFragment__BlockAssignment_4 ) + { + before(grammarAccess.getCombinedFragmentAccess().getBlockAssignment_4()); + // InternalTextualScenario.g:2562:2: ( rule__CombinedFragment__BlockAssignment_4 ) + // InternalTextualScenario.g:2562:3: rule__CombinedFragment__BlockAssignment_4 + { + pushFollow(FOLLOW_2); + rule__CombinedFragment__BlockAssignment_4(); + + state._fsp--; + + + } + + after(grammarAccess.getCombinedFragmentAccess().getBlockAssignment_4()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CombinedFragment__Group__4__Impl" + + + // $ANTLR start "rule__CombinedFragment__Group__5" + // InternalTextualScenario.g:2570:1: rule__CombinedFragment__Group__5 : rule__CombinedFragment__Group__5__Impl ; + public final void rule__CombinedFragment__Group__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2574:1: ( rule__CombinedFragment__Group__5__Impl ) + // InternalTextualScenario.g:2575:2: rule__CombinedFragment__Group__5__Impl + { + pushFollow(FOLLOW_2); + rule__CombinedFragment__Group__5__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CombinedFragment__Group__5" + + + // $ANTLR start "rule__CombinedFragment__Group__5__Impl" + // InternalTextualScenario.g:2581:1: rule__CombinedFragment__Group__5__Impl : ( ( rule__CombinedFragment__OperandsAssignment_5 )* ) ; + public final void rule__CombinedFragment__Group__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2585:1: ( ( ( rule__CombinedFragment__OperandsAssignment_5 )* ) ) + // InternalTextualScenario.g:2586:1: ( ( rule__CombinedFragment__OperandsAssignment_5 )* ) + { + // InternalTextualScenario.g:2586:1: ( ( rule__CombinedFragment__OperandsAssignment_5 )* ) + // InternalTextualScenario.g:2587:2: ( rule__CombinedFragment__OperandsAssignment_5 )* + { + before(grammarAccess.getCombinedFragmentAccess().getOperandsAssignment_5()); + // InternalTextualScenario.g:2588:2: ( rule__CombinedFragment__OperandsAssignment_5 )* + loop18: + do { + int alt18=2; + int LA18_0 = input.LA(1); + + if ( (LA18_0==RULE_STRING) ) { + int LA18_2 = input.LA(2); + + if ( (LA18_2==26) ) { + alt18=1; + } + + + } + else if ( (LA18_0==26||LA18_0==45) ) { + alt18=1; + } + + + switch (alt18) { + case 1 : + // InternalTextualScenario.g:2588:3: rule__CombinedFragment__OperandsAssignment_5 + { + pushFollow(FOLLOW_18); + rule__CombinedFragment__OperandsAssignment_5(); + + state._fsp--; + + + } + break; + + default : + break loop18; + } + } while (true); + + after(grammarAccess.getCombinedFragmentAccess().getOperandsAssignment_5()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CombinedFragment__Group__5__Impl" + + + // $ANTLR start "rule__Operand__Group__0" + // InternalTextualScenario.g:2597:1: rule__Operand__Group__0 : rule__Operand__Group__0__Impl rule__Operand__Group__1 ; + public final void rule__Operand__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2601:1: ( rule__Operand__Group__0__Impl rule__Operand__Group__1 ) + // InternalTextualScenario.g:2602:2: rule__Operand__Group__0__Impl rule__Operand__Group__1 + { + pushFollow(FOLLOW_17); + rule__Operand__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__Operand__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Operand__Group__0" + + + // $ANTLR start "rule__Operand__Group__0__Impl" + // InternalTextualScenario.g:2609:1: rule__Operand__Group__0__Impl : ( ( rule__Operand__KeywordAssignment_0 )? ) ; + public final void rule__Operand__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2613:1: ( ( ( rule__Operand__KeywordAssignment_0 )? ) ) + // InternalTextualScenario.g:2614:1: ( ( rule__Operand__KeywordAssignment_0 )? ) + { + // InternalTextualScenario.g:2614:1: ( ( rule__Operand__KeywordAssignment_0 )? ) + // InternalTextualScenario.g:2615:2: ( rule__Operand__KeywordAssignment_0 )? + { + before(grammarAccess.getOperandAccess().getKeywordAssignment_0()); + // InternalTextualScenario.g:2616:2: ( rule__Operand__KeywordAssignment_0 )? + int alt19=2; + int LA19_0 = input.LA(1); + + if ( (LA19_0==45) ) { + alt19=1; + } + switch (alt19) { + case 1 : + // InternalTextualScenario.g:2616:3: rule__Operand__KeywordAssignment_0 + { + pushFollow(FOLLOW_2); + rule__Operand__KeywordAssignment_0(); + + state._fsp--; + + + } + break; + + } + + after(grammarAccess.getOperandAccess().getKeywordAssignment_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Operand__Group__0__Impl" + + + // $ANTLR start "rule__Operand__Group__1" + // InternalTextualScenario.g:2624:1: rule__Operand__Group__1 : rule__Operand__Group__1__Impl rule__Operand__Group__2 ; + public final void rule__Operand__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2628:1: ( rule__Operand__Group__1__Impl rule__Operand__Group__2 ) + // InternalTextualScenario.g:2629:2: rule__Operand__Group__1__Impl rule__Operand__Group__2 + { + pushFollow(FOLLOW_17); + rule__Operand__Group__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__Operand__Group__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Operand__Group__1" + + + // $ANTLR start "rule__Operand__Group__1__Impl" + // InternalTextualScenario.g:2636:1: rule__Operand__Group__1__Impl : ( ( rule__Operand__ExpressionAssignment_1 )? ) ; + public final void rule__Operand__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2640:1: ( ( ( rule__Operand__ExpressionAssignment_1 )? ) ) + // InternalTextualScenario.g:2641:1: ( ( rule__Operand__ExpressionAssignment_1 )? ) + { + // InternalTextualScenario.g:2641:1: ( ( rule__Operand__ExpressionAssignment_1 )? ) + // InternalTextualScenario.g:2642:2: ( rule__Operand__ExpressionAssignment_1 )? + { + before(grammarAccess.getOperandAccess().getExpressionAssignment_1()); + // InternalTextualScenario.g:2643:2: ( rule__Operand__ExpressionAssignment_1 )? + int alt20=2; + int LA20_0 = input.LA(1); + + if ( (LA20_0==RULE_STRING) ) { + alt20=1; + } + switch (alt20) { + case 1 : + // InternalTextualScenario.g:2643:3: rule__Operand__ExpressionAssignment_1 + { + pushFollow(FOLLOW_2); + rule__Operand__ExpressionAssignment_1(); + + state._fsp--; + + + } + break; + + } + + after(grammarAccess.getOperandAccess().getExpressionAssignment_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Operand__Group__1__Impl" + + + // $ANTLR start "rule__Operand__Group__2" + // InternalTextualScenario.g:2651:1: rule__Operand__Group__2 : rule__Operand__Group__2__Impl ; + public final void rule__Operand__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2655:1: ( rule__Operand__Group__2__Impl ) + // InternalTextualScenario.g:2656:2: rule__Operand__Group__2__Impl + { + pushFollow(FOLLOW_2); + rule__Operand__Group__2__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Operand__Group__2" + + + // $ANTLR start "rule__Operand__Group__2__Impl" + // InternalTextualScenario.g:2662:1: rule__Operand__Group__2__Impl : ( ( rule__Operand__BlockAssignment_2 ) ) ; + public final void rule__Operand__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2666:1: ( ( ( rule__Operand__BlockAssignment_2 ) ) ) + // InternalTextualScenario.g:2667:1: ( ( rule__Operand__BlockAssignment_2 ) ) + { + // InternalTextualScenario.g:2667:1: ( ( rule__Operand__BlockAssignment_2 ) ) + // InternalTextualScenario.g:2668:2: ( rule__Operand__BlockAssignment_2 ) + { + before(grammarAccess.getOperandAccess().getBlockAssignment_2()); + // InternalTextualScenario.g:2669:2: ( rule__Operand__BlockAssignment_2 ) + // InternalTextualScenario.g:2669:3: rule__Operand__BlockAssignment_2 + { + pushFollow(FOLLOW_2); + rule__Operand__BlockAssignment_2(); + + state._fsp--; + + + } + + after(grammarAccess.getOperandAccess().getBlockAssignment_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Operand__Group__2__Impl" + + + // $ANTLR start "rule__Block__Group__0" + // InternalTextualScenario.g:2678:1: rule__Block__Group__0 : rule__Block__Group__0__Impl rule__Block__Group__1 ; + public final void rule__Block__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2682:1: ( rule__Block__Group__0__Impl rule__Block__Group__1 ) + // InternalTextualScenario.g:2683:2: rule__Block__Group__0__Impl rule__Block__Group__1 + { + pushFollow(FOLLOW_19); + rule__Block__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__Block__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Block__Group__0" + + + // $ANTLR start "rule__Block__Group__0__Impl" + // InternalTextualScenario.g:2690:1: rule__Block__Group__0__Impl : ( ( rule__Block__BeginAssignment_0 ) ) ; + public final void rule__Block__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2694:1: ( ( ( rule__Block__BeginAssignment_0 ) ) ) + // InternalTextualScenario.g:2695:1: ( ( rule__Block__BeginAssignment_0 ) ) + { + // InternalTextualScenario.g:2695:1: ( ( rule__Block__BeginAssignment_0 ) ) + // InternalTextualScenario.g:2696:2: ( rule__Block__BeginAssignment_0 ) + { + before(grammarAccess.getBlockAccess().getBeginAssignment_0()); + // InternalTextualScenario.g:2697:2: ( rule__Block__BeginAssignment_0 ) + // InternalTextualScenario.g:2697:3: rule__Block__BeginAssignment_0 + { + pushFollow(FOLLOW_2); + rule__Block__BeginAssignment_0(); + + state._fsp--; + + + } + + after(grammarAccess.getBlockAccess().getBeginAssignment_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Block__Group__0__Impl" + + + // $ANTLR start "rule__Block__Group__1" + // InternalTextualScenario.g:2705:1: rule__Block__Group__1 : rule__Block__Group__1__Impl rule__Block__Group__2 ; + public final void rule__Block__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2709:1: ( rule__Block__Group__1__Impl rule__Block__Group__2 ) + // InternalTextualScenario.g:2710:2: rule__Block__Group__1__Impl rule__Block__Group__2 + { + pushFollow(FOLLOW_19); + rule__Block__Group__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__Block__Group__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Block__Group__1" + + + // $ANTLR start "rule__Block__Group__1__Impl" + // InternalTextualScenario.g:2717:1: rule__Block__Group__1__Impl : ( ( rule__Block__BlockElementsAssignment_1 )* ) ; + public final void rule__Block__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2721:1: ( ( ( rule__Block__BlockElementsAssignment_1 )* ) ) + // InternalTextualScenario.g:2722:1: ( ( rule__Block__BlockElementsAssignment_1 )* ) + { + // InternalTextualScenario.g:2722:1: ( ( rule__Block__BlockElementsAssignment_1 )* ) + // InternalTextualScenario.g:2723:2: ( rule__Block__BlockElementsAssignment_1 )* + { + before(grammarAccess.getBlockAccess().getBlockElementsAssignment_1()); + // InternalTextualScenario.g:2724:2: ( rule__Block__BlockElementsAssignment_1 )* + loop21: + do { + int alt21=2; + int LA21_0 = input.LA(1); + + if ( (LA21_0==RULE_STRING||(LA21_0>=11 && LA21_0<=21)||LA21_0==40||(LA21_0>=42 && LA21_0<=43)||(LA21_0>=46 && LA21_0<=47)) ) { + alt21=1; + } + + + switch (alt21) { + case 1 : + // InternalTextualScenario.g:2724:3: rule__Block__BlockElementsAssignment_1 + { + pushFollow(FOLLOW_6); + rule__Block__BlockElementsAssignment_1(); + + state._fsp--; + + + } + break; + + default : + break loop21; + } + } while (true); + + after(grammarAccess.getBlockAccess().getBlockElementsAssignment_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Block__Group__1__Impl" + + + // $ANTLR start "rule__Block__Group__2" + // InternalTextualScenario.g:2732:1: rule__Block__Group__2 : rule__Block__Group__2__Impl ; + public final void rule__Block__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2736:1: ( rule__Block__Group__2__Impl ) + // InternalTextualScenario.g:2737:2: rule__Block__Group__2__Impl + { + pushFollow(FOLLOW_2); + rule__Block__Group__2__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Block__Group__2" + + + // $ANTLR start "rule__Block__Group__2__Impl" + // InternalTextualScenario.g:2743:1: rule__Block__Group__2__Impl : ( ( rule__Block__EndAssignment_2 ) ) ; + public final void rule__Block__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2747:1: ( ( ( rule__Block__EndAssignment_2 ) ) ) + // InternalTextualScenario.g:2748:1: ( ( rule__Block__EndAssignment_2 ) ) + { + // InternalTextualScenario.g:2748:1: ( ( rule__Block__EndAssignment_2 ) ) + // InternalTextualScenario.g:2749:2: ( rule__Block__EndAssignment_2 ) + { + before(grammarAccess.getBlockAccess().getEndAssignment_2()); + // InternalTextualScenario.g:2750:2: ( rule__Block__EndAssignment_2 ) + // InternalTextualScenario.g:2750:3: rule__Block__EndAssignment_2 + { + pushFollow(FOLLOW_2); + rule__Block__EndAssignment_2(); + + state._fsp--; + + + } + + after(grammarAccess.getBlockAccess().getEndAssignment_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Block__Group__2__Impl" + + + // $ANTLR start "rule__StateFragment__Group__0" + // InternalTextualScenario.g:2759:1: rule__StateFragment__Group__0 : rule__StateFragment__Group__0__Impl rule__StateFragment__Group__1 ; + public final void rule__StateFragment__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2763:1: ( rule__StateFragment__Group__0__Impl rule__StateFragment__Group__1 ) + // InternalTextualScenario.g:2764:2: rule__StateFragment__Group__0__Impl rule__StateFragment__Group__1 + { + pushFollow(FOLLOW_7); + rule__StateFragment__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__StateFragment__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StateFragment__Group__0" + + + // $ANTLR start "rule__StateFragment__Group__0__Impl" + // InternalTextualScenario.g:2771:1: rule__StateFragment__Group__0__Impl : ( ( rule__StateFragment__OnAssignment_0 ) ) ; + public final void rule__StateFragment__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2775:1: ( ( ( rule__StateFragment__OnAssignment_0 ) ) ) + // InternalTextualScenario.g:2776:1: ( ( rule__StateFragment__OnAssignment_0 ) ) + { + // InternalTextualScenario.g:2776:1: ( ( rule__StateFragment__OnAssignment_0 ) ) + // InternalTextualScenario.g:2777:2: ( rule__StateFragment__OnAssignment_0 ) + { + before(grammarAccess.getStateFragmentAccess().getOnAssignment_0()); + // InternalTextualScenario.g:2778:2: ( rule__StateFragment__OnAssignment_0 ) + // InternalTextualScenario.g:2778:3: rule__StateFragment__OnAssignment_0 + { + pushFollow(FOLLOW_2); + rule__StateFragment__OnAssignment_0(); + + state._fsp--; + + + } + + after(grammarAccess.getStateFragmentAccess().getOnAssignment_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StateFragment__Group__0__Impl" + + + // $ANTLR start "rule__StateFragment__Group__1" + // InternalTextualScenario.g:2786:1: rule__StateFragment__Group__1 : rule__StateFragment__Group__1__Impl rule__StateFragment__Group__2 ; + public final void rule__StateFragment__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2790:1: ( rule__StateFragment__Group__1__Impl rule__StateFragment__Group__2 ) + // InternalTextualScenario.g:2791:2: rule__StateFragment__Group__1__Impl rule__StateFragment__Group__2 + { + pushFollow(FOLLOW_20); + rule__StateFragment__Group__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__StateFragment__Group__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StateFragment__Group__1" + + + // $ANTLR start "rule__StateFragment__Group__1__Impl" + // InternalTextualScenario.g:2798:1: rule__StateFragment__Group__1__Impl : ( ( rule__StateFragment__TimelineAssignment_1 ) ) ; + public final void rule__StateFragment__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2802:1: ( ( ( rule__StateFragment__TimelineAssignment_1 ) ) ) + // InternalTextualScenario.g:2803:1: ( ( rule__StateFragment__TimelineAssignment_1 ) ) + { + // InternalTextualScenario.g:2803:1: ( ( rule__StateFragment__TimelineAssignment_1 ) ) + // InternalTextualScenario.g:2804:2: ( rule__StateFragment__TimelineAssignment_1 ) + { + before(grammarAccess.getStateFragmentAccess().getTimelineAssignment_1()); + // InternalTextualScenario.g:2805:2: ( rule__StateFragment__TimelineAssignment_1 ) + // InternalTextualScenario.g:2805:3: rule__StateFragment__TimelineAssignment_1 + { + pushFollow(FOLLOW_2); + rule__StateFragment__TimelineAssignment_1(); + + state._fsp--; + + + } + + after(grammarAccess.getStateFragmentAccess().getTimelineAssignment_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StateFragment__Group__1__Impl" + + + // $ANTLR start "rule__StateFragment__Group__2" + // InternalTextualScenario.g:2813:1: rule__StateFragment__Group__2 : rule__StateFragment__Group__2__Impl rule__StateFragment__Group__3 ; + public final void rule__StateFragment__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2817:1: ( rule__StateFragment__Group__2__Impl rule__StateFragment__Group__3 ) + // InternalTextualScenario.g:2818:2: rule__StateFragment__Group__2__Impl rule__StateFragment__Group__3 + { + pushFollow(FOLLOW_7); + rule__StateFragment__Group__2__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__StateFragment__Group__3(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StateFragment__Group__2" + + + // $ANTLR start "rule__StateFragment__Group__2__Impl" + // InternalTextualScenario.g:2825:1: rule__StateFragment__Group__2__Impl : ( ( rule__StateFragment__KeywordAssignment_2 ) ) ; + public final void rule__StateFragment__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2829:1: ( ( ( rule__StateFragment__KeywordAssignment_2 ) ) ) + // InternalTextualScenario.g:2830:1: ( ( rule__StateFragment__KeywordAssignment_2 ) ) + { + // InternalTextualScenario.g:2830:1: ( ( rule__StateFragment__KeywordAssignment_2 ) ) + // InternalTextualScenario.g:2831:2: ( rule__StateFragment__KeywordAssignment_2 ) + { + before(grammarAccess.getStateFragmentAccess().getKeywordAssignment_2()); + // InternalTextualScenario.g:2832:2: ( rule__StateFragment__KeywordAssignment_2 ) + // InternalTextualScenario.g:2832:3: rule__StateFragment__KeywordAssignment_2 + { + pushFollow(FOLLOW_2); + rule__StateFragment__KeywordAssignment_2(); + + state._fsp--; + + + } + + after(grammarAccess.getStateFragmentAccess().getKeywordAssignment_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StateFragment__Group__2__Impl" + + + // $ANTLR start "rule__StateFragment__Group__3" + // InternalTextualScenario.g:2840:1: rule__StateFragment__Group__3 : rule__StateFragment__Group__3__Impl ; + public final void rule__StateFragment__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2844:1: ( rule__StateFragment__Group__3__Impl ) + // InternalTextualScenario.g:2845:2: rule__StateFragment__Group__3__Impl + { + pushFollow(FOLLOW_2); + rule__StateFragment__Group__3__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StateFragment__Group__3" + + + // $ANTLR start "rule__StateFragment__Group__3__Impl" + // InternalTextualScenario.g:2851:1: rule__StateFragment__Group__3__Impl : ( ( rule__StateFragment__NameAssignment_3 ) ) ; + public final void rule__StateFragment__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2855:1: ( ( ( rule__StateFragment__NameAssignment_3 ) ) ) + // InternalTextualScenario.g:2856:1: ( ( rule__StateFragment__NameAssignment_3 ) ) + { + // InternalTextualScenario.g:2856:1: ( ( rule__StateFragment__NameAssignment_3 ) ) + // InternalTextualScenario.g:2857:2: ( rule__StateFragment__NameAssignment_3 ) + { + before(grammarAccess.getStateFragmentAccess().getNameAssignment_3()); + // InternalTextualScenario.g:2858:2: ( rule__StateFragment__NameAssignment_3 ) + // InternalTextualScenario.g:2858:3: rule__StateFragment__NameAssignment_3 + { + pushFollow(FOLLOW_2); + rule__StateFragment__NameAssignment_3(); + + state._fsp--; + + + } + + after(grammarAccess.getStateFragmentAccess().getNameAssignment_3()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__StateFragment__Group__3__Impl" + + + // $ANTLR start "rule__Reference__Group__0" + // InternalTextualScenario.g:2867:1: rule__Reference__Group__0 : rule__Reference__Group__0__Impl rule__Reference__Group__1 ; + public final void rule__Reference__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2871:1: ( rule__Reference__Group__0__Impl rule__Reference__Group__1 ) + // InternalTextualScenario.g:2872:2: rule__Reference__Group__0__Impl rule__Reference__Group__1 + { + pushFollow(FOLLOW_7); + rule__Reference__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__Reference__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Reference__Group__0" + + + // $ANTLR start "rule__Reference__Group__0__Impl" + // InternalTextualScenario.g:2879:1: rule__Reference__Group__0__Impl : ( ( rule__Reference__KeywordAssignment_0 ) ) ; + public final void rule__Reference__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2883:1: ( ( ( rule__Reference__KeywordAssignment_0 ) ) ) + // InternalTextualScenario.g:2884:1: ( ( rule__Reference__KeywordAssignment_0 ) ) + { + // InternalTextualScenario.g:2884:1: ( ( rule__Reference__KeywordAssignment_0 ) ) + // InternalTextualScenario.g:2885:2: ( rule__Reference__KeywordAssignment_0 ) + { + before(grammarAccess.getReferenceAccess().getKeywordAssignment_0()); + // InternalTextualScenario.g:2886:2: ( rule__Reference__KeywordAssignment_0 ) + // InternalTextualScenario.g:2886:3: rule__Reference__KeywordAssignment_0 + { + pushFollow(FOLLOW_2); + rule__Reference__KeywordAssignment_0(); + + state._fsp--; + + + } + + after(grammarAccess.getReferenceAccess().getKeywordAssignment_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Reference__Group__0__Impl" + + + // $ANTLR start "rule__Reference__Group__1" + // InternalTextualScenario.g:2894:1: rule__Reference__Group__1 : rule__Reference__Group__1__Impl rule__Reference__Group__2 ; + public final void rule__Reference__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2898:1: ( rule__Reference__Group__1__Impl rule__Reference__Group__2 ) + // InternalTextualScenario.g:2899:2: rule__Reference__Group__1__Impl rule__Reference__Group__2 + { + pushFollow(FOLLOW_21); + rule__Reference__Group__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__Reference__Group__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Reference__Group__1" + + + // $ANTLR start "rule__Reference__Group__1__Impl" + // InternalTextualScenario.g:2906:1: rule__Reference__Group__1__Impl : ( ( rule__Reference__NameAssignment_1 ) ) ; + public final void rule__Reference__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2910:1: ( ( ( rule__Reference__NameAssignment_1 ) ) ) + // InternalTextualScenario.g:2911:1: ( ( rule__Reference__NameAssignment_1 ) ) + { + // InternalTextualScenario.g:2911:1: ( ( rule__Reference__NameAssignment_1 ) ) + // InternalTextualScenario.g:2912:2: ( rule__Reference__NameAssignment_1 ) + { + before(grammarAccess.getReferenceAccess().getNameAssignment_1()); + // InternalTextualScenario.g:2913:2: ( rule__Reference__NameAssignment_1 ) + // InternalTextualScenario.g:2913:3: rule__Reference__NameAssignment_1 + { + pushFollow(FOLLOW_2); + rule__Reference__NameAssignment_1(); + + state._fsp--; + + + } + + after(grammarAccess.getReferenceAccess().getNameAssignment_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Reference__Group__1__Impl" + + + // $ANTLR start "rule__Reference__Group__2" + // InternalTextualScenario.g:2921:1: rule__Reference__Group__2 : rule__Reference__Group__2__Impl rule__Reference__Group__3 ; + public final void rule__Reference__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2925:1: ( rule__Reference__Group__2__Impl rule__Reference__Group__3 ) + // InternalTextualScenario.g:2926:2: rule__Reference__Group__2__Impl rule__Reference__Group__3 + { + pushFollow(FOLLOW_7); + rule__Reference__Group__2__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__Reference__Group__3(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Reference__Group__2" + + + // $ANTLR start "rule__Reference__Group__2__Impl" + // InternalTextualScenario.g:2933:1: rule__Reference__Group__2__Impl : ( ( rule__Reference__OverAssignment_2 ) ) ; + public final void rule__Reference__Group__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2414:1: ( rule__StateFragment__Group__1__Impl rule__StateFragment__Group__2 ) - // InternalTextualScenario.g:2415:2: rule__StateFragment__Group__1__Impl rule__StateFragment__Group__2 + // InternalTextualScenario.g:2937:1: ( ( ( rule__Reference__OverAssignment_2 ) ) ) + // InternalTextualScenario.g:2938:1: ( ( rule__Reference__OverAssignment_2 ) ) { - pushFollow(FOLLOW_19); - rule__StateFragment__Group__1__Impl(); + // InternalTextualScenario.g:2938:1: ( ( rule__Reference__OverAssignment_2 ) ) + // InternalTextualScenario.g:2939:2: ( rule__Reference__OverAssignment_2 ) + { + before(grammarAccess.getReferenceAccess().getOverAssignment_2()); + // InternalTextualScenario.g:2940:2: ( rule__Reference__OverAssignment_2 ) + // InternalTextualScenario.g:2940:3: rule__Reference__OverAssignment_2 + { + pushFollow(FOLLOW_2); + rule__Reference__OverAssignment_2(); state._fsp--; + + } + + after(grammarAccess.getReferenceAccess().getOverAssignment_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Reference__Group__2__Impl" + + + // $ANTLR start "rule__Reference__Group__3" + // InternalTextualScenario.g:2948:1: rule__Reference__Group__3 : rule__Reference__Group__3__Impl ; + public final void rule__Reference__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2952:1: ( rule__Reference__Group__3__Impl ) + // InternalTextualScenario.g:2953:2: rule__Reference__Group__3__Impl + { pushFollow(FOLLOW_2); - rule__StateFragment__Group__2(); + rule__Reference__Group__3__Impl(); state._fsp--; @@ -7764,35 +9504,301 @@ public final void rule__StateFragment__Group__1() throws RecognitionException { } return ; } - // $ANTLR end "rule__StateFragment__Group__1" + // $ANTLR end "rule__Reference__Group__3" - // $ANTLR start "rule__StateFragment__Group__1__Impl" - // InternalTextualScenario.g:2422:1: rule__StateFragment__Group__1__Impl : ( ( rule__StateFragment__TimelineAssignment_1 ) ) ; - public final void rule__StateFragment__Group__1__Impl() throws RecognitionException { + // $ANTLR start "rule__Reference__Group__3__Impl" + // InternalTextualScenario.g:2959:1: rule__Reference__Group__3__Impl : ( ( ( rule__Reference__TimelinesAssignment_3 ) ) ( ( rule__Reference__TimelinesAssignment_3 )* ) ) ; + public final void rule__Reference__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2963:1: ( ( ( ( rule__Reference__TimelinesAssignment_3 ) ) ( ( rule__Reference__TimelinesAssignment_3 )* ) ) ) + // InternalTextualScenario.g:2964:1: ( ( ( rule__Reference__TimelinesAssignment_3 ) ) ( ( rule__Reference__TimelinesAssignment_3 )* ) ) + { + // InternalTextualScenario.g:2964:1: ( ( ( rule__Reference__TimelinesAssignment_3 ) ) ( ( rule__Reference__TimelinesAssignment_3 )* ) ) + // InternalTextualScenario.g:2965:2: ( ( rule__Reference__TimelinesAssignment_3 ) ) ( ( rule__Reference__TimelinesAssignment_3 )* ) + { + // InternalTextualScenario.g:2965:2: ( ( rule__Reference__TimelinesAssignment_3 ) ) + // InternalTextualScenario.g:2966:3: ( rule__Reference__TimelinesAssignment_3 ) + { + before(grammarAccess.getReferenceAccess().getTimelinesAssignment_3()); + // InternalTextualScenario.g:2967:3: ( rule__Reference__TimelinesAssignment_3 ) + // InternalTextualScenario.g:2967:4: rule__Reference__TimelinesAssignment_3 + { + pushFollow(FOLLOW_16); + rule__Reference__TimelinesAssignment_3(); + + state._fsp--; + + + } + + after(grammarAccess.getReferenceAccess().getTimelinesAssignment_3()); + + } + + // InternalTextualScenario.g:2970:2: ( ( rule__Reference__TimelinesAssignment_3 )* ) + // InternalTextualScenario.g:2971:3: ( rule__Reference__TimelinesAssignment_3 )* + { + before(grammarAccess.getReferenceAccess().getTimelinesAssignment_3()); + // InternalTextualScenario.g:2972:3: ( rule__Reference__TimelinesAssignment_3 )* + loop22: + do { + int alt22=2; + int LA22_0 = input.LA(1); + + if ( (LA22_0==RULE_STRING) ) { + int LA22_2 = input.LA(2); + + if ( (LA22_2==EOF||LA22_2==RULE_STRING||(LA22_2>=11 && LA22_2<=21)||LA22_2==27||LA22_2==40||(LA22_2>=42 && LA22_2<=43)||(LA22_2>=46 && LA22_2<=47)) ) { + alt22=1; + } + + + } + + + switch (alt22) { + case 1 : + // InternalTextualScenario.g:2972:4: rule__Reference__TimelinesAssignment_3 + { + pushFollow(FOLLOW_16); + rule__Reference__TimelinesAssignment_3(); + + state._fsp--; + + + } + break; + + default : + break loop22; + } + } while (true); + + after(grammarAccess.getReferenceAccess().getTimelinesAssignment_3()); + + } + + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Reference__Group__3__Impl" + + + // $ANTLR start "rule__Model__BeginAssignment_1" + // InternalTextualScenario.g:2982:1: rule__Model__BeginAssignment_1 : ( ( '{' ) ) ; + public final void rule__Model__BeginAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:2986:1: ( ( ( '{' ) ) ) + // InternalTextualScenario.g:2987:2: ( ( '{' ) ) + { + // InternalTextualScenario.g:2987:2: ( ( '{' ) ) + // InternalTextualScenario.g:2988:3: ( '{' ) + { + before(grammarAccess.getModelAccess().getBeginLeftCurlyBracketKeyword_1_0()); + // InternalTextualScenario.g:2989:3: ( '{' ) + // InternalTextualScenario.g:2990:4: '{' + { + before(grammarAccess.getModelAccess().getBeginLeftCurlyBracketKeyword_1_0()); + match(input,26,FOLLOW_2); + after(grammarAccess.getModelAccess().getBeginLeftCurlyBracketKeyword_1_0()); + + } + + after(grammarAccess.getModelAccess().getBeginLeftCurlyBracketKeyword_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Model__BeginAssignment_1" + + + // $ANTLR start "rule__Model__ParticipantsAssignment_2" + // InternalTextualScenario.g:3001:1: rule__Model__ParticipantsAssignment_2 : ( ruleParticipant ) ; + public final void rule__Model__ParticipantsAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:3005:1: ( ( ruleParticipant ) ) + // InternalTextualScenario.g:3006:2: ( ruleParticipant ) + { + // InternalTextualScenario.g:3006:2: ( ruleParticipant ) + // InternalTextualScenario.g:3007:3: ruleParticipant + { + before(grammarAccess.getModelAccess().getParticipantsParticipantParserRuleCall_2_0()); + pushFollow(FOLLOW_2); + ruleParticipant(); + + state._fsp--; + + after(grammarAccess.getModelAccess().getParticipantsParticipantParserRuleCall_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Model__ParticipantsAssignment_2" + + + // $ANTLR start "rule__Model__ElementsAssignment_3" + // InternalTextualScenario.g:3016:1: rule__Model__ElementsAssignment_3 : ( ruleElement ) ; + public final void rule__Model__ElementsAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:3020:1: ( ( ruleElement ) ) + // InternalTextualScenario.g:3021:2: ( ruleElement ) + { + // InternalTextualScenario.g:3021:2: ( ruleElement ) + // InternalTextualScenario.g:3022:3: ruleElement + { + before(grammarAccess.getModelAccess().getElementsElementParserRuleCall_3_0()); + pushFollow(FOLLOW_2); + ruleElement(); + + state._fsp--; + + after(grammarAccess.getModelAccess().getElementsElementParserRuleCall_3_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Model__ElementsAssignment_3" + + + // $ANTLR start "rule__Model__EndAssignment_4" + // InternalTextualScenario.g:3031:1: rule__Model__EndAssignment_4 : ( ( '}' ) ) ; + public final void rule__Model__EndAssignment_4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:3035:1: ( ( ( '}' ) ) ) + // InternalTextualScenario.g:3036:2: ( ( '}' ) ) + { + // InternalTextualScenario.g:3036:2: ( ( '}' ) ) + // InternalTextualScenario.g:3037:3: ( '}' ) + { + before(grammarAccess.getModelAccess().getEndRightCurlyBracketKeyword_4_0()); + // InternalTextualScenario.g:3038:3: ( '}' ) + // InternalTextualScenario.g:3039:4: '}' + { + before(grammarAccess.getModelAccess().getEndRightCurlyBracketKeyword_4_0()); + match(input,27,FOLLOW_2); + after(grammarAccess.getModelAccess().getEndRightCurlyBracketKeyword_4_0()); + + } + + after(grammarAccess.getModelAccess().getEndRightCurlyBracketKeyword_4_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Model__EndAssignment_4" + + + // $ANTLR start "rule__Actor__KeywordAssignment_0" + // InternalTextualScenario.g:3050:1: rule__Actor__KeywordAssignment_0 : ( ( 'actor' ) ) ; + public final void rule__Actor__KeywordAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2426:1: ( ( ( rule__StateFragment__TimelineAssignment_1 ) ) ) - // InternalTextualScenario.g:2427:1: ( ( rule__StateFragment__TimelineAssignment_1 ) ) + // InternalTextualScenario.g:3054:1: ( ( ( 'actor' ) ) ) + // InternalTextualScenario.g:3055:2: ( ( 'actor' ) ) { - // InternalTextualScenario.g:2427:1: ( ( rule__StateFragment__TimelineAssignment_1 ) ) - // InternalTextualScenario.g:2428:2: ( rule__StateFragment__TimelineAssignment_1 ) + // InternalTextualScenario.g:3055:2: ( ( 'actor' ) ) + // InternalTextualScenario.g:3056:3: ( 'actor' ) { - before(grammarAccess.getStateFragmentAccess().getTimelineAssignment_1()); - // InternalTextualScenario.g:2429:2: ( rule__StateFragment__TimelineAssignment_1 ) - // InternalTextualScenario.g:2429:3: rule__StateFragment__TimelineAssignment_1 + before(grammarAccess.getActorAccess().getKeywordActorKeyword_0_0()); + // InternalTextualScenario.g:3057:3: ( 'actor' ) + // InternalTextualScenario.g:3058:4: 'actor' { - pushFollow(FOLLOW_2); - rule__StateFragment__TimelineAssignment_1(); - - state._fsp--; - + before(grammarAccess.getActorAccess().getKeywordActorKeyword_0_0()); + match(input,28,FOLLOW_2); + after(grammarAccess.getActorAccess().getKeywordActorKeyword_0_0()); } - after(grammarAccess.getStateFragmentAccess().getTimelineAssignment_1()); + after(grammarAccess.getActorAccess().getKeywordActorKeyword_0_0()); } @@ -7811,28 +9817,27 @@ public final void rule__StateFragment__Group__1__Impl() throws RecognitionExcept } return ; } - // $ANTLR end "rule__StateFragment__Group__1__Impl" + // $ANTLR end "rule__Actor__KeywordAssignment_0" - // $ANTLR start "rule__StateFragment__Group__2" - // InternalTextualScenario.g:2437:1: rule__StateFragment__Group__2 : rule__StateFragment__Group__2__Impl rule__StateFragment__Group__3 ; - public final void rule__StateFragment__Group__2() throws RecognitionException { + // $ANTLR start "rule__Actor__NameAssignment_1" + // InternalTextualScenario.g:3069:1: rule__Actor__NameAssignment_1 : ( RULE_STRING ) ; + public final void rule__Actor__NameAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2441:1: ( rule__StateFragment__Group__2__Impl rule__StateFragment__Group__3 ) - // InternalTextualScenario.g:2442:2: rule__StateFragment__Group__2__Impl rule__StateFragment__Group__3 + // InternalTextualScenario.g:3073:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3074:2: ( RULE_STRING ) { - pushFollow(FOLLOW_7); - rule__StateFragment__Group__2__Impl(); - - state._fsp--; - - pushFollow(FOLLOW_2); - rule__StateFragment__Group__3(); + // InternalTextualScenario.g:3074:2: ( RULE_STRING ) + // InternalTextualScenario.g:3075:3: RULE_STRING + { + before(grammarAccess.getActorAccess().getNameSTRINGTerminalRuleCall_1_0()); + match(input,RULE_STRING,FOLLOW_2); + after(grammarAccess.getActorAccess().getNameSTRINGTerminalRuleCall_1_0()); - state._fsp--; + } } @@ -7849,35 +9854,33 @@ public final void rule__StateFragment__Group__2() throws RecognitionException { } return ; } - // $ANTLR end "rule__StateFragment__Group__2" + // $ANTLR end "rule__Actor__NameAssignment_1" - // $ANTLR start "rule__StateFragment__Group__2__Impl" - // InternalTextualScenario.g:2449:1: rule__StateFragment__Group__2__Impl : ( ( rule__StateFragment__KeywordAssignment_2 ) ) ; - public final void rule__StateFragment__Group__2__Impl() throws RecognitionException { + // $ANTLR start "rule__Component__KeywordAssignment_0" + // InternalTextualScenario.g:3084:1: rule__Component__KeywordAssignment_0 : ( ( 'component' ) ) ; + public final void rule__Component__KeywordAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2453:1: ( ( ( rule__StateFragment__KeywordAssignment_2 ) ) ) - // InternalTextualScenario.g:2454:1: ( ( rule__StateFragment__KeywordAssignment_2 ) ) + // InternalTextualScenario.g:3088:1: ( ( ( 'component' ) ) ) + // InternalTextualScenario.g:3089:2: ( ( 'component' ) ) { - // InternalTextualScenario.g:2454:1: ( ( rule__StateFragment__KeywordAssignment_2 ) ) - // InternalTextualScenario.g:2455:2: ( rule__StateFragment__KeywordAssignment_2 ) + // InternalTextualScenario.g:3089:2: ( ( 'component' ) ) + // InternalTextualScenario.g:3090:3: ( 'component' ) { - before(grammarAccess.getStateFragmentAccess().getKeywordAssignment_2()); - // InternalTextualScenario.g:2456:2: ( rule__StateFragment__KeywordAssignment_2 ) - // InternalTextualScenario.g:2456:3: rule__StateFragment__KeywordAssignment_2 + before(grammarAccess.getComponentAccess().getKeywordComponentKeyword_0_0()); + // InternalTextualScenario.g:3091:3: ( 'component' ) + // InternalTextualScenario.g:3092:4: 'component' { - pushFollow(FOLLOW_2); - rule__StateFragment__KeywordAssignment_2(); - - state._fsp--; - + before(grammarAccess.getComponentAccess().getKeywordComponentKeyword_0_0()); + match(input,29,FOLLOW_2); + after(grammarAccess.getComponentAccess().getKeywordComponentKeyword_0_0()); } - after(grammarAccess.getStateFragmentAccess().getKeywordAssignment_2()); + after(grammarAccess.getComponentAccess().getKeywordComponentKeyword_0_0()); } @@ -7896,23 +9899,27 @@ public final void rule__StateFragment__Group__2__Impl() throws RecognitionExcept } return ; } - // $ANTLR end "rule__StateFragment__Group__2__Impl" + // $ANTLR end "rule__Component__KeywordAssignment_0" - // $ANTLR start "rule__StateFragment__Group__3" - // InternalTextualScenario.g:2464:1: rule__StateFragment__Group__3 : rule__StateFragment__Group__3__Impl ; - public final void rule__StateFragment__Group__3() throws RecognitionException { + // $ANTLR start "rule__Component__NameAssignment_1" + // InternalTextualScenario.g:3103:1: rule__Component__NameAssignment_1 : ( RULE_STRING ) ; + public final void rule__Component__NameAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2468:1: ( rule__StateFragment__Group__3__Impl ) - // InternalTextualScenario.g:2469:2: rule__StateFragment__Group__3__Impl + // InternalTextualScenario.g:3107:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3108:2: ( RULE_STRING ) { - pushFollow(FOLLOW_2); - rule__StateFragment__Group__3__Impl(); + // InternalTextualScenario.g:3108:2: ( RULE_STRING ) + // InternalTextualScenario.g:3109:3: RULE_STRING + { + before(grammarAccess.getComponentAccess().getNameSTRINGTerminalRuleCall_1_0()); + match(input,RULE_STRING,FOLLOW_2); + after(grammarAccess.getComponentAccess().getNameSTRINGTerminalRuleCall_1_0()); - state._fsp--; + } } @@ -7929,35 +9936,33 @@ public final void rule__StateFragment__Group__3() throws RecognitionException { } return ; } - // $ANTLR end "rule__StateFragment__Group__3" + // $ANTLR end "rule__Component__NameAssignment_1" - // $ANTLR start "rule__StateFragment__Group__3__Impl" - // InternalTextualScenario.g:2475:1: rule__StateFragment__Group__3__Impl : ( ( rule__StateFragment__NameAssignment_3 ) ) ; - public final void rule__StateFragment__Group__3__Impl() throws RecognitionException { + // $ANTLR start "rule__ConfigurationItem__KeywordAssignment_0" + // InternalTextualScenario.g:3118:1: rule__ConfigurationItem__KeywordAssignment_0 : ( ( 'configuration_item' ) ) ; + public final void rule__ConfigurationItem__KeywordAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2479:1: ( ( ( rule__StateFragment__NameAssignment_3 ) ) ) - // InternalTextualScenario.g:2480:1: ( ( rule__StateFragment__NameAssignment_3 ) ) + // InternalTextualScenario.g:3122:1: ( ( ( 'configuration_item' ) ) ) + // InternalTextualScenario.g:3123:2: ( ( 'configuration_item' ) ) { - // InternalTextualScenario.g:2480:1: ( ( rule__StateFragment__NameAssignment_3 ) ) - // InternalTextualScenario.g:2481:2: ( rule__StateFragment__NameAssignment_3 ) + // InternalTextualScenario.g:3123:2: ( ( 'configuration_item' ) ) + // InternalTextualScenario.g:3124:3: ( 'configuration_item' ) { - before(grammarAccess.getStateFragmentAccess().getNameAssignment_3()); - // InternalTextualScenario.g:2482:2: ( rule__StateFragment__NameAssignment_3 ) - // InternalTextualScenario.g:2482:3: rule__StateFragment__NameAssignment_3 + before(grammarAccess.getConfigurationItemAccess().getKeywordConfiguration_itemKeyword_0_0()); + // InternalTextualScenario.g:3125:3: ( 'configuration_item' ) + // InternalTextualScenario.g:3126:4: 'configuration_item' { - pushFollow(FOLLOW_2); - rule__StateFragment__NameAssignment_3(); - - state._fsp--; - + before(grammarAccess.getConfigurationItemAccess().getKeywordConfiguration_itemKeyword_0_0()); + match(input,30,FOLLOW_2); + after(grammarAccess.getConfigurationItemAccess().getKeywordConfiguration_itemKeyword_0_0()); } - after(grammarAccess.getStateFragmentAccess().getNameAssignment_3()); + after(grammarAccess.getConfigurationItemAccess().getKeywordConfiguration_itemKeyword_0_0()); } @@ -7976,33 +9981,25 @@ public final void rule__StateFragment__Group__3__Impl() throws RecognitionExcept } return ; } - // $ANTLR end "rule__StateFragment__Group__3__Impl" + // $ANTLR end "rule__ConfigurationItem__KeywordAssignment_0" - // $ANTLR start "rule__Model__BeginAssignment_1" - // InternalTextualScenario.g:2491:1: rule__Model__BeginAssignment_1 : ( ( '{' ) ) ; - public final void rule__Model__BeginAssignment_1() throws RecognitionException { + // $ANTLR start "rule__ConfigurationItem__NameAssignment_1" + // InternalTextualScenario.g:3137:1: rule__ConfigurationItem__NameAssignment_1 : ( RULE_STRING ) ; + public final void rule__ConfigurationItem__NameAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2495:1: ( ( ( '{' ) ) ) - // InternalTextualScenario.g:2496:2: ( ( '{' ) ) + // InternalTextualScenario.g:3141:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3142:2: ( RULE_STRING ) { - // InternalTextualScenario.g:2496:2: ( ( '{' ) ) - // InternalTextualScenario.g:2497:3: ( '{' ) - { - before(grammarAccess.getModelAccess().getBeginLeftCurlyBracketKeyword_1_0()); - // InternalTextualScenario.g:2498:3: ( '{' ) - // InternalTextualScenario.g:2499:4: '{' + // InternalTextualScenario.g:3142:2: ( RULE_STRING ) + // InternalTextualScenario.g:3143:3: RULE_STRING { - before(grammarAccess.getModelAccess().getBeginLeftCurlyBracketKeyword_1_0()); - match(input,26,FOLLOW_2); - after(grammarAccess.getModelAccess().getBeginLeftCurlyBracketKeyword_1_0()); - - } - - after(grammarAccess.getModelAccess().getBeginLeftCurlyBracketKeyword_1_0()); + before(grammarAccess.getConfigurationItemAccess().getNameSTRINGTerminalRuleCall_1_0()); + match(input,RULE_STRING,FOLLOW_2); + after(grammarAccess.getConfigurationItemAccess().getNameSTRINGTerminalRuleCall_1_0()); } @@ -8021,29 +10018,33 @@ public final void rule__Model__BeginAssignment_1() throws RecognitionException { } return ; } - // $ANTLR end "rule__Model__BeginAssignment_1" + // $ANTLR end "rule__ConfigurationItem__NameAssignment_1" - // $ANTLR start "rule__Model__ParticipantsAssignment_2" - // InternalTextualScenario.g:2510:1: rule__Model__ParticipantsAssignment_2 : ( ruleParticipant ) ; - public final void rule__Model__ParticipantsAssignment_2() throws RecognitionException { + // $ANTLR start "rule__Function__KeywordAssignment_0" + // InternalTextualScenario.g:3152:1: rule__Function__KeywordAssignment_0 : ( ( 'function' ) ) ; + public final void rule__Function__KeywordAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2514:1: ( ( ruleParticipant ) ) - // InternalTextualScenario.g:2515:2: ( ruleParticipant ) + // InternalTextualScenario.g:3156:1: ( ( ( 'function' ) ) ) + // InternalTextualScenario.g:3157:2: ( ( 'function' ) ) { - // InternalTextualScenario.g:2515:2: ( ruleParticipant ) - // InternalTextualScenario.g:2516:3: ruleParticipant + // InternalTextualScenario.g:3157:2: ( ( 'function' ) ) + // InternalTextualScenario.g:3158:3: ( 'function' ) { - before(grammarAccess.getModelAccess().getParticipantsParticipantParserRuleCall_2_0()); - pushFollow(FOLLOW_2); - ruleParticipant(); + before(grammarAccess.getFunctionAccess().getKeywordFunctionKeyword_0_0()); + // InternalTextualScenario.g:3159:3: ( 'function' ) + // InternalTextualScenario.g:3160:4: 'function' + { + before(grammarAccess.getFunctionAccess().getKeywordFunctionKeyword_0_0()); + match(input,24,FOLLOW_2); + after(grammarAccess.getFunctionAccess().getKeywordFunctionKeyword_0_0()); - state._fsp--; + } - after(grammarAccess.getModelAccess().getParticipantsParticipantParserRuleCall_2_0()); + after(grammarAccess.getFunctionAccess().getKeywordFunctionKeyword_0_0()); } @@ -8062,29 +10063,25 @@ public final void rule__Model__ParticipantsAssignment_2() throws RecognitionExce } return ; } - // $ANTLR end "rule__Model__ParticipantsAssignment_2" + // $ANTLR end "rule__Function__KeywordAssignment_0" - // $ANTLR start "rule__Model__ElementsAssignment_3" - // InternalTextualScenario.g:2525:1: rule__Model__ElementsAssignment_3 : ( ruleElement ) ; - public final void rule__Model__ElementsAssignment_3() throws RecognitionException { + // $ANTLR start "rule__Function__NameAssignment_1" + // InternalTextualScenario.g:3171:1: rule__Function__NameAssignment_1 : ( RULE_STRING ) ; + public final void rule__Function__NameAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2529:1: ( ( ruleElement ) ) - // InternalTextualScenario.g:2530:2: ( ruleElement ) + // InternalTextualScenario.g:3175:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3176:2: ( RULE_STRING ) { - // InternalTextualScenario.g:2530:2: ( ruleElement ) - // InternalTextualScenario.g:2531:3: ruleElement + // InternalTextualScenario.g:3176:2: ( RULE_STRING ) + // InternalTextualScenario.g:3177:3: RULE_STRING { - before(grammarAccess.getModelAccess().getElementsElementParserRuleCall_3_0()); - pushFollow(FOLLOW_2); - ruleElement(); - - state._fsp--; - - after(grammarAccess.getModelAccess().getElementsElementParserRuleCall_3_0()); + before(grammarAccess.getFunctionAccess().getNameSTRINGTerminalRuleCall_1_0()); + match(input,RULE_STRING,FOLLOW_2); + after(grammarAccess.getFunctionAccess().getNameSTRINGTerminalRuleCall_1_0()); } @@ -8103,33 +10100,33 @@ public final void rule__Model__ElementsAssignment_3() throws RecognitionExceptio } return ; } - // $ANTLR end "rule__Model__ElementsAssignment_3" + // $ANTLR end "rule__Function__NameAssignment_1" - // $ANTLR start "rule__Model__EndAssignment_4" - // InternalTextualScenario.g:2540:1: rule__Model__EndAssignment_4 : ( ( '}' ) ) ; - public final void rule__Model__EndAssignment_4() throws RecognitionException { + // $ANTLR start "rule__Activity__KeywordAssignment_0" + // InternalTextualScenario.g:3186:1: rule__Activity__KeywordAssignment_0 : ( ( 'activity' ) ) ; + public final void rule__Activity__KeywordAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2544:1: ( ( ( '}' ) ) ) - // InternalTextualScenario.g:2545:2: ( ( '}' ) ) + // InternalTextualScenario.g:3190:1: ( ( ( 'activity' ) ) ) + // InternalTextualScenario.g:3191:2: ( ( 'activity' ) ) { - // InternalTextualScenario.g:2545:2: ( ( '}' ) ) - // InternalTextualScenario.g:2546:3: ( '}' ) + // InternalTextualScenario.g:3191:2: ( ( 'activity' ) ) + // InternalTextualScenario.g:3192:3: ( 'activity' ) { - before(grammarAccess.getModelAccess().getEndRightCurlyBracketKeyword_4_0()); - // InternalTextualScenario.g:2547:3: ( '}' ) - // InternalTextualScenario.g:2548:4: '}' + before(grammarAccess.getActivityAccess().getKeywordActivityKeyword_0_0()); + // InternalTextualScenario.g:3193:3: ( 'activity' ) + // InternalTextualScenario.g:3194:4: 'activity' { - before(grammarAccess.getModelAccess().getEndRightCurlyBracketKeyword_4_0()); - match(input,27,FOLLOW_2); - after(grammarAccess.getModelAccess().getEndRightCurlyBracketKeyword_4_0()); + before(grammarAccess.getActivityAccess().getKeywordActivityKeyword_0_0()); + match(input,31,FOLLOW_2); + after(grammarAccess.getActivityAccess().getKeywordActivityKeyword_0_0()); } - after(grammarAccess.getModelAccess().getEndRightCurlyBracketKeyword_4_0()); + after(grammarAccess.getActivityAccess().getKeywordActivityKeyword_0_0()); } @@ -8148,33 +10145,25 @@ public final void rule__Model__EndAssignment_4() throws RecognitionException { } return ; } - // $ANTLR end "rule__Model__EndAssignment_4" + // $ANTLR end "rule__Activity__KeywordAssignment_0" - // $ANTLR start "rule__Actor__KeywordAssignment_0" - // InternalTextualScenario.g:2559:1: rule__Actor__KeywordAssignment_0 : ( ( 'actor' ) ) ; - public final void rule__Actor__KeywordAssignment_0() throws RecognitionException { + // $ANTLR start "rule__Activity__NameAssignment_1" + // InternalTextualScenario.g:3205:1: rule__Activity__NameAssignment_1 : ( RULE_STRING ) ; + public final void rule__Activity__NameAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2563:1: ( ( ( 'actor' ) ) ) - // InternalTextualScenario.g:2564:2: ( ( 'actor' ) ) + // InternalTextualScenario.g:3209:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3210:2: ( RULE_STRING ) { - // InternalTextualScenario.g:2564:2: ( ( 'actor' ) ) - // InternalTextualScenario.g:2565:3: ( 'actor' ) - { - before(grammarAccess.getActorAccess().getKeywordActorKeyword_0_0()); - // InternalTextualScenario.g:2566:3: ( 'actor' ) - // InternalTextualScenario.g:2567:4: 'actor' + // InternalTextualScenario.g:3210:2: ( RULE_STRING ) + // InternalTextualScenario.g:3211:3: RULE_STRING { - before(grammarAccess.getActorAccess().getKeywordActorKeyword_0_0()); - match(input,28,FOLLOW_2); - after(grammarAccess.getActorAccess().getKeywordActorKeyword_0_0()); - - } - - after(grammarAccess.getActorAccess().getKeywordActorKeyword_0_0()); + before(grammarAccess.getActivityAccess().getNameSTRINGTerminalRuleCall_1_0()); + match(input,RULE_STRING,FOLLOW_2); + after(grammarAccess.getActivityAccess().getNameSTRINGTerminalRuleCall_1_0()); } @@ -8193,25 +10182,33 @@ public final void rule__Actor__KeywordAssignment_0() throws RecognitionException } return ; } - // $ANTLR end "rule__Actor__KeywordAssignment_0" + // $ANTLR end "rule__Activity__NameAssignment_1" - // $ANTLR start "rule__Actor__NameAssignment_1" - // InternalTextualScenario.g:2578:1: rule__Actor__NameAssignment_1 : ( RULE_STRING ) ; - public final void rule__Actor__NameAssignment_1() throws RecognitionException { + // $ANTLR start "rule__Entity__KeywordAssignment_0" + // InternalTextualScenario.g:3220:1: rule__Entity__KeywordAssignment_0 : ( ( 'entity' ) ) ; + public final void rule__Entity__KeywordAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2582:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:2583:2: ( RULE_STRING ) + // InternalTextualScenario.g:3224:1: ( ( ( 'entity' ) ) ) + // InternalTextualScenario.g:3225:2: ( ( 'entity' ) ) { - // InternalTextualScenario.g:2583:2: ( RULE_STRING ) - // InternalTextualScenario.g:2584:3: RULE_STRING + // InternalTextualScenario.g:3225:2: ( ( 'entity' ) ) + // InternalTextualScenario.g:3226:3: ( 'entity' ) { - before(grammarAccess.getActorAccess().getNameSTRINGTerminalRuleCall_1_0()); - match(input,RULE_STRING,FOLLOW_2); - after(grammarAccess.getActorAccess().getNameSTRINGTerminalRuleCall_1_0()); + before(grammarAccess.getEntityAccess().getKeywordEntityKeyword_0_0()); + // InternalTextualScenario.g:3227:3: ( 'entity' ) + // InternalTextualScenario.g:3228:4: 'entity' + { + before(grammarAccess.getEntityAccess().getKeywordEntityKeyword_0_0()); + match(input,32,FOLLOW_2); + after(grammarAccess.getEntityAccess().getKeywordEntityKeyword_0_0()); + + } + + after(grammarAccess.getEntityAccess().getKeywordEntityKeyword_0_0()); } @@ -8230,33 +10227,25 @@ public final void rule__Actor__NameAssignment_1() throws RecognitionException { } return ; } - // $ANTLR end "rule__Actor__NameAssignment_1" + // $ANTLR end "rule__Entity__KeywordAssignment_0" - // $ANTLR start "rule__Component__KeywordAssignment_0" - // InternalTextualScenario.g:2593:1: rule__Component__KeywordAssignment_0 : ( ( 'component' ) ) ; - public final void rule__Component__KeywordAssignment_0() throws RecognitionException { + // $ANTLR start "rule__Entity__NameAssignment_1" + // InternalTextualScenario.g:3239:1: rule__Entity__NameAssignment_1 : ( RULE_STRING ) ; + public final void rule__Entity__NameAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2597:1: ( ( ( 'component' ) ) ) - // InternalTextualScenario.g:2598:2: ( ( 'component' ) ) + // InternalTextualScenario.g:3243:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3244:2: ( RULE_STRING ) { - // InternalTextualScenario.g:2598:2: ( ( 'component' ) ) - // InternalTextualScenario.g:2599:3: ( 'component' ) - { - before(grammarAccess.getComponentAccess().getKeywordComponentKeyword_0_0()); - // InternalTextualScenario.g:2600:3: ( 'component' ) - // InternalTextualScenario.g:2601:4: 'component' + // InternalTextualScenario.g:3244:2: ( RULE_STRING ) + // InternalTextualScenario.g:3245:3: RULE_STRING { - before(grammarAccess.getComponentAccess().getKeywordComponentKeyword_0_0()); - match(input,29,FOLLOW_2); - after(grammarAccess.getComponentAccess().getKeywordComponentKeyword_0_0()); - - } - - after(grammarAccess.getComponentAccess().getKeywordComponentKeyword_0_0()); + before(grammarAccess.getEntityAccess().getNameSTRINGTerminalRuleCall_1_0()); + match(input,RULE_STRING,FOLLOW_2); + after(grammarAccess.getEntityAccess().getNameSTRINGTerminalRuleCall_1_0()); } @@ -8275,25 +10264,33 @@ public final void rule__Component__KeywordAssignment_0() throws RecognitionExcep } return ; } - // $ANTLR end "rule__Component__KeywordAssignment_0" + // $ANTLR end "rule__Entity__NameAssignment_1" - // $ANTLR start "rule__Component__NameAssignment_1" - // InternalTextualScenario.g:2612:1: rule__Component__NameAssignment_1 : ( RULE_STRING ) ; - public final void rule__Component__NameAssignment_1() throws RecognitionException { + // $ANTLR start "rule__Role__KeywordAssignment_0" + // InternalTextualScenario.g:3254:1: rule__Role__KeywordAssignment_0 : ( ( 'role' ) ) ; + public final void rule__Role__KeywordAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2616:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:2617:2: ( RULE_STRING ) + // InternalTextualScenario.g:3258:1: ( ( ( 'role' ) ) ) + // InternalTextualScenario.g:3259:2: ( ( 'role' ) ) { - // InternalTextualScenario.g:2617:2: ( RULE_STRING ) - // InternalTextualScenario.g:2618:3: RULE_STRING + // InternalTextualScenario.g:3259:2: ( ( 'role' ) ) + // InternalTextualScenario.g:3260:3: ( 'role' ) { - before(grammarAccess.getComponentAccess().getNameSTRINGTerminalRuleCall_1_0()); - match(input,RULE_STRING,FOLLOW_2); - after(grammarAccess.getComponentAccess().getNameSTRINGTerminalRuleCall_1_0()); + before(grammarAccess.getRoleAccess().getKeywordRoleKeyword_0_0()); + // InternalTextualScenario.g:3261:3: ( 'role' ) + // InternalTextualScenario.g:3262:4: 'role' + { + before(grammarAccess.getRoleAccess().getKeywordRoleKeyword_0_0()); + match(input,33,FOLLOW_2); + after(grammarAccess.getRoleAccess().getKeywordRoleKeyword_0_0()); + + } + + after(grammarAccess.getRoleAccess().getKeywordRoleKeyword_0_0()); } @@ -8312,33 +10309,25 @@ public final void rule__Component__NameAssignment_1() throws RecognitionExceptio } return ; } - // $ANTLR end "rule__Component__NameAssignment_1" + // $ANTLR end "rule__Role__KeywordAssignment_0" - // $ANTLR start "rule__ConfigurationItem__KeywordAssignment_0" - // InternalTextualScenario.g:2627:1: rule__ConfigurationItem__KeywordAssignment_0 : ( ( 'configuration_item' ) ) ; - public final void rule__ConfigurationItem__KeywordAssignment_0() throws RecognitionException { + // $ANTLR start "rule__Role__NameAssignment_1" + // InternalTextualScenario.g:3273:1: rule__Role__NameAssignment_1 : ( RULE_STRING ) ; + public final void rule__Role__NameAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2631:1: ( ( ( 'configuration_item' ) ) ) - // InternalTextualScenario.g:2632:2: ( ( 'configuration_item' ) ) + // InternalTextualScenario.g:3277:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3278:2: ( RULE_STRING ) { - // InternalTextualScenario.g:2632:2: ( ( 'configuration_item' ) ) - // InternalTextualScenario.g:2633:3: ( 'configuration_item' ) - { - before(grammarAccess.getConfigurationItemAccess().getKeywordConfiguration_itemKeyword_0_0()); - // InternalTextualScenario.g:2634:3: ( 'configuration_item' ) - // InternalTextualScenario.g:2635:4: 'configuration_item' + // InternalTextualScenario.g:3278:2: ( RULE_STRING ) + // InternalTextualScenario.g:3279:3: RULE_STRING { - before(grammarAccess.getConfigurationItemAccess().getKeywordConfiguration_itemKeyword_0_0()); - match(input,30,FOLLOW_2); - after(grammarAccess.getConfigurationItemAccess().getKeywordConfiguration_itemKeyword_0_0()); - - } - - after(grammarAccess.getConfigurationItemAccess().getKeywordConfiguration_itemKeyword_0_0()); + before(grammarAccess.getRoleAccess().getNameSTRINGTerminalRuleCall_1_0()); + match(input,RULE_STRING,FOLLOW_2); + after(grammarAccess.getRoleAccess().getNameSTRINGTerminalRuleCall_1_0()); } @@ -8357,25 +10346,25 @@ public final void rule__ConfigurationItem__KeywordAssignment_0() throws Recognit } return ; } - // $ANTLR end "rule__ConfigurationItem__KeywordAssignment_0" + // $ANTLR end "rule__Role__NameAssignment_1" - // $ANTLR start "rule__ConfigurationItem__NameAssignment_1" - // InternalTextualScenario.g:2646:1: rule__ConfigurationItem__NameAssignment_1 : ( RULE_STRING ) ; - public final void rule__ConfigurationItem__NameAssignment_1() throws RecognitionException { + // $ANTLR start "rule__SequenceMessage__SourceAssignment_0" + // InternalTextualScenario.g:3288:1: rule__SequenceMessage__SourceAssignment_0 : ( RULE_STRING ) ; + public final void rule__SequenceMessage__SourceAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2650:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:2651:2: ( RULE_STRING ) + // InternalTextualScenario.g:3292:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3293:2: ( RULE_STRING ) { - // InternalTextualScenario.g:2651:2: ( RULE_STRING ) - // InternalTextualScenario.g:2652:3: RULE_STRING + // InternalTextualScenario.g:3293:2: ( RULE_STRING ) + // InternalTextualScenario.g:3294:3: RULE_STRING { - before(grammarAccess.getConfigurationItemAccess().getNameSTRINGTerminalRuleCall_1_0()); + before(grammarAccess.getSequenceMessageAccess().getSourceSTRINGTerminalRuleCall_0_0()); match(input,RULE_STRING,FOLLOW_2); - after(grammarAccess.getConfigurationItemAccess().getNameSTRINGTerminalRuleCall_1_0()); + after(grammarAccess.getSequenceMessageAccess().getSourceSTRINGTerminalRuleCall_0_0()); } @@ -8394,33 +10383,33 @@ public final void rule__ConfigurationItem__NameAssignment_1() throws Recognition } return ; } - // $ANTLR end "rule__ConfigurationItem__NameAssignment_1" + // $ANTLR end "rule__SequenceMessage__SourceAssignment_0" - // $ANTLR start "rule__Function__KeywordAssignment_0" - // InternalTextualScenario.g:2661:1: rule__Function__KeywordAssignment_0 : ( ( 'function' ) ) ; - public final void rule__Function__KeywordAssignment_0() throws RecognitionException { + // $ANTLR start "rule__SequenceMessage__ArrowAssignment_1" + // InternalTextualScenario.g:3303:1: rule__SequenceMessage__ArrowAssignment_1 : ( ( '->' ) ) ; + public final void rule__SequenceMessage__ArrowAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2665:1: ( ( ( 'function' ) ) ) - // InternalTextualScenario.g:2666:2: ( ( 'function' ) ) + // InternalTextualScenario.g:3307:1: ( ( ( '->' ) ) ) + // InternalTextualScenario.g:3308:2: ( ( '->' ) ) { - // InternalTextualScenario.g:2666:2: ( ( 'function' ) ) - // InternalTextualScenario.g:2667:3: ( 'function' ) + // InternalTextualScenario.g:3308:2: ( ( '->' ) ) + // InternalTextualScenario.g:3309:3: ( '->' ) { - before(grammarAccess.getFunctionAccess().getKeywordFunctionKeyword_0_0()); - // InternalTextualScenario.g:2668:3: ( 'function' ) - // InternalTextualScenario.g:2669:4: 'function' + before(grammarAccess.getSequenceMessageAccess().getArrowHyphenMinusGreaterThanSignKeyword_1_0()); + // InternalTextualScenario.g:3310:3: ( '->' ) + // InternalTextualScenario.g:3311:4: '->' { - before(grammarAccess.getFunctionAccess().getKeywordFunctionKeyword_0_0()); - match(input,24,FOLLOW_2); - after(grammarAccess.getFunctionAccess().getKeywordFunctionKeyword_0_0()); + before(grammarAccess.getSequenceMessageAccess().getArrowHyphenMinusGreaterThanSignKeyword_1_0()); + match(input,34,FOLLOW_2); + after(grammarAccess.getSequenceMessageAccess().getArrowHyphenMinusGreaterThanSignKeyword_1_0()); } - after(grammarAccess.getFunctionAccess().getKeywordFunctionKeyword_0_0()); + after(grammarAccess.getSequenceMessageAccess().getArrowHyphenMinusGreaterThanSignKeyword_1_0()); } @@ -8439,25 +10428,25 @@ public final void rule__Function__KeywordAssignment_0() throws RecognitionExcept } return ; } - // $ANTLR end "rule__Function__KeywordAssignment_0" + // $ANTLR end "rule__SequenceMessage__ArrowAssignment_1" - // $ANTLR start "rule__Function__NameAssignment_1" - // InternalTextualScenario.g:2680:1: rule__Function__NameAssignment_1 : ( RULE_STRING ) ; - public final void rule__Function__NameAssignment_1() throws RecognitionException { + // $ANTLR start "rule__SequenceMessage__TargetAssignment_2" + // InternalTextualScenario.g:3322:1: rule__SequenceMessage__TargetAssignment_2 : ( RULE_STRING ) ; + public final void rule__SequenceMessage__TargetAssignment_2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2684:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:2685:2: ( RULE_STRING ) + // InternalTextualScenario.g:3326:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3327:2: ( RULE_STRING ) { - // InternalTextualScenario.g:2685:2: ( RULE_STRING ) - // InternalTextualScenario.g:2686:3: RULE_STRING + // InternalTextualScenario.g:3327:2: ( RULE_STRING ) + // InternalTextualScenario.g:3328:3: RULE_STRING { - before(grammarAccess.getFunctionAccess().getNameSTRINGTerminalRuleCall_1_0()); + before(grammarAccess.getSequenceMessageAccess().getTargetSTRINGTerminalRuleCall_2_0()); match(input,RULE_STRING,FOLLOW_2); - after(grammarAccess.getFunctionAccess().getNameSTRINGTerminalRuleCall_1_0()); + after(grammarAccess.getSequenceMessageAccess().getTargetSTRINGTerminalRuleCall_2_0()); } @@ -8476,33 +10465,33 @@ public final void rule__Function__NameAssignment_1() throws RecognitionException } return ; } - // $ANTLR end "rule__Function__NameAssignment_1" + // $ANTLR end "rule__SequenceMessage__TargetAssignment_2" - // $ANTLR start "rule__Activity__KeywordAssignment_0" - // InternalTextualScenario.g:2695:1: rule__Activity__KeywordAssignment_0 : ( ( 'activity' ) ) ; - public final void rule__Activity__KeywordAssignment_0() throws RecognitionException { + // $ANTLR start "rule__SequenceMessage__ExecutionAssignment_3" + // InternalTextualScenario.g:3337:1: rule__SequenceMessage__ExecutionAssignment_3 : ( ( 'withExecution' ) ) ; + public final void rule__SequenceMessage__ExecutionAssignment_3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2699:1: ( ( ( 'activity' ) ) ) - // InternalTextualScenario.g:2700:2: ( ( 'activity' ) ) + // InternalTextualScenario.g:3341:1: ( ( ( 'withExecution' ) ) ) + // InternalTextualScenario.g:3342:2: ( ( 'withExecution' ) ) { - // InternalTextualScenario.g:2700:2: ( ( 'activity' ) ) - // InternalTextualScenario.g:2701:3: ( 'activity' ) + // InternalTextualScenario.g:3342:2: ( ( 'withExecution' ) ) + // InternalTextualScenario.g:3343:3: ( 'withExecution' ) { - before(grammarAccess.getActivityAccess().getKeywordActivityKeyword_0_0()); - // InternalTextualScenario.g:2702:3: ( 'activity' ) - // InternalTextualScenario.g:2703:4: 'activity' + before(grammarAccess.getSequenceMessageAccess().getExecutionWithExecutionKeyword_3_0()); + // InternalTextualScenario.g:3344:3: ( 'withExecution' ) + // InternalTextualScenario.g:3345:4: 'withExecution' { - before(grammarAccess.getActivityAccess().getKeywordActivityKeyword_0_0()); - match(input,31,FOLLOW_2); - after(grammarAccess.getActivityAccess().getKeywordActivityKeyword_0_0()); + before(grammarAccess.getSequenceMessageAccess().getExecutionWithExecutionKeyword_3_0()); + match(input,35,FOLLOW_2); + after(grammarAccess.getSequenceMessageAccess().getExecutionWithExecutionKeyword_3_0()); } - after(grammarAccess.getActivityAccess().getKeywordActivityKeyword_0_0()); + after(grammarAccess.getSequenceMessageAccess().getExecutionWithExecutionKeyword_3_0()); } @@ -8521,25 +10510,33 @@ public final void rule__Activity__KeywordAssignment_0() throws RecognitionExcept } return ; } - // $ANTLR end "rule__Activity__KeywordAssignment_0" + // $ANTLR end "rule__SequenceMessage__ExecutionAssignment_3" - // $ANTLR start "rule__Activity__NameAssignment_1" - // InternalTextualScenario.g:2714:1: rule__Activity__NameAssignment_1 : ( RULE_STRING ) ; - public final void rule__Activity__NameAssignment_1() throws RecognitionException { + // $ANTLR start "rule__SequenceMessage__ReturnAssignment_4" + // InternalTextualScenario.g:3356:1: rule__SequenceMessage__ReturnAssignment_4 : ( ( 'withReturn' ) ) ; + public final void rule__SequenceMessage__ReturnAssignment_4() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2718:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:2719:2: ( RULE_STRING ) + // InternalTextualScenario.g:3360:1: ( ( ( 'withReturn' ) ) ) + // InternalTextualScenario.g:3361:2: ( ( 'withReturn' ) ) { - // InternalTextualScenario.g:2719:2: ( RULE_STRING ) - // InternalTextualScenario.g:2720:3: RULE_STRING + // InternalTextualScenario.g:3361:2: ( ( 'withReturn' ) ) + // InternalTextualScenario.g:3362:3: ( 'withReturn' ) { - before(grammarAccess.getActivityAccess().getNameSTRINGTerminalRuleCall_1_0()); - match(input,RULE_STRING,FOLLOW_2); - after(grammarAccess.getActivityAccess().getNameSTRINGTerminalRuleCall_1_0()); + before(grammarAccess.getSequenceMessageAccess().getReturnWithReturnKeyword_4_0()); + // InternalTextualScenario.g:3363:3: ( 'withReturn' ) + // InternalTextualScenario.g:3364:4: 'withReturn' + { + before(grammarAccess.getSequenceMessageAccess().getReturnWithReturnKeyword_4_0()); + match(input,36,FOLLOW_2); + after(grammarAccess.getSequenceMessageAccess().getReturnWithReturnKeyword_4_0()); + + } + + after(grammarAccess.getSequenceMessageAccess().getReturnWithReturnKeyword_4_0()); } @@ -8558,33 +10555,33 @@ public final void rule__Activity__NameAssignment_1() throws RecognitionException } return ; } - // $ANTLR end "rule__Activity__NameAssignment_1" + // $ANTLR end "rule__SequenceMessage__ReturnAssignment_4" - // $ANTLR start "rule__Entity__KeywordAssignment_0" - // InternalTextualScenario.g:2729:1: rule__Entity__KeywordAssignment_0 : ( ( 'entity' ) ) ; - public final void rule__Entity__KeywordAssignment_0() throws RecognitionException { + // $ANTLR start "rule__SequenceMessage__DoubleDotAssignment_5" + // InternalTextualScenario.g:3375:1: rule__SequenceMessage__DoubleDotAssignment_5 : ( ( ':' ) ) ; + public final void rule__SequenceMessage__DoubleDotAssignment_5() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2733:1: ( ( ( 'entity' ) ) ) - // InternalTextualScenario.g:2734:2: ( ( 'entity' ) ) + // InternalTextualScenario.g:3379:1: ( ( ( ':' ) ) ) + // InternalTextualScenario.g:3380:2: ( ( ':' ) ) { - // InternalTextualScenario.g:2734:2: ( ( 'entity' ) ) - // InternalTextualScenario.g:2735:3: ( 'entity' ) + // InternalTextualScenario.g:3380:2: ( ( ':' ) ) + // InternalTextualScenario.g:3381:3: ( ':' ) { - before(grammarAccess.getEntityAccess().getKeywordEntityKeyword_0_0()); - // InternalTextualScenario.g:2736:3: ( 'entity' ) - // InternalTextualScenario.g:2737:4: 'entity' + before(grammarAccess.getSequenceMessageAccess().getDoubleDotColonKeyword_5_0()); + // InternalTextualScenario.g:3382:3: ( ':' ) + // InternalTextualScenario.g:3383:4: ':' { - before(grammarAccess.getEntityAccess().getKeywordEntityKeyword_0_0()); - match(input,32,FOLLOW_2); - after(grammarAccess.getEntityAccess().getKeywordEntityKeyword_0_0()); + before(grammarAccess.getSequenceMessageAccess().getDoubleDotColonKeyword_5_0()); + match(input,37,FOLLOW_2); + after(grammarAccess.getSequenceMessageAccess().getDoubleDotColonKeyword_5_0()); } - after(grammarAccess.getEntityAccess().getKeywordEntityKeyword_0_0()); + after(grammarAccess.getSequenceMessageAccess().getDoubleDotColonKeyword_5_0()); } @@ -8603,25 +10600,25 @@ public final void rule__Entity__KeywordAssignment_0() throws RecognitionExceptio } return ; } - // $ANTLR end "rule__Entity__KeywordAssignment_0" + // $ANTLR end "rule__SequenceMessage__DoubleDotAssignment_5" - // $ANTLR start "rule__Entity__NameAssignment_1" - // InternalTextualScenario.g:2748:1: rule__Entity__NameAssignment_1 : ( RULE_STRING ) ; - public final void rule__Entity__NameAssignment_1() throws RecognitionException { + // $ANTLR start "rule__SequenceMessage__NameAssignment_6" + // InternalTextualScenario.g:3394:1: rule__SequenceMessage__NameAssignment_6 : ( RULE_STRING ) ; + public final void rule__SequenceMessage__NameAssignment_6() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2752:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:2753:2: ( RULE_STRING ) + // InternalTextualScenario.g:3398:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3399:2: ( RULE_STRING ) { - // InternalTextualScenario.g:2753:2: ( RULE_STRING ) - // InternalTextualScenario.g:2754:3: RULE_STRING + // InternalTextualScenario.g:3399:2: ( RULE_STRING ) + // InternalTextualScenario.g:3400:3: RULE_STRING { - before(grammarAccess.getEntityAccess().getNameSTRINGTerminalRuleCall_1_0()); + before(grammarAccess.getSequenceMessageAccess().getNameSTRINGTerminalRuleCall_6_0()); match(input,RULE_STRING,FOLLOW_2); - after(grammarAccess.getEntityAccess().getNameSTRINGTerminalRuleCall_1_0()); + after(grammarAccess.getSequenceMessageAccess().getNameSTRINGTerminalRuleCall_6_0()); } @@ -8640,33 +10637,25 @@ public final void rule__Entity__NameAssignment_1() throws RecognitionException { } return ; } - // $ANTLR end "rule__Entity__NameAssignment_1" + // $ANTLR end "rule__SequenceMessage__NameAssignment_6" - // $ANTLR start "rule__Role__KeywordAssignment_0" - // InternalTextualScenario.g:2763:1: rule__Role__KeywordAssignment_0 : ( ( 'role' ) ) ; - public final void rule__Role__KeywordAssignment_0() throws RecognitionException { + // $ANTLR start "rule__CreateMessage__SourceAssignment_0" + // InternalTextualScenario.g:3409:1: rule__CreateMessage__SourceAssignment_0 : ( RULE_STRING ) ; + public final void rule__CreateMessage__SourceAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2767:1: ( ( ( 'role' ) ) ) - // InternalTextualScenario.g:2768:2: ( ( 'role' ) ) + // InternalTextualScenario.g:3413:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3414:2: ( RULE_STRING ) { - // InternalTextualScenario.g:2768:2: ( ( 'role' ) ) - // InternalTextualScenario.g:2769:3: ( 'role' ) + // InternalTextualScenario.g:3414:2: ( RULE_STRING ) + // InternalTextualScenario.g:3415:3: RULE_STRING { - before(grammarAccess.getRoleAccess().getKeywordRoleKeyword_0_0()); - // InternalTextualScenario.g:2770:3: ( 'role' ) - // InternalTextualScenario.g:2771:4: 'role' - { - before(grammarAccess.getRoleAccess().getKeywordRoleKeyword_0_0()); - match(input,33,FOLLOW_2); - after(grammarAccess.getRoleAccess().getKeywordRoleKeyword_0_0()); - - } - - after(grammarAccess.getRoleAccess().getKeywordRoleKeyword_0_0()); + before(grammarAccess.getCreateMessageAccess().getSourceSTRINGTerminalRuleCall_0_0()); + match(input,RULE_STRING,FOLLOW_2); + after(grammarAccess.getCreateMessageAccess().getSourceSTRINGTerminalRuleCall_0_0()); } @@ -8685,25 +10674,33 @@ public final void rule__Role__KeywordAssignment_0() throws RecognitionException } return ; } - // $ANTLR end "rule__Role__KeywordAssignment_0" + // $ANTLR end "rule__CreateMessage__SourceAssignment_0" - // $ANTLR start "rule__Role__NameAssignment_1" - // InternalTextualScenario.g:2782:1: rule__Role__NameAssignment_1 : ( RULE_STRING ) ; - public final void rule__Role__NameAssignment_1() throws RecognitionException { + // $ANTLR start "rule__CreateMessage__ArrowAssignment_1" + // InternalTextualScenario.g:3424:1: rule__CreateMessage__ArrowAssignment_1 : ( ( '->+' ) ) ; + public final void rule__CreateMessage__ArrowAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2786:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:2787:2: ( RULE_STRING ) + // InternalTextualScenario.g:3428:1: ( ( ( '->+' ) ) ) + // InternalTextualScenario.g:3429:2: ( ( '->+' ) ) { - // InternalTextualScenario.g:2787:2: ( RULE_STRING ) - // InternalTextualScenario.g:2788:3: RULE_STRING + // InternalTextualScenario.g:3429:2: ( ( '->+' ) ) + // InternalTextualScenario.g:3430:3: ( '->+' ) { - before(grammarAccess.getRoleAccess().getNameSTRINGTerminalRuleCall_1_0()); - match(input,RULE_STRING,FOLLOW_2); - after(grammarAccess.getRoleAccess().getNameSTRINGTerminalRuleCall_1_0()); + before(grammarAccess.getCreateMessageAccess().getArrowHyphenMinusGreaterThanSignPlusSignKeyword_1_0()); + // InternalTextualScenario.g:3431:3: ( '->+' ) + // InternalTextualScenario.g:3432:4: '->+' + { + before(grammarAccess.getCreateMessageAccess().getArrowHyphenMinusGreaterThanSignPlusSignKeyword_1_0()); + match(input,38,FOLLOW_2); + after(grammarAccess.getCreateMessageAccess().getArrowHyphenMinusGreaterThanSignPlusSignKeyword_1_0()); + + } + + after(grammarAccess.getCreateMessageAccess().getArrowHyphenMinusGreaterThanSignPlusSignKeyword_1_0()); } @@ -8722,25 +10719,25 @@ public final void rule__Role__NameAssignment_1() throws RecognitionException { } return ; } - // $ANTLR end "rule__Role__NameAssignment_1" + // $ANTLR end "rule__CreateMessage__ArrowAssignment_1" - // $ANTLR start "rule__SequenceMessage__SourceAssignment_0" - // InternalTextualScenario.g:2797:1: rule__SequenceMessage__SourceAssignment_0 : ( RULE_STRING ) ; - public final void rule__SequenceMessage__SourceAssignment_0() throws RecognitionException { + // $ANTLR start "rule__CreateMessage__TargetAssignment_2" + // InternalTextualScenario.g:3443:1: rule__CreateMessage__TargetAssignment_2 : ( RULE_STRING ) ; + public final void rule__CreateMessage__TargetAssignment_2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2801:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:2802:2: ( RULE_STRING ) + // InternalTextualScenario.g:3447:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3448:2: ( RULE_STRING ) { - // InternalTextualScenario.g:2802:2: ( RULE_STRING ) - // InternalTextualScenario.g:2803:3: RULE_STRING + // InternalTextualScenario.g:3448:2: ( RULE_STRING ) + // InternalTextualScenario.g:3449:3: RULE_STRING { - before(grammarAccess.getSequenceMessageAccess().getSourceSTRINGTerminalRuleCall_0_0()); + before(grammarAccess.getCreateMessageAccess().getTargetSTRINGTerminalRuleCall_2_0()); match(input,RULE_STRING,FOLLOW_2); - after(grammarAccess.getSequenceMessageAccess().getSourceSTRINGTerminalRuleCall_0_0()); + after(grammarAccess.getCreateMessageAccess().getTargetSTRINGTerminalRuleCall_2_0()); } @@ -8759,33 +10756,33 @@ public final void rule__SequenceMessage__SourceAssignment_0() throws Recognition } return ; } - // $ANTLR end "rule__SequenceMessage__SourceAssignment_0" + // $ANTLR end "rule__CreateMessage__TargetAssignment_2" - // $ANTLR start "rule__SequenceMessage__ArrowAssignment_1" - // InternalTextualScenario.g:2812:1: rule__SequenceMessage__ArrowAssignment_1 : ( ( '->' ) ) ; - public final void rule__SequenceMessage__ArrowAssignment_1() throws RecognitionException { + // $ANTLR start "rule__CreateMessage__DoubleDotAssignment_3" + // InternalTextualScenario.g:3458:1: rule__CreateMessage__DoubleDotAssignment_3 : ( ( ':' ) ) ; + public final void rule__CreateMessage__DoubleDotAssignment_3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2816:1: ( ( ( '->' ) ) ) - // InternalTextualScenario.g:2817:2: ( ( '->' ) ) + // InternalTextualScenario.g:3462:1: ( ( ( ':' ) ) ) + // InternalTextualScenario.g:3463:2: ( ( ':' ) ) { - // InternalTextualScenario.g:2817:2: ( ( '->' ) ) - // InternalTextualScenario.g:2818:3: ( '->' ) + // InternalTextualScenario.g:3463:2: ( ( ':' ) ) + // InternalTextualScenario.g:3464:3: ( ':' ) { - before(grammarAccess.getSequenceMessageAccess().getArrowHyphenMinusGreaterThanSignKeyword_1_0()); - // InternalTextualScenario.g:2819:3: ( '->' ) - // InternalTextualScenario.g:2820:4: '->' + before(grammarAccess.getCreateMessageAccess().getDoubleDotColonKeyword_3_0()); + // InternalTextualScenario.g:3465:3: ( ':' ) + // InternalTextualScenario.g:3466:4: ':' { - before(grammarAccess.getSequenceMessageAccess().getArrowHyphenMinusGreaterThanSignKeyword_1_0()); - match(input,34,FOLLOW_2); - after(grammarAccess.getSequenceMessageAccess().getArrowHyphenMinusGreaterThanSignKeyword_1_0()); + before(grammarAccess.getCreateMessageAccess().getDoubleDotColonKeyword_3_0()); + match(input,37,FOLLOW_2); + after(grammarAccess.getCreateMessageAccess().getDoubleDotColonKeyword_3_0()); } - after(grammarAccess.getSequenceMessageAccess().getArrowHyphenMinusGreaterThanSignKeyword_1_0()); + after(grammarAccess.getCreateMessageAccess().getDoubleDotColonKeyword_3_0()); } @@ -8804,25 +10801,25 @@ public final void rule__SequenceMessage__ArrowAssignment_1() throws RecognitionE } return ; } - // $ANTLR end "rule__SequenceMessage__ArrowAssignment_1" + // $ANTLR end "rule__CreateMessage__DoubleDotAssignment_3" - // $ANTLR start "rule__SequenceMessage__TargetAssignment_2" - // InternalTextualScenario.g:2831:1: rule__SequenceMessage__TargetAssignment_2 : ( RULE_STRING ) ; - public final void rule__SequenceMessage__TargetAssignment_2() throws RecognitionException { + // $ANTLR start "rule__CreateMessage__NameAssignment_4" + // InternalTextualScenario.g:3477:1: rule__CreateMessage__NameAssignment_4 : ( RULE_STRING ) ; + public final void rule__CreateMessage__NameAssignment_4() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2835:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:2836:2: ( RULE_STRING ) + // InternalTextualScenario.g:3481:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3482:2: ( RULE_STRING ) { - // InternalTextualScenario.g:2836:2: ( RULE_STRING ) - // InternalTextualScenario.g:2837:3: RULE_STRING + // InternalTextualScenario.g:3482:2: ( RULE_STRING ) + // InternalTextualScenario.g:3483:3: RULE_STRING { - before(grammarAccess.getSequenceMessageAccess().getTargetSTRINGTerminalRuleCall_2_0()); + before(grammarAccess.getCreateMessageAccess().getNameSTRINGTerminalRuleCall_4_0()); match(input,RULE_STRING,FOLLOW_2); - after(grammarAccess.getSequenceMessageAccess().getTargetSTRINGTerminalRuleCall_2_0()); + after(grammarAccess.getCreateMessageAccess().getNameSTRINGTerminalRuleCall_4_0()); } @@ -8841,33 +10838,25 @@ public final void rule__SequenceMessage__TargetAssignment_2() throws Recognition } return ; } - // $ANTLR end "rule__SequenceMessage__TargetAssignment_2" + // $ANTLR end "rule__CreateMessage__NameAssignment_4" - // $ANTLR start "rule__SequenceMessage__ExecutionAssignment_3" - // InternalTextualScenario.g:2846:1: rule__SequenceMessage__ExecutionAssignment_3 : ( ( 'withExecution' ) ) ; - public final void rule__SequenceMessage__ExecutionAssignment_3() throws RecognitionException { + // $ANTLR start "rule__DeleteMessage__SourceAssignment_0" + // InternalTextualScenario.g:3492:1: rule__DeleteMessage__SourceAssignment_0 : ( RULE_STRING ) ; + public final void rule__DeleteMessage__SourceAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2850:1: ( ( ( 'withExecution' ) ) ) - // InternalTextualScenario.g:2851:2: ( ( 'withExecution' ) ) + // InternalTextualScenario.g:3496:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3497:2: ( RULE_STRING ) { - // InternalTextualScenario.g:2851:2: ( ( 'withExecution' ) ) - // InternalTextualScenario.g:2852:3: ( 'withExecution' ) + // InternalTextualScenario.g:3497:2: ( RULE_STRING ) + // InternalTextualScenario.g:3498:3: RULE_STRING { - before(grammarAccess.getSequenceMessageAccess().getExecutionWithExecutionKeyword_3_0()); - // InternalTextualScenario.g:2853:3: ( 'withExecution' ) - // InternalTextualScenario.g:2854:4: 'withExecution' - { - before(grammarAccess.getSequenceMessageAccess().getExecutionWithExecutionKeyword_3_0()); - match(input,35,FOLLOW_2); - after(grammarAccess.getSequenceMessageAccess().getExecutionWithExecutionKeyword_3_0()); - - } - - after(grammarAccess.getSequenceMessageAccess().getExecutionWithExecutionKeyword_3_0()); + before(grammarAccess.getDeleteMessageAccess().getSourceSTRINGTerminalRuleCall_0_0()); + match(input,RULE_STRING,FOLLOW_2); + after(grammarAccess.getDeleteMessageAccess().getSourceSTRINGTerminalRuleCall_0_0()); } @@ -8886,33 +10875,33 @@ public final void rule__SequenceMessage__ExecutionAssignment_3() throws Recognit } return ; } - // $ANTLR end "rule__SequenceMessage__ExecutionAssignment_3" + // $ANTLR end "rule__DeleteMessage__SourceAssignment_0" - // $ANTLR start "rule__SequenceMessage__ReturnAssignment_4" - // InternalTextualScenario.g:2865:1: rule__SequenceMessage__ReturnAssignment_4 : ( ( 'withReturn' ) ) ; - public final void rule__SequenceMessage__ReturnAssignment_4() throws RecognitionException { + // $ANTLR start "rule__DeleteMessage__ArrowAssignment_1" + // InternalTextualScenario.g:3507:1: rule__DeleteMessage__ArrowAssignment_1 : ( ( '->x' ) ) ; + public final void rule__DeleteMessage__ArrowAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2869:1: ( ( ( 'withReturn' ) ) ) - // InternalTextualScenario.g:2870:2: ( ( 'withReturn' ) ) + // InternalTextualScenario.g:3511:1: ( ( ( '->x' ) ) ) + // InternalTextualScenario.g:3512:2: ( ( '->x' ) ) { - // InternalTextualScenario.g:2870:2: ( ( 'withReturn' ) ) - // InternalTextualScenario.g:2871:3: ( 'withReturn' ) + // InternalTextualScenario.g:3512:2: ( ( '->x' ) ) + // InternalTextualScenario.g:3513:3: ( '->x' ) { - before(grammarAccess.getSequenceMessageAccess().getReturnWithReturnKeyword_4_0()); - // InternalTextualScenario.g:2872:3: ( 'withReturn' ) - // InternalTextualScenario.g:2873:4: 'withReturn' + before(grammarAccess.getDeleteMessageAccess().getArrowXKeyword_1_0()); + // InternalTextualScenario.g:3514:3: ( '->x' ) + // InternalTextualScenario.g:3515:4: '->x' { - before(grammarAccess.getSequenceMessageAccess().getReturnWithReturnKeyword_4_0()); - match(input,36,FOLLOW_2); - after(grammarAccess.getSequenceMessageAccess().getReturnWithReturnKeyword_4_0()); + before(grammarAccess.getDeleteMessageAccess().getArrowXKeyword_1_0()); + match(input,39,FOLLOW_2); + after(grammarAccess.getDeleteMessageAccess().getArrowXKeyword_1_0()); } - after(grammarAccess.getSequenceMessageAccess().getReturnWithReturnKeyword_4_0()); + after(grammarAccess.getDeleteMessageAccess().getArrowXKeyword_1_0()); } @@ -8931,33 +10920,25 @@ public final void rule__SequenceMessage__ReturnAssignment_4() throws Recognition } return ; } - // $ANTLR end "rule__SequenceMessage__ReturnAssignment_4" + // $ANTLR end "rule__DeleteMessage__ArrowAssignment_1" - // $ANTLR start "rule__SequenceMessage__DoubleDotAssignment_5" - // InternalTextualScenario.g:2884:1: rule__SequenceMessage__DoubleDotAssignment_5 : ( ( ':' ) ) ; - public final void rule__SequenceMessage__DoubleDotAssignment_5() throws RecognitionException { + // $ANTLR start "rule__DeleteMessage__TargetAssignment_2" + // InternalTextualScenario.g:3526:1: rule__DeleteMessage__TargetAssignment_2 : ( RULE_STRING ) ; + public final void rule__DeleteMessage__TargetAssignment_2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2888:1: ( ( ( ':' ) ) ) - // InternalTextualScenario.g:2889:2: ( ( ':' ) ) + // InternalTextualScenario.g:3530:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3531:2: ( RULE_STRING ) { - // InternalTextualScenario.g:2889:2: ( ( ':' ) ) - // InternalTextualScenario.g:2890:3: ( ':' ) - { - before(grammarAccess.getSequenceMessageAccess().getDoubleDotColonKeyword_5_0()); - // InternalTextualScenario.g:2891:3: ( ':' ) - // InternalTextualScenario.g:2892:4: ':' + // InternalTextualScenario.g:3531:2: ( RULE_STRING ) + // InternalTextualScenario.g:3532:3: RULE_STRING { - before(grammarAccess.getSequenceMessageAccess().getDoubleDotColonKeyword_5_0()); - match(input,37,FOLLOW_2); - after(grammarAccess.getSequenceMessageAccess().getDoubleDotColonKeyword_5_0()); - - } - - after(grammarAccess.getSequenceMessageAccess().getDoubleDotColonKeyword_5_0()); + before(grammarAccess.getDeleteMessageAccess().getTargetSTRINGTerminalRuleCall_2_0()); + match(input,RULE_STRING,FOLLOW_2); + after(grammarAccess.getDeleteMessageAccess().getTargetSTRINGTerminalRuleCall_2_0()); } @@ -8976,25 +10957,33 @@ public final void rule__SequenceMessage__DoubleDotAssignment_5() throws Recognit } return ; } - // $ANTLR end "rule__SequenceMessage__DoubleDotAssignment_5" + // $ANTLR end "rule__DeleteMessage__TargetAssignment_2" - // $ANTLR start "rule__SequenceMessage__NameAssignment_6" - // InternalTextualScenario.g:2903:1: rule__SequenceMessage__NameAssignment_6 : ( RULE_STRING ) ; - public final void rule__SequenceMessage__NameAssignment_6() throws RecognitionException { + // $ANTLR start "rule__DeleteMessage__DoubleDotAssignment_3" + // InternalTextualScenario.g:3541:1: rule__DeleteMessage__DoubleDotAssignment_3 : ( ( ':' ) ) ; + public final void rule__DeleteMessage__DoubleDotAssignment_3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2907:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:2908:2: ( RULE_STRING ) + // InternalTextualScenario.g:3545:1: ( ( ( ':' ) ) ) + // InternalTextualScenario.g:3546:2: ( ( ':' ) ) { - // InternalTextualScenario.g:2908:2: ( RULE_STRING ) - // InternalTextualScenario.g:2909:3: RULE_STRING + // InternalTextualScenario.g:3546:2: ( ( ':' ) ) + // InternalTextualScenario.g:3547:3: ( ':' ) { - before(grammarAccess.getSequenceMessageAccess().getNameSTRINGTerminalRuleCall_6_0()); - match(input,RULE_STRING,FOLLOW_2); - after(grammarAccess.getSequenceMessageAccess().getNameSTRINGTerminalRuleCall_6_0()); + before(grammarAccess.getDeleteMessageAccess().getDoubleDotColonKeyword_3_0()); + // InternalTextualScenario.g:3548:3: ( ':' ) + // InternalTextualScenario.g:3549:4: ':' + { + before(grammarAccess.getDeleteMessageAccess().getDoubleDotColonKeyword_3_0()); + match(input,37,FOLLOW_2); + after(grammarAccess.getDeleteMessageAccess().getDoubleDotColonKeyword_3_0()); + + } + + after(grammarAccess.getDeleteMessageAccess().getDoubleDotColonKeyword_3_0()); } @@ -9013,25 +11002,25 @@ public final void rule__SequenceMessage__NameAssignment_6() throws RecognitionEx } return ; } - // $ANTLR end "rule__SequenceMessage__NameAssignment_6" + // $ANTLR end "rule__DeleteMessage__DoubleDotAssignment_3" - // $ANTLR start "rule__CreateMessage__SourceAssignment_0" - // InternalTextualScenario.g:2918:1: rule__CreateMessage__SourceAssignment_0 : ( RULE_STRING ) ; - public final void rule__CreateMessage__SourceAssignment_0() throws RecognitionException { + // $ANTLR start "rule__DeleteMessage__NameAssignment_4" + // InternalTextualScenario.g:3560:1: rule__DeleteMessage__NameAssignment_4 : ( RULE_STRING ) ; + public final void rule__DeleteMessage__NameAssignment_4() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2922:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:2923:2: ( RULE_STRING ) + // InternalTextualScenario.g:3564:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3565:2: ( RULE_STRING ) { - // InternalTextualScenario.g:2923:2: ( RULE_STRING ) - // InternalTextualScenario.g:2924:3: RULE_STRING + // InternalTextualScenario.g:3565:2: ( RULE_STRING ) + // InternalTextualScenario.g:3566:3: RULE_STRING { - before(grammarAccess.getCreateMessageAccess().getSourceSTRINGTerminalRuleCall_0_0()); + before(grammarAccess.getDeleteMessageAccess().getNameSTRINGTerminalRuleCall_4_0()); match(input,RULE_STRING,FOLLOW_2); - after(grammarAccess.getCreateMessageAccess().getSourceSTRINGTerminalRuleCall_0_0()); + after(grammarAccess.getDeleteMessageAccess().getNameSTRINGTerminalRuleCall_4_0()); } @@ -9050,33 +11039,33 @@ public final void rule__CreateMessage__SourceAssignment_0() throws RecognitionEx } return ; } - // $ANTLR end "rule__CreateMessage__SourceAssignment_0" + // $ANTLR end "rule__DeleteMessage__NameAssignment_4" - // $ANTLR start "rule__CreateMessage__ArrowAssignment_1" - // InternalTextualScenario.g:2933:1: rule__CreateMessage__ArrowAssignment_1 : ( ( '->+' ) ) ; - public final void rule__CreateMessage__ArrowAssignment_1() throws RecognitionException { + // $ANTLR start "rule__ArmTimerMessage__ArrowAssignment_0" + // InternalTextualScenario.g:3575:1: rule__ArmTimerMessage__ArrowAssignment_0 : ( ( '->>' ) ) ; + public final void rule__ArmTimerMessage__ArrowAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2937:1: ( ( ( '->+' ) ) ) - // InternalTextualScenario.g:2938:2: ( ( '->+' ) ) + // InternalTextualScenario.g:3579:1: ( ( ( '->>' ) ) ) + // InternalTextualScenario.g:3580:2: ( ( '->>' ) ) { - // InternalTextualScenario.g:2938:2: ( ( '->+' ) ) - // InternalTextualScenario.g:2939:3: ( '->+' ) + // InternalTextualScenario.g:3580:2: ( ( '->>' ) ) + // InternalTextualScenario.g:3581:3: ( '->>' ) { - before(grammarAccess.getCreateMessageAccess().getArrowHyphenMinusGreaterThanSignPlusSignKeyword_1_0()); - // InternalTextualScenario.g:2940:3: ( '->+' ) - // InternalTextualScenario.g:2941:4: '->+' + before(grammarAccess.getArmTimerMessageAccess().getArrowHyphenMinusGreaterThanSignGreaterThanSignKeyword_0_0()); + // InternalTextualScenario.g:3582:3: ( '->>' ) + // InternalTextualScenario.g:3583:4: '->>' { - before(grammarAccess.getCreateMessageAccess().getArrowHyphenMinusGreaterThanSignPlusSignKeyword_1_0()); - match(input,38,FOLLOW_2); - after(grammarAccess.getCreateMessageAccess().getArrowHyphenMinusGreaterThanSignPlusSignKeyword_1_0()); + before(grammarAccess.getArmTimerMessageAccess().getArrowHyphenMinusGreaterThanSignGreaterThanSignKeyword_0_0()); + match(input,40,FOLLOW_2); + after(grammarAccess.getArmTimerMessageAccess().getArrowHyphenMinusGreaterThanSignGreaterThanSignKeyword_0_0()); } - after(grammarAccess.getCreateMessageAccess().getArrowHyphenMinusGreaterThanSignPlusSignKeyword_1_0()); + after(grammarAccess.getArmTimerMessageAccess().getArrowHyphenMinusGreaterThanSignGreaterThanSignKeyword_0_0()); } @@ -9095,25 +11084,25 @@ public final void rule__CreateMessage__ArrowAssignment_1() throws RecognitionExc } return ; } - // $ANTLR end "rule__CreateMessage__ArrowAssignment_1" + // $ANTLR end "rule__ArmTimerMessage__ArrowAssignment_0" - // $ANTLR start "rule__CreateMessage__TargetAssignment_2" - // InternalTextualScenario.g:2952:1: rule__CreateMessage__TargetAssignment_2 : ( RULE_STRING ) ; - public final void rule__CreateMessage__TargetAssignment_2() throws RecognitionException { + // $ANTLR start "rule__ArmTimerMessage__ParticipantAssignment_1" + // InternalTextualScenario.g:3594:1: rule__ArmTimerMessage__ParticipantAssignment_1 : ( RULE_STRING ) ; + public final void rule__ArmTimerMessage__ParticipantAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2956:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:2957:2: ( RULE_STRING ) + // InternalTextualScenario.g:3598:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3599:2: ( RULE_STRING ) { - // InternalTextualScenario.g:2957:2: ( RULE_STRING ) - // InternalTextualScenario.g:2958:3: RULE_STRING + // InternalTextualScenario.g:3599:2: ( RULE_STRING ) + // InternalTextualScenario.g:3600:3: RULE_STRING { - before(grammarAccess.getCreateMessageAccess().getTargetSTRINGTerminalRuleCall_2_0()); + before(grammarAccess.getArmTimerMessageAccess().getParticipantSTRINGTerminalRuleCall_1_0()); match(input,RULE_STRING,FOLLOW_2); - after(grammarAccess.getCreateMessageAccess().getTargetSTRINGTerminalRuleCall_2_0()); + after(grammarAccess.getArmTimerMessageAccess().getParticipantSTRINGTerminalRuleCall_1_0()); } @@ -9132,33 +11121,33 @@ public final void rule__CreateMessage__TargetAssignment_2() throws RecognitionEx } return ; } - // $ANTLR end "rule__CreateMessage__TargetAssignment_2" + // $ANTLR end "rule__ArmTimerMessage__ParticipantAssignment_1" - // $ANTLR start "rule__CreateMessage__DoubleDotAssignment_3" - // InternalTextualScenario.g:2967:1: rule__CreateMessage__DoubleDotAssignment_3 : ( ( ':' ) ) ; - public final void rule__CreateMessage__DoubleDotAssignment_3() throws RecognitionException { + // $ANTLR start "rule__ArmTimerMessage__ExecutionAssignment_2" + // InternalTextualScenario.g:3609:1: rule__ArmTimerMessage__ExecutionAssignment_2 : ( ( 'withExecution' ) ) ; + public final void rule__ArmTimerMessage__ExecutionAssignment_2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2971:1: ( ( ( ':' ) ) ) - // InternalTextualScenario.g:2972:2: ( ( ':' ) ) + // InternalTextualScenario.g:3613:1: ( ( ( 'withExecution' ) ) ) + // InternalTextualScenario.g:3614:2: ( ( 'withExecution' ) ) { - // InternalTextualScenario.g:2972:2: ( ( ':' ) ) - // InternalTextualScenario.g:2973:3: ( ':' ) + // InternalTextualScenario.g:3614:2: ( ( 'withExecution' ) ) + // InternalTextualScenario.g:3615:3: ( 'withExecution' ) { - before(grammarAccess.getCreateMessageAccess().getDoubleDotColonKeyword_3_0()); - // InternalTextualScenario.g:2974:3: ( ':' ) - // InternalTextualScenario.g:2975:4: ':' + before(grammarAccess.getArmTimerMessageAccess().getExecutionWithExecutionKeyword_2_0()); + // InternalTextualScenario.g:3616:3: ( 'withExecution' ) + // InternalTextualScenario.g:3617:4: 'withExecution' { - before(grammarAccess.getCreateMessageAccess().getDoubleDotColonKeyword_3_0()); - match(input,37,FOLLOW_2); - after(grammarAccess.getCreateMessageAccess().getDoubleDotColonKeyword_3_0()); + before(grammarAccess.getArmTimerMessageAccess().getExecutionWithExecutionKeyword_2_0()); + match(input,35,FOLLOW_2); + after(grammarAccess.getArmTimerMessageAccess().getExecutionWithExecutionKeyword_2_0()); } - after(grammarAccess.getCreateMessageAccess().getDoubleDotColonKeyword_3_0()); + after(grammarAccess.getArmTimerMessageAccess().getExecutionWithExecutionKeyword_2_0()); } @@ -9177,25 +11166,33 @@ public final void rule__CreateMessage__DoubleDotAssignment_3() throws Recognitio } return ; } - // $ANTLR end "rule__CreateMessage__DoubleDotAssignment_3" + // $ANTLR end "rule__ArmTimerMessage__ExecutionAssignment_2" - // $ANTLR start "rule__CreateMessage__NameAssignment_4" - // InternalTextualScenario.g:2986:1: rule__CreateMessage__NameAssignment_4 : ( RULE_STRING ) ; - public final void rule__CreateMessage__NameAssignment_4() throws RecognitionException { + // $ANTLR start "rule__ArmTimerMessage__DoubleDotAssignment_3" + // InternalTextualScenario.g:3628:1: rule__ArmTimerMessage__DoubleDotAssignment_3 : ( ( ':' ) ) ; + public final void rule__ArmTimerMessage__DoubleDotAssignment_3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:2990:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:2991:2: ( RULE_STRING ) + // InternalTextualScenario.g:3632:1: ( ( ( ':' ) ) ) + // InternalTextualScenario.g:3633:2: ( ( ':' ) ) { - // InternalTextualScenario.g:2991:2: ( RULE_STRING ) - // InternalTextualScenario.g:2992:3: RULE_STRING + // InternalTextualScenario.g:3633:2: ( ( ':' ) ) + // InternalTextualScenario.g:3634:3: ( ':' ) { - before(grammarAccess.getCreateMessageAccess().getNameSTRINGTerminalRuleCall_4_0()); - match(input,RULE_STRING,FOLLOW_2); - after(grammarAccess.getCreateMessageAccess().getNameSTRINGTerminalRuleCall_4_0()); + before(grammarAccess.getArmTimerMessageAccess().getDoubleDotColonKeyword_3_0()); + // InternalTextualScenario.g:3635:3: ( ':' ) + // InternalTextualScenario.g:3636:4: ':' + { + before(grammarAccess.getArmTimerMessageAccess().getDoubleDotColonKeyword_3_0()); + match(input,37,FOLLOW_2); + after(grammarAccess.getArmTimerMessageAccess().getDoubleDotColonKeyword_3_0()); + + } + + after(grammarAccess.getArmTimerMessageAccess().getDoubleDotColonKeyword_3_0()); } @@ -9214,25 +11211,25 @@ public final void rule__CreateMessage__NameAssignment_4() throws RecognitionExce } return ; } - // $ANTLR end "rule__CreateMessage__NameAssignment_4" + // $ANTLR end "rule__ArmTimerMessage__DoubleDotAssignment_3" - // $ANTLR start "rule__DeleteMessage__SourceAssignment_0" - // InternalTextualScenario.g:3001:1: rule__DeleteMessage__SourceAssignment_0 : ( RULE_STRING ) ; - public final void rule__DeleteMessage__SourceAssignment_0() throws RecognitionException { + // $ANTLR start "rule__ArmTimerMessage__NameAssignment_4" + // InternalTextualScenario.g:3647:1: rule__ArmTimerMessage__NameAssignment_4 : ( RULE_STRING ) ; + public final void rule__ArmTimerMessage__NameAssignment_4() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3005:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:3006:2: ( RULE_STRING ) + // InternalTextualScenario.g:3651:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3652:2: ( RULE_STRING ) { - // InternalTextualScenario.g:3006:2: ( RULE_STRING ) - // InternalTextualScenario.g:3007:3: RULE_STRING + // InternalTextualScenario.g:3652:2: ( RULE_STRING ) + // InternalTextualScenario.g:3653:3: RULE_STRING { - before(grammarAccess.getDeleteMessageAccess().getSourceSTRINGTerminalRuleCall_0_0()); + before(grammarAccess.getArmTimerMessageAccess().getNameSTRINGTerminalRuleCall_4_0()); match(input,RULE_STRING,FOLLOW_2); - after(grammarAccess.getDeleteMessageAccess().getSourceSTRINGTerminalRuleCall_0_0()); + after(grammarAccess.getArmTimerMessageAccess().getNameSTRINGTerminalRuleCall_4_0()); } @@ -9251,33 +11248,25 @@ public final void rule__DeleteMessage__SourceAssignment_0() throws RecognitionEx } return ; } - // $ANTLR end "rule__DeleteMessage__SourceAssignment_0" + // $ANTLR end "rule__ArmTimerMessage__NameAssignment_4" - // $ANTLR start "rule__DeleteMessage__ArrowAssignment_1" - // InternalTextualScenario.g:3016:1: rule__DeleteMessage__ArrowAssignment_1 : ( ( '->x' ) ) ; - public final void rule__DeleteMessage__ArrowAssignment_1() throws RecognitionException { + // $ANTLR start "rule__LostMessage__SourceAssignment_0" + // InternalTextualScenario.g:3662:1: rule__LostMessage__SourceAssignment_0 : ( RULE_STRING ) ; + public final void rule__LostMessage__SourceAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3020:1: ( ( ( '->x' ) ) ) - // InternalTextualScenario.g:3021:2: ( ( '->x' ) ) + // InternalTextualScenario.g:3666:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3667:2: ( RULE_STRING ) { - // InternalTextualScenario.g:3021:2: ( ( '->x' ) ) - // InternalTextualScenario.g:3022:3: ( '->x' ) + // InternalTextualScenario.g:3667:2: ( RULE_STRING ) + // InternalTextualScenario.g:3668:3: RULE_STRING { - before(grammarAccess.getDeleteMessageAccess().getArrowXKeyword_1_0()); - // InternalTextualScenario.g:3023:3: ( '->x' ) - // InternalTextualScenario.g:3024:4: '->x' - { - before(grammarAccess.getDeleteMessageAccess().getArrowXKeyword_1_0()); - match(input,39,FOLLOW_2); - after(grammarAccess.getDeleteMessageAccess().getArrowXKeyword_1_0()); - - } - - after(grammarAccess.getDeleteMessageAccess().getArrowXKeyword_1_0()); + before(grammarAccess.getLostMessageAccess().getSourceSTRINGTerminalRuleCall_0_0()); + match(input,RULE_STRING,FOLLOW_2); + after(grammarAccess.getLostMessageAccess().getSourceSTRINGTerminalRuleCall_0_0()); } @@ -9296,25 +11285,33 @@ public final void rule__DeleteMessage__ArrowAssignment_1() throws RecognitionExc } return ; } - // $ANTLR end "rule__DeleteMessage__ArrowAssignment_1" + // $ANTLR end "rule__LostMessage__SourceAssignment_0" - // $ANTLR start "rule__DeleteMessage__TargetAssignment_2" - // InternalTextualScenario.g:3035:1: rule__DeleteMessage__TargetAssignment_2 : ( RULE_STRING ) ; - public final void rule__DeleteMessage__TargetAssignment_2() throws RecognitionException { + // $ANTLR start "rule__LostMessage__ArrowAssignment_1" + // InternalTextualScenario.g:3677:1: rule__LostMessage__ArrowAssignment_1 : ( ( '->o' ) ) ; + public final void rule__LostMessage__ArrowAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3039:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:3040:2: ( RULE_STRING ) + // InternalTextualScenario.g:3681:1: ( ( ( '->o' ) ) ) + // InternalTextualScenario.g:3682:2: ( ( '->o' ) ) { - // InternalTextualScenario.g:3040:2: ( RULE_STRING ) - // InternalTextualScenario.g:3041:3: RULE_STRING + // InternalTextualScenario.g:3682:2: ( ( '->o' ) ) + // InternalTextualScenario.g:3683:3: ( '->o' ) { - before(grammarAccess.getDeleteMessageAccess().getTargetSTRINGTerminalRuleCall_2_0()); - match(input,RULE_STRING,FOLLOW_2); - after(grammarAccess.getDeleteMessageAccess().getTargetSTRINGTerminalRuleCall_2_0()); + before(grammarAccess.getLostMessageAccess().getArrowOKeyword_1_0()); + // InternalTextualScenario.g:3684:3: ( '->o' ) + // InternalTextualScenario.g:3685:4: '->o' + { + before(grammarAccess.getLostMessageAccess().getArrowOKeyword_1_0()); + match(input,41,FOLLOW_2); + after(grammarAccess.getLostMessageAccess().getArrowOKeyword_1_0()); + + } + + after(grammarAccess.getLostMessageAccess().getArrowOKeyword_1_0()); } @@ -9333,33 +11330,33 @@ public final void rule__DeleteMessage__TargetAssignment_2() throws RecognitionEx } return ; } - // $ANTLR end "rule__DeleteMessage__TargetAssignment_2" + // $ANTLR end "rule__LostMessage__ArrowAssignment_1" - // $ANTLR start "rule__DeleteMessage__DoubleDotAssignment_3" - // InternalTextualScenario.g:3050:1: rule__DeleteMessage__DoubleDotAssignment_3 : ( ( ':' ) ) ; - public final void rule__DeleteMessage__DoubleDotAssignment_3() throws RecognitionException { + // $ANTLR start "rule__LostMessage__DoubleDotAssignment_2" + // InternalTextualScenario.g:3696:1: rule__LostMessage__DoubleDotAssignment_2 : ( ( ':' ) ) ; + public final void rule__LostMessage__DoubleDotAssignment_2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3054:1: ( ( ( ':' ) ) ) - // InternalTextualScenario.g:3055:2: ( ( ':' ) ) + // InternalTextualScenario.g:3700:1: ( ( ( ':' ) ) ) + // InternalTextualScenario.g:3701:2: ( ( ':' ) ) { - // InternalTextualScenario.g:3055:2: ( ( ':' ) ) - // InternalTextualScenario.g:3056:3: ( ':' ) + // InternalTextualScenario.g:3701:2: ( ( ':' ) ) + // InternalTextualScenario.g:3702:3: ( ':' ) { - before(grammarAccess.getDeleteMessageAccess().getDoubleDotColonKeyword_3_0()); - // InternalTextualScenario.g:3057:3: ( ':' ) - // InternalTextualScenario.g:3058:4: ':' + before(grammarAccess.getLostMessageAccess().getDoubleDotColonKeyword_2_0()); + // InternalTextualScenario.g:3703:3: ( ':' ) + // InternalTextualScenario.g:3704:4: ':' { - before(grammarAccess.getDeleteMessageAccess().getDoubleDotColonKeyword_3_0()); + before(grammarAccess.getLostMessageAccess().getDoubleDotColonKeyword_2_0()); match(input,37,FOLLOW_2); - after(grammarAccess.getDeleteMessageAccess().getDoubleDotColonKeyword_3_0()); + after(grammarAccess.getLostMessageAccess().getDoubleDotColonKeyword_2_0()); } - after(grammarAccess.getDeleteMessageAccess().getDoubleDotColonKeyword_3_0()); + after(grammarAccess.getLostMessageAccess().getDoubleDotColonKeyword_2_0()); } @@ -9378,25 +11375,25 @@ public final void rule__DeleteMessage__DoubleDotAssignment_3() throws Recognitio } return ; } - // $ANTLR end "rule__DeleteMessage__DoubleDotAssignment_3" + // $ANTLR end "rule__LostMessage__DoubleDotAssignment_2" - // $ANTLR start "rule__DeleteMessage__NameAssignment_4" - // InternalTextualScenario.g:3069:1: rule__DeleteMessage__NameAssignment_4 : ( RULE_STRING ) ; - public final void rule__DeleteMessage__NameAssignment_4() throws RecognitionException { + // $ANTLR start "rule__LostMessage__NameAssignment_3" + // InternalTextualScenario.g:3715:1: rule__LostMessage__NameAssignment_3 : ( RULE_STRING ) ; + public final void rule__LostMessage__NameAssignment_3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3073:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:3074:2: ( RULE_STRING ) + // InternalTextualScenario.g:3719:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3720:2: ( RULE_STRING ) { - // InternalTextualScenario.g:3074:2: ( RULE_STRING ) - // InternalTextualScenario.g:3075:3: RULE_STRING + // InternalTextualScenario.g:3720:2: ( RULE_STRING ) + // InternalTextualScenario.g:3721:3: RULE_STRING { - before(grammarAccess.getDeleteMessageAccess().getNameSTRINGTerminalRuleCall_4_0()); + before(grammarAccess.getLostMessageAccess().getNameSTRINGTerminalRuleCall_3_0()); match(input,RULE_STRING,FOLLOW_2); - after(grammarAccess.getDeleteMessageAccess().getNameSTRINGTerminalRuleCall_4_0()); + after(grammarAccess.getLostMessageAccess().getNameSTRINGTerminalRuleCall_3_0()); } @@ -9415,33 +11412,33 @@ public final void rule__DeleteMessage__NameAssignment_4() throws RecognitionExce } return ; } - // $ANTLR end "rule__DeleteMessage__NameAssignment_4" + // $ANTLR end "rule__LostMessage__NameAssignment_3" - // $ANTLR start "rule__ArmTimerMessage__ArrowAssignment_0" - // InternalTextualScenario.g:3084:1: rule__ArmTimerMessage__ArrowAssignment_0 : ( ( '->>' ) ) ; - public final void rule__ArmTimerMessage__ArrowAssignment_0() throws RecognitionException { + // $ANTLR start "rule__FoundMessage__ArrowAssignment_0" + // InternalTextualScenario.g:3730:1: rule__FoundMessage__ArrowAssignment_0 : ( ( 'o->' ) ) ; + public final void rule__FoundMessage__ArrowAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3088:1: ( ( ( '->>' ) ) ) - // InternalTextualScenario.g:3089:2: ( ( '->>' ) ) + // InternalTextualScenario.g:3734:1: ( ( ( 'o->' ) ) ) + // InternalTextualScenario.g:3735:2: ( ( 'o->' ) ) { - // InternalTextualScenario.g:3089:2: ( ( '->>' ) ) - // InternalTextualScenario.g:3090:3: ( '->>' ) + // InternalTextualScenario.g:3735:2: ( ( 'o->' ) ) + // InternalTextualScenario.g:3736:3: ( 'o->' ) { - before(grammarAccess.getArmTimerMessageAccess().getArrowHyphenMinusGreaterThanSignGreaterThanSignKeyword_0_0()); - // InternalTextualScenario.g:3091:3: ( '->>' ) - // InternalTextualScenario.g:3092:4: '->>' + before(grammarAccess.getFoundMessageAccess().getArrowOKeyword_0_0()); + // InternalTextualScenario.g:3737:3: ( 'o->' ) + // InternalTextualScenario.g:3738:4: 'o->' { - before(grammarAccess.getArmTimerMessageAccess().getArrowHyphenMinusGreaterThanSignGreaterThanSignKeyword_0_0()); - match(input,40,FOLLOW_2); - after(grammarAccess.getArmTimerMessageAccess().getArrowHyphenMinusGreaterThanSignGreaterThanSignKeyword_0_0()); + before(grammarAccess.getFoundMessageAccess().getArrowOKeyword_0_0()); + match(input,42,FOLLOW_2); + after(grammarAccess.getFoundMessageAccess().getArrowOKeyword_0_0()); } - after(grammarAccess.getArmTimerMessageAccess().getArrowHyphenMinusGreaterThanSignGreaterThanSignKeyword_0_0()); + after(grammarAccess.getFoundMessageAccess().getArrowOKeyword_0_0()); } @@ -9460,25 +11457,25 @@ public final void rule__ArmTimerMessage__ArrowAssignment_0() throws RecognitionE } return ; } - // $ANTLR end "rule__ArmTimerMessage__ArrowAssignment_0" + // $ANTLR end "rule__FoundMessage__ArrowAssignment_0" - // $ANTLR start "rule__ArmTimerMessage__ParticipantAssignment_1" - // InternalTextualScenario.g:3103:1: rule__ArmTimerMessage__ParticipantAssignment_1 : ( RULE_STRING ) ; - public final void rule__ArmTimerMessage__ParticipantAssignment_1() throws RecognitionException { + // $ANTLR start "rule__FoundMessage__TargetAssignment_1" + // InternalTextualScenario.g:3749:1: rule__FoundMessage__TargetAssignment_1 : ( RULE_STRING ) ; + public final void rule__FoundMessage__TargetAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3107:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:3108:2: ( RULE_STRING ) + // InternalTextualScenario.g:3753:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3754:2: ( RULE_STRING ) { - // InternalTextualScenario.g:3108:2: ( RULE_STRING ) - // InternalTextualScenario.g:3109:3: RULE_STRING + // InternalTextualScenario.g:3754:2: ( RULE_STRING ) + // InternalTextualScenario.g:3755:3: RULE_STRING { - before(grammarAccess.getArmTimerMessageAccess().getParticipantSTRINGTerminalRuleCall_1_0()); + before(grammarAccess.getFoundMessageAccess().getTargetSTRINGTerminalRuleCall_1_0()); match(input,RULE_STRING,FOLLOW_2); - after(grammarAccess.getArmTimerMessageAccess().getParticipantSTRINGTerminalRuleCall_1_0()); + after(grammarAccess.getFoundMessageAccess().getTargetSTRINGTerminalRuleCall_1_0()); } @@ -9497,33 +11494,33 @@ public final void rule__ArmTimerMessage__ParticipantAssignment_1() throws Recogn } return ; } - // $ANTLR end "rule__ArmTimerMessage__ParticipantAssignment_1" + // $ANTLR end "rule__FoundMessage__TargetAssignment_1" - // $ANTLR start "rule__ArmTimerMessage__ExecutionAssignment_2" - // InternalTextualScenario.g:3118:1: rule__ArmTimerMessage__ExecutionAssignment_2 : ( ( 'withExecution' ) ) ; - public final void rule__ArmTimerMessage__ExecutionAssignment_2() throws RecognitionException { + // $ANTLR start "rule__FoundMessage__ExecutionAssignment_2" + // InternalTextualScenario.g:3764:1: rule__FoundMessage__ExecutionAssignment_2 : ( ( 'withExecution' ) ) ; + public final void rule__FoundMessage__ExecutionAssignment_2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3122:1: ( ( ( 'withExecution' ) ) ) - // InternalTextualScenario.g:3123:2: ( ( 'withExecution' ) ) + // InternalTextualScenario.g:3768:1: ( ( ( 'withExecution' ) ) ) + // InternalTextualScenario.g:3769:2: ( ( 'withExecution' ) ) { - // InternalTextualScenario.g:3123:2: ( ( 'withExecution' ) ) - // InternalTextualScenario.g:3124:3: ( 'withExecution' ) + // InternalTextualScenario.g:3769:2: ( ( 'withExecution' ) ) + // InternalTextualScenario.g:3770:3: ( 'withExecution' ) { - before(grammarAccess.getArmTimerMessageAccess().getExecutionWithExecutionKeyword_2_0()); - // InternalTextualScenario.g:3125:3: ( 'withExecution' ) - // InternalTextualScenario.g:3126:4: 'withExecution' + before(grammarAccess.getFoundMessageAccess().getExecutionWithExecutionKeyword_2_0()); + // InternalTextualScenario.g:3771:3: ( 'withExecution' ) + // InternalTextualScenario.g:3772:4: 'withExecution' { - before(grammarAccess.getArmTimerMessageAccess().getExecutionWithExecutionKeyword_2_0()); + before(grammarAccess.getFoundMessageAccess().getExecutionWithExecutionKeyword_2_0()); match(input,35,FOLLOW_2); - after(grammarAccess.getArmTimerMessageAccess().getExecutionWithExecutionKeyword_2_0()); + after(grammarAccess.getFoundMessageAccess().getExecutionWithExecutionKeyword_2_0()); } - after(grammarAccess.getArmTimerMessageAccess().getExecutionWithExecutionKeyword_2_0()); + after(grammarAccess.getFoundMessageAccess().getExecutionWithExecutionKeyword_2_0()); } @@ -9542,33 +11539,33 @@ public final void rule__ArmTimerMessage__ExecutionAssignment_2() throws Recognit } return ; } - // $ANTLR end "rule__ArmTimerMessage__ExecutionAssignment_2" + // $ANTLR end "rule__FoundMessage__ExecutionAssignment_2" - // $ANTLR start "rule__ArmTimerMessage__DoubleDotAssignment_3" - // InternalTextualScenario.g:3137:1: rule__ArmTimerMessage__DoubleDotAssignment_3 : ( ( ':' ) ) ; - public final void rule__ArmTimerMessage__DoubleDotAssignment_3() throws RecognitionException { + // $ANTLR start "rule__FoundMessage__DoubleDotAssignment_3" + // InternalTextualScenario.g:3783:1: rule__FoundMessage__DoubleDotAssignment_3 : ( ( ':' ) ) ; + public final void rule__FoundMessage__DoubleDotAssignment_3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3141:1: ( ( ( ':' ) ) ) - // InternalTextualScenario.g:3142:2: ( ( ':' ) ) + // InternalTextualScenario.g:3787:1: ( ( ( ':' ) ) ) + // InternalTextualScenario.g:3788:2: ( ( ':' ) ) { - // InternalTextualScenario.g:3142:2: ( ( ':' ) ) - // InternalTextualScenario.g:3143:3: ( ':' ) + // InternalTextualScenario.g:3788:2: ( ( ':' ) ) + // InternalTextualScenario.g:3789:3: ( ':' ) { - before(grammarAccess.getArmTimerMessageAccess().getDoubleDotColonKeyword_3_0()); - // InternalTextualScenario.g:3144:3: ( ':' ) - // InternalTextualScenario.g:3145:4: ':' + before(grammarAccess.getFoundMessageAccess().getDoubleDotColonKeyword_3_0()); + // InternalTextualScenario.g:3790:3: ( ':' ) + // InternalTextualScenario.g:3791:4: ':' { - before(grammarAccess.getArmTimerMessageAccess().getDoubleDotColonKeyword_3_0()); + before(grammarAccess.getFoundMessageAccess().getDoubleDotColonKeyword_3_0()); match(input,37,FOLLOW_2); - after(grammarAccess.getArmTimerMessageAccess().getDoubleDotColonKeyword_3_0()); + after(grammarAccess.getFoundMessageAccess().getDoubleDotColonKeyword_3_0()); } - after(grammarAccess.getArmTimerMessageAccess().getDoubleDotColonKeyword_3_0()); + after(grammarAccess.getFoundMessageAccess().getDoubleDotColonKeyword_3_0()); } @@ -9587,25 +11584,25 @@ public final void rule__ArmTimerMessage__DoubleDotAssignment_3() throws Recognit } return ; } - // $ANTLR end "rule__ArmTimerMessage__DoubleDotAssignment_3" + // $ANTLR end "rule__FoundMessage__DoubleDotAssignment_3" - // $ANTLR start "rule__ArmTimerMessage__NameAssignment_4" - // InternalTextualScenario.g:3156:1: rule__ArmTimerMessage__NameAssignment_4 : ( RULE_STRING ) ; - public final void rule__ArmTimerMessage__NameAssignment_4() throws RecognitionException { + // $ANTLR start "rule__FoundMessage__NameAssignment_4" + // InternalTextualScenario.g:3802:1: rule__FoundMessage__NameAssignment_4 : ( RULE_STRING ) ; + public final void rule__FoundMessage__NameAssignment_4() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3160:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:3161:2: ( RULE_STRING ) + // InternalTextualScenario.g:3806:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3807:2: ( RULE_STRING ) { - // InternalTextualScenario.g:3161:2: ( RULE_STRING ) - // InternalTextualScenario.g:3162:3: RULE_STRING + // InternalTextualScenario.g:3807:2: ( RULE_STRING ) + // InternalTextualScenario.g:3808:3: RULE_STRING { - before(grammarAccess.getArmTimerMessageAccess().getNameSTRINGTerminalRuleCall_4_0()); + before(grammarAccess.getFoundMessageAccess().getNameSTRINGTerminalRuleCall_4_0()); match(input,RULE_STRING,FOLLOW_2); - after(grammarAccess.getArmTimerMessageAccess().getNameSTRINGTerminalRuleCall_4_0()); + after(grammarAccess.getFoundMessageAccess().getNameSTRINGTerminalRuleCall_4_0()); } @@ -9624,28 +11621,28 @@ public final void rule__ArmTimerMessage__NameAssignment_4() throws RecognitionEx } return ; } - // $ANTLR end "rule__ArmTimerMessage__NameAssignment_4" + // $ANTLR end "rule__FoundMessage__NameAssignment_4" // $ANTLR start "rule__ParticipantDeactivation__KeywordAssignment_0" - // InternalTextualScenario.g:3171:1: rule__ParticipantDeactivation__KeywordAssignment_0 : ( ( 'deactivate' ) ) ; + // InternalTextualScenario.g:3817:1: rule__ParticipantDeactivation__KeywordAssignment_0 : ( ( 'deactivate' ) ) ; public final void rule__ParticipantDeactivation__KeywordAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3175:1: ( ( ( 'deactivate' ) ) ) - // InternalTextualScenario.g:3176:2: ( ( 'deactivate' ) ) + // InternalTextualScenario.g:3821:1: ( ( ( 'deactivate' ) ) ) + // InternalTextualScenario.g:3822:2: ( ( 'deactivate' ) ) { - // InternalTextualScenario.g:3176:2: ( ( 'deactivate' ) ) - // InternalTextualScenario.g:3177:3: ( 'deactivate' ) + // InternalTextualScenario.g:3822:2: ( ( 'deactivate' ) ) + // InternalTextualScenario.g:3823:3: ( 'deactivate' ) { before(grammarAccess.getParticipantDeactivationAccess().getKeywordDeactivateKeyword_0_0()); - // InternalTextualScenario.g:3178:3: ( 'deactivate' ) - // InternalTextualScenario.g:3179:4: 'deactivate' + // InternalTextualScenario.g:3824:3: ( 'deactivate' ) + // InternalTextualScenario.g:3825:4: 'deactivate' { before(grammarAccess.getParticipantDeactivationAccess().getKeywordDeactivateKeyword_0_0()); - match(input,41,FOLLOW_2); + match(input,43,FOLLOW_2); after(grammarAccess.getParticipantDeactivationAccess().getKeywordDeactivateKeyword_0_0()); } @@ -9673,17 +11670,17 @@ public final void rule__ParticipantDeactivation__KeywordAssignment_0() throws Re // $ANTLR start "rule__ParticipantDeactivation__NameAssignment_1" - // InternalTextualScenario.g:3190:1: rule__ParticipantDeactivation__NameAssignment_1 : ( RULE_STRING ) ; + // InternalTextualScenario.g:3836:1: rule__ParticipantDeactivation__NameAssignment_1 : ( RULE_STRING ) ; public final void rule__ParticipantDeactivation__NameAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3194:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:3195:2: ( RULE_STRING ) + // InternalTextualScenario.g:3840:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3841:2: ( RULE_STRING ) { - // InternalTextualScenario.g:3195:2: ( RULE_STRING ) - // InternalTextualScenario.g:3196:3: RULE_STRING + // InternalTextualScenario.g:3841:2: ( RULE_STRING ) + // InternalTextualScenario.g:3842:3: RULE_STRING { before(grammarAccess.getParticipantDeactivationAccess().getNameSTRINGTerminalRuleCall_1_0()); match(input,RULE_STRING,FOLLOW_2); @@ -9710,21 +11707,21 @@ public final void rule__ParticipantDeactivation__NameAssignment_1() throws Recog // $ANTLR start "rule__CombinedFragment__KeywordAssignment_0" - // InternalTextualScenario.g:3205:1: rule__CombinedFragment__KeywordAssignment_0 : ( ( rule__CombinedFragment__KeywordAlternatives_0_0 ) ) ; + // InternalTextualScenario.g:3851:1: rule__CombinedFragment__KeywordAssignment_0 : ( ( rule__CombinedFragment__KeywordAlternatives_0_0 ) ) ; public final void rule__CombinedFragment__KeywordAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3209:1: ( ( ( rule__CombinedFragment__KeywordAlternatives_0_0 ) ) ) - // InternalTextualScenario.g:3210:2: ( ( rule__CombinedFragment__KeywordAlternatives_0_0 ) ) + // InternalTextualScenario.g:3855:1: ( ( ( rule__CombinedFragment__KeywordAlternatives_0_0 ) ) ) + // InternalTextualScenario.g:3856:2: ( ( rule__CombinedFragment__KeywordAlternatives_0_0 ) ) { - // InternalTextualScenario.g:3210:2: ( ( rule__CombinedFragment__KeywordAlternatives_0_0 ) ) - // InternalTextualScenario.g:3211:3: ( rule__CombinedFragment__KeywordAlternatives_0_0 ) + // InternalTextualScenario.g:3856:2: ( ( rule__CombinedFragment__KeywordAlternatives_0_0 ) ) + // InternalTextualScenario.g:3857:3: ( rule__CombinedFragment__KeywordAlternatives_0_0 ) { before(grammarAccess.getCombinedFragmentAccess().getKeywordAlternatives_0_0()); - // InternalTextualScenario.g:3212:3: ( rule__CombinedFragment__KeywordAlternatives_0_0 ) - // InternalTextualScenario.g:3212:4: rule__CombinedFragment__KeywordAlternatives_0_0 + // InternalTextualScenario.g:3858:3: ( rule__CombinedFragment__KeywordAlternatives_0_0 ) + // InternalTextualScenario.g:3858:4: rule__CombinedFragment__KeywordAlternatives_0_0 { pushFollow(FOLLOW_2); rule__CombinedFragment__KeywordAlternatives_0_0(); @@ -9757,17 +11754,17 @@ public final void rule__CombinedFragment__KeywordAssignment_0() throws Recogniti // $ANTLR start "rule__CombinedFragment__ExpressionAssignment_1" - // InternalTextualScenario.g:3220:1: rule__CombinedFragment__ExpressionAssignment_1 : ( RULE_STRING ) ; + // InternalTextualScenario.g:3866:1: rule__CombinedFragment__ExpressionAssignment_1 : ( RULE_STRING ) ; public final void rule__CombinedFragment__ExpressionAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3224:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:3225:2: ( RULE_STRING ) + // InternalTextualScenario.g:3870:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3871:2: ( RULE_STRING ) { - // InternalTextualScenario.g:3225:2: ( RULE_STRING ) - // InternalTextualScenario.g:3226:3: RULE_STRING + // InternalTextualScenario.g:3871:2: ( RULE_STRING ) + // InternalTextualScenario.g:3872:3: RULE_STRING { before(grammarAccess.getCombinedFragmentAccess().getExpressionSTRINGTerminalRuleCall_1_0()); match(input,RULE_STRING,FOLLOW_2); @@ -9794,24 +11791,24 @@ public final void rule__CombinedFragment__ExpressionAssignment_1() throws Recogn // $ANTLR start "rule__CombinedFragment__OverAssignment_2" - // InternalTextualScenario.g:3235:1: rule__CombinedFragment__OverAssignment_2 : ( ( 'over' ) ) ; + // InternalTextualScenario.g:3881:1: rule__CombinedFragment__OverAssignment_2 : ( ( 'over' ) ) ; public final void rule__CombinedFragment__OverAssignment_2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3239:1: ( ( ( 'over' ) ) ) - // InternalTextualScenario.g:3240:2: ( ( 'over' ) ) + // InternalTextualScenario.g:3885:1: ( ( ( 'over' ) ) ) + // InternalTextualScenario.g:3886:2: ( ( 'over' ) ) { - // InternalTextualScenario.g:3240:2: ( ( 'over' ) ) - // InternalTextualScenario.g:3241:3: ( 'over' ) + // InternalTextualScenario.g:3886:2: ( ( 'over' ) ) + // InternalTextualScenario.g:3887:3: ( 'over' ) { before(grammarAccess.getCombinedFragmentAccess().getOverOverKeyword_2_0()); - // InternalTextualScenario.g:3242:3: ( 'over' ) - // InternalTextualScenario.g:3243:4: 'over' + // InternalTextualScenario.g:3888:3: ( 'over' ) + // InternalTextualScenario.g:3889:4: 'over' { before(grammarAccess.getCombinedFragmentAccess().getOverOverKeyword_2_0()); - match(input,42,FOLLOW_2); + match(input,44,FOLLOW_2); after(grammarAccess.getCombinedFragmentAccess().getOverOverKeyword_2_0()); } @@ -9839,17 +11836,17 @@ public final void rule__CombinedFragment__OverAssignment_2() throws RecognitionE // $ANTLR start "rule__CombinedFragment__TimelinesAssignment_3" - // InternalTextualScenario.g:3254:1: rule__CombinedFragment__TimelinesAssignment_3 : ( RULE_STRING ) ; + // InternalTextualScenario.g:3900:1: rule__CombinedFragment__TimelinesAssignment_3 : ( RULE_STRING ) ; public final void rule__CombinedFragment__TimelinesAssignment_3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3258:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:3259:2: ( RULE_STRING ) + // InternalTextualScenario.g:3904:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3905:2: ( RULE_STRING ) { - // InternalTextualScenario.g:3259:2: ( RULE_STRING ) - // InternalTextualScenario.g:3260:3: RULE_STRING + // InternalTextualScenario.g:3905:2: ( RULE_STRING ) + // InternalTextualScenario.g:3906:3: RULE_STRING { before(grammarAccess.getCombinedFragmentAccess().getTimelinesSTRINGTerminalRuleCall_3_0()); match(input,RULE_STRING,FOLLOW_2); @@ -9876,17 +11873,17 @@ public final void rule__CombinedFragment__TimelinesAssignment_3() throws Recogni // $ANTLR start "rule__CombinedFragment__BlockAssignment_4" - // InternalTextualScenario.g:3269:1: rule__CombinedFragment__BlockAssignment_4 : ( ruleBlock ) ; + // InternalTextualScenario.g:3915:1: rule__CombinedFragment__BlockAssignment_4 : ( ruleBlock ) ; public final void rule__CombinedFragment__BlockAssignment_4() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3273:1: ( ( ruleBlock ) ) - // InternalTextualScenario.g:3274:2: ( ruleBlock ) + // InternalTextualScenario.g:3919:1: ( ( ruleBlock ) ) + // InternalTextualScenario.g:3920:2: ( ruleBlock ) { - // InternalTextualScenario.g:3274:2: ( ruleBlock ) - // InternalTextualScenario.g:3275:3: ruleBlock + // InternalTextualScenario.g:3920:2: ( ruleBlock ) + // InternalTextualScenario.g:3921:3: ruleBlock { before(grammarAccess.getCombinedFragmentAccess().getBlockBlockParserRuleCall_4_0()); pushFollow(FOLLOW_2); @@ -9917,17 +11914,17 @@ public final void rule__CombinedFragment__BlockAssignment_4() throws Recognition // $ANTLR start "rule__CombinedFragment__OperandsAssignment_5" - // InternalTextualScenario.g:3284:1: rule__CombinedFragment__OperandsAssignment_5 : ( ruleOperand ) ; + // InternalTextualScenario.g:3930:1: rule__CombinedFragment__OperandsAssignment_5 : ( ruleOperand ) ; public final void rule__CombinedFragment__OperandsAssignment_5() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3288:1: ( ( ruleOperand ) ) - // InternalTextualScenario.g:3289:2: ( ruleOperand ) + // InternalTextualScenario.g:3934:1: ( ( ruleOperand ) ) + // InternalTextualScenario.g:3935:2: ( ruleOperand ) { - // InternalTextualScenario.g:3289:2: ( ruleOperand ) - // InternalTextualScenario.g:3290:3: ruleOperand + // InternalTextualScenario.g:3935:2: ( ruleOperand ) + // InternalTextualScenario.g:3936:3: ruleOperand { before(grammarAccess.getCombinedFragmentAccess().getOperandsOperandParserRuleCall_5_0()); pushFollow(FOLLOW_2); @@ -9958,24 +11955,24 @@ public final void rule__CombinedFragment__OperandsAssignment_5() throws Recognit // $ANTLR start "rule__Operand__KeywordAssignment_0" - // InternalTextualScenario.g:3299:1: rule__Operand__KeywordAssignment_0 : ( ( 'else' ) ) ; + // InternalTextualScenario.g:3945:1: rule__Operand__KeywordAssignment_0 : ( ( 'else' ) ) ; public final void rule__Operand__KeywordAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3303:1: ( ( ( 'else' ) ) ) - // InternalTextualScenario.g:3304:2: ( ( 'else' ) ) + // InternalTextualScenario.g:3949:1: ( ( ( 'else' ) ) ) + // InternalTextualScenario.g:3950:2: ( ( 'else' ) ) { - // InternalTextualScenario.g:3304:2: ( ( 'else' ) ) - // InternalTextualScenario.g:3305:3: ( 'else' ) + // InternalTextualScenario.g:3950:2: ( ( 'else' ) ) + // InternalTextualScenario.g:3951:3: ( 'else' ) { before(grammarAccess.getOperandAccess().getKeywordElseKeyword_0_0()); - // InternalTextualScenario.g:3306:3: ( 'else' ) - // InternalTextualScenario.g:3307:4: 'else' + // InternalTextualScenario.g:3952:3: ( 'else' ) + // InternalTextualScenario.g:3953:4: 'else' { before(grammarAccess.getOperandAccess().getKeywordElseKeyword_0_0()); - match(input,43,FOLLOW_2); + match(input,45,FOLLOW_2); after(grammarAccess.getOperandAccess().getKeywordElseKeyword_0_0()); } @@ -10003,17 +12000,17 @@ public final void rule__Operand__KeywordAssignment_0() throws RecognitionExcepti // $ANTLR start "rule__Operand__ExpressionAssignment_1" - // InternalTextualScenario.g:3318:1: rule__Operand__ExpressionAssignment_1 : ( RULE_STRING ) ; + // InternalTextualScenario.g:3964:1: rule__Operand__ExpressionAssignment_1 : ( RULE_STRING ) ; public final void rule__Operand__ExpressionAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3322:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:3323:2: ( RULE_STRING ) + // InternalTextualScenario.g:3968:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:3969:2: ( RULE_STRING ) { - // InternalTextualScenario.g:3323:2: ( RULE_STRING ) - // InternalTextualScenario.g:3324:3: RULE_STRING + // InternalTextualScenario.g:3969:2: ( RULE_STRING ) + // InternalTextualScenario.g:3970:3: RULE_STRING { before(grammarAccess.getOperandAccess().getExpressionSTRINGTerminalRuleCall_1_0()); match(input,RULE_STRING,FOLLOW_2); @@ -10040,17 +12037,17 @@ public final void rule__Operand__ExpressionAssignment_1() throws RecognitionExce // $ANTLR start "rule__Operand__BlockAssignment_2" - // InternalTextualScenario.g:3333:1: rule__Operand__BlockAssignment_2 : ( ruleBlock ) ; + // InternalTextualScenario.g:3979:1: rule__Operand__BlockAssignment_2 : ( ruleBlock ) ; public final void rule__Operand__BlockAssignment_2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3337:1: ( ( ruleBlock ) ) - // InternalTextualScenario.g:3338:2: ( ruleBlock ) + // InternalTextualScenario.g:3983:1: ( ( ruleBlock ) ) + // InternalTextualScenario.g:3984:2: ( ruleBlock ) { - // InternalTextualScenario.g:3338:2: ( ruleBlock ) - // InternalTextualScenario.g:3339:3: ruleBlock + // InternalTextualScenario.g:3984:2: ( ruleBlock ) + // InternalTextualScenario.g:3985:3: ruleBlock { before(grammarAccess.getOperandAccess().getBlockBlockParserRuleCall_2_0()); pushFollow(FOLLOW_2); @@ -10081,21 +12078,21 @@ public final void rule__Operand__BlockAssignment_2() throws RecognitionException // $ANTLR start "rule__Block__BeginAssignment_0" - // InternalTextualScenario.g:3348:1: rule__Block__BeginAssignment_0 : ( ( '{' ) ) ; + // InternalTextualScenario.g:3994:1: rule__Block__BeginAssignment_0 : ( ( '{' ) ) ; public final void rule__Block__BeginAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3352:1: ( ( ( '{' ) ) ) - // InternalTextualScenario.g:3353:2: ( ( '{' ) ) + // InternalTextualScenario.g:3998:1: ( ( ( '{' ) ) ) + // InternalTextualScenario.g:3999:2: ( ( '{' ) ) { - // InternalTextualScenario.g:3353:2: ( ( '{' ) ) - // InternalTextualScenario.g:3354:3: ( '{' ) + // InternalTextualScenario.g:3999:2: ( ( '{' ) ) + // InternalTextualScenario.g:4000:3: ( '{' ) { before(grammarAccess.getBlockAccess().getBeginLeftCurlyBracketKeyword_0_0()); - // InternalTextualScenario.g:3355:3: ( '{' ) - // InternalTextualScenario.g:3356:4: '{' + // InternalTextualScenario.g:4001:3: ( '{' ) + // InternalTextualScenario.g:4002:4: '{' { before(grammarAccess.getBlockAccess().getBeginLeftCurlyBracketKeyword_0_0()); match(input,26,FOLLOW_2); @@ -10126,17 +12123,17 @@ public final void rule__Block__BeginAssignment_0() throws RecognitionException { // $ANTLR start "rule__Block__BlockElementsAssignment_1" - // InternalTextualScenario.g:3367:1: rule__Block__BlockElementsAssignment_1 : ( ruleElement ) ; + // InternalTextualScenario.g:4013:1: rule__Block__BlockElementsAssignment_1 : ( ruleElement ) ; public final void rule__Block__BlockElementsAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3371:1: ( ( ruleElement ) ) - // InternalTextualScenario.g:3372:2: ( ruleElement ) + // InternalTextualScenario.g:4017:1: ( ( ruleElement ) ) + // InternalTextualScenario.g:4018:2: ( ruleElement ) { - // InternalTextualScenario.g:3372:2: ( ruleElement ) - // InternalTextualScenario.g:3373:3: ruleElement + // InternalTextualScenario.g:4018:2: ( ruleElement ) + // InternalTextualScenario.g:4019:3: ruleElement { before(grammarAccess.getBlockAccess().getBlockElementsElementParserRuleCall_1_0()); pushFollow(FOLLOW_2); @@ -10167,21 +12164,21 @@ public final void rule__Block__BlockElementsAssignment_1() throws RecognitionExc // $ANTLR start "rule__Block__EndAssignment_2" - // InternalTextualScenario.g:3382:1: rule__Block__EndAssignment_2 : ( ( '}' ) ) ; + // InternalTextualScenario.g:4028:1: rule__Block__EndAssignment_2 : ( ( '}' ) ) ; public final void rule__Block__EndAssignment_2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3386:1: ( ( ( '}' ) ) ) - // InternalTextualScenario.g:3387:2: ( ( '}' ) ) + // InternalTextualScenario.g:4032:1: ( ( ( '}' ) ) ) + // InternalTextualScenario.g:4033:2: ( ( '}' ) ) { - // InternalTextualScenario.g:3387:2: ( ( '}' ) ) - // InternalTextualScenario.g:3388:3: ( '}' ) + // InternalTextualScenario.g:4033:2: ( ( '}' ) ) + // InternalTextualScenario.g:4034:3: ( '}' ) { before(grammarAccess.getBlockAccess().getEndRightCurlyBracketKeyword_2_0()); - // InternalTextualScenario.g:3389:3: ( '}' ) - // InternalTextualScenario.g:3390:4: '}' + // InternalTextualScenario.g:4035:3: ( '}' ) + // InternalTextualScenario.g:4036:4: '}' { before(grammarAccess.getBlockAccess().getEndRightCurlyBracketKeyword_2_0()); match(input,27,FOLLOW_2); @@ -10212,24 +12209,24 @@ public final void rule__Block__EndAssignment_2() throws RecognitionException { // $ANTLR start "rule__StateFragment__OnAssignment_0" - // InternalTextualScenario.g:3401:1: rule__StateFragment__OnAssignment_0 : ( ( 'on' ) ) ; + // InternalTextualScenario.g:4047:1: rule__StateFragment__OnAssignment_0 : ( ( 'on' ) ) ; public final void rule__StateFragment__OnAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3405:1: ( ( ( 'on' ) ) ) - // InternalTextualScenario.g:3406:2: ( ( 'on' ) ) + // InternalTextualScenario.g:4051:1: ( ( ( 'on' ) ) ) + // InternalTextualScenario.g:4052:2: ( ( 'on' ) ) { - // InternalTextualScenario.g:3406:2: ( ( 'on' ) ) - // InternalTextualScenario.g:3407:3: ( 'on' ) + // InternalTextualScenario.g:4052:2: ( ( 'on' ) ) + // InternalTextualScenario.g:4053:3: ( 'on' ) { before(grammarAccess.getStateFragmentAccess().getOnOnKeyword_0_0()); - // InternalTextualScenario.g:3408:3: ( 'on' ) - // InternalTextualScenario.g:3409:4: 'on' + // InternalTextualScenario.g:4054:3: ( 'on' ) + // InternalTextualScenario.g:4055:4: 'on' { before(grammarAccess.getStateFragmentAccess().getOnOnKeyword_0_0()); - match(input,44,FOLLOW_2); + match(input,46,FOLLOW_2); after(grammarAccess.getStateFragmentAccess().getOnOnKeyword_0_0()); } @@ -10257,17 +12254,17 @@ public final void rule__StateFragment__OnAssignment_0() throws RecognitionExcept // $ANTLR start "rule__StateFragment__TimelineAssignment_1" - // InternalTextualScenario.g:3420:1: rule__StateFragment__TimelineAssignment_1 : ( RULE_STRING ) ; + // InternalTextualScenario.g:4066:1: rule__StateFragment__TimelineAssignment_1 : ( RULE_STRING ) ; public final void rule__StateFragment__TimelineAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3424:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:3425:2: ( RULE_STRING ) + // InternalTextualScenario.g:4070:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:4071:2: ( RULE_STRING ) { - // InternalTextualScenario.g:3425:2: ( RULE_STRING ) - // InternalTextualScenario.g:3426:3: RULE_STRING + // InternalTextualScenario.g:4071:2: ( RULE_STRING ) + // InternalTextualScenario.g:4072:3: RULE_STRING { before(grammarAccess.getStateFragmentAccess().getTimelineSTRINGTerminalRuleCall_1_0()); match(input,RULE_STRING,FOLLOW_2); @@ -10294,21 +12291,21 @@ public final void rule__StateFragment__TimelineAssignment_1() throws Recognition // $ANTLR start "rule__StateFragment__KeywordAssignment_2" - // InternalTextualScenario.g:3435:1: rule__StateFragment__KeywordAssignment_2 : ( ( rule__StateFragment__KeywordAlternatives_2_0 ) ) ; + // InternalTextualScenario.g:4081:1: rule__StateFragment__KeywordAssignment_2 : ( ( rule__StateFragment__KeywordAlternatives_2_0 ) ) ; public final void rule__StateFragment__KeywordAssignment_2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3439:1: ( ( ( rule__StateFragment__KeywordAlternatives_2_0 ) ) ) - // InternalTextualScenario.g:3440:2: ( ( rule__StateFragment__KeywordAlternatives_2_0 ) ) + // InternalTextualScenario.g:4085:1: ( ( ( rule__StateFragment__KeywordAlternatives_2_0 ) ) ) + // InternalTextualScenario.g:4086:2: ( ( rule__StateFragment__KeywordAlternatives_2_0 ) ) { - // InternalTextualScenario.g:3440:2: ( ( rule__StateFragment__KeywordAlternatives_2_0 ) ) - // InternalTextualScenario.g:3441:3: ( rule__StateFragment__KeywordAlternatives_2_0 ) + // InternalTextualScenario.g:4086:2: ( ( rule__StateFragment__KeywordAlternatives_2_0 ) ) + // InternalTextualScenario.g:4087:3: ( rule__StateFragment__KeywordAlternatives_2_0 ) { before(grammarAccess.getStateFragmentAccess().getKeywordAlternatives_2_0()); - // InternalTextualScenario.g:3442:3: ( rule__StateFragment__KeywordAlternatives_2_0 ) - // InternalTextualScenario.g:3442:4: rule__StateFragment__KeywordAlternatives_2_0 + // InternalTextualScenario.g:4088:3: ( rule__StateFragment__KeywordAlternatives_2_0 ) + // InternalTextualScenario.g:4088:4: rule__StateFragment__KeywordAlternatives_2_0 { pushFollow(FOLLOW_2); rule__StateFragment__KeywordAlternatives_2_0(); @@ -10341,17 +12338,17 @@ public final void rule__StateFragment__KeywordAssignment_2() throws RecognitionE // $ANTLR start "rule__StateFragment__NameAssignment_3" - // InternalTextualScenario.g:3450:1: rule__StateFragment__NameAssignment_3 : ( RULE_STRING ) ; + // InternalTextualScenario.g:4096:1: rule__StateFragment__NameAssignment_3 : ( RULE_STRING ) ; public final void rule__StateFragment__NameAssignment_3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalTextualScenario.g:3454:1: ( ( RULE_STRING ) ) - // InternalTextualScenario.g:3455:2: ( RULE_STRING ) + // InternalTextualScenario.g:4100:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:4101:2: ( RULE_STRING ) { - // InternalTextualScenario.g:3455:2: ( RULE_STRING ) - // InternalTextualScenario.g:3456:3: RULE_STRING + // InternalTextualScenario.g:4101:2: ( RULE_STRING ) + // InternalTextualScenario.g:4102:3: RULE_STRING { before(grammarAccess.getStateFragmentAccess().getNameSTRINGTerminalRuleCall_3_0()); match(input,RULE_STRING,FOLLOW_2); @@ -10376,6 +12373,170 @@ public final void rule__StateFragment__NameAssignment_3() throws RecognitionExce } // $ANTLR end "rule__StateFragment__NameAssignment_3" + + // $ANTLR start "rule__Reference__KeywordAssignment_0" + // InternalTextualScenario.g:4111:1: rule__Reference__KeywordAssignment_0 : ( ( 'ref' ) ) ; + public final void rule__Reference__KeywordAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:4115:1: ( ( ( 'ref' ) ) ) + // InternalTextualScenario.g:4116:2: ( ( 'ref' ) ) + { + // InternalTextualScenario.g:4116:2: ( ( 'ref' ) ) + // InternalTextualScenario.g:4117:3: ( 'ref' ) + { + before(grammarAccess.getReferenceAccess().getKeywordRefKeyword_0_0()); + // InternalTextualScenario.g:4118:3: ( 'ref' ) + // InternalTextualScenario.g:4119:4: 'ref' + { + before(grammarAccess.getReferenceAccess().getKeywordRefKeyword_0_0()); + match(input,47,FOLLOW_2); + after(grammarAccess.getReferenceAccess().getKeywordRefKeyword_0_0()); + + } + + after(grammarAccess.getReferenceAccess().getKeywordRefKeyword_0_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Reference__KeywordAssignment_0" + + + // $ANTLR start "rule__Reference__NameAssignment_1" + // InternalTextualScenario.g:4130:1: rule__Reference__NameAssignment_1 : ( RULE_STRING ) ; + public final void rule__Reference__NameAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:4134:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:4135:2: ( RULE_STRING ) + { + // InternalTextualScenario.g:4135:2: ( RULE_STRING ) + // InternalTextualScenario.g:4136:3: RULE_STRING + { + before(grammarAccess.getReferenceAccess().getNameSTRINGTerminalRuleCall_1_0()); + match(input,RULE_STRING,FOLLOW_2); + after(grammarAccess.getReferenceAccess().getNameSTRINGTerminalRuleCall_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Reference__NameAssignment_1" + + + // $ANTLR start "rule__Reference__OverAssignment_2" + // InternalTextualScenario.g:4145:1: rule__Reference__OverAssignment_2 : ( ( 'over' ) ) ; + public final void rule__Reference__OverAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:4149:1: ( ( ( 'over' ) ) ) + // InternalTextualScenario.g:4150:2: ( ( 'over' ) ) + { + // InternalTextualScenario.g:4150:2: ( ( 'over' ) ) + // InternalTextualScenario.g:4151:3: ( 'over' ) + { + before(grammarAccess.getReferenceAccess().getOverOverKeyword_2_0()); + // InternalTextualScenario.g:4152:3: ( 'over' ) + // InternalTextualScenario.g:4153:4: 'over' + { + before(grammarAccess.getReferenceAccess().getOverOverKeyword_2_0()); + match(input,44,FOLLOW_2); + after(grammarAccess.getReferenceAccess().getOverOverKeyword_2_0()); + + } + + after(grammarAccess.getReferenceAccess().getOverOverKeyword_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Reference__OverAssignment_2" + + + // $ANTLR start "rule__Reference__TimelinesAssignment_3" + // InternalTextualScenario.g:4164:1: rule__Reference__TimelinesAssignment_3 : ( RULE_STRING ) ; + public final void rule__Reference__TimelinesAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalTextualScenario.g:4168:1: ( ( RULE_STRING ) ) + // InternalTextualScenario.g:4169:2: ( RULE_STRING ) + { + // InternalTextualScenario.g:4169:2: ( RULE_STRING ) + // InternalTextualScenario.g:4170:3: RULE_STRING + { + before(grammarAccess.getReferenceAccess().getTimelinesSTRINGTerminalRuleCall_3_0()); + match(input,RULE_STRING,FOLLOW_2); + after(grammarAccess.getReferenceAccess().getTimelinesSTRINGTerminalRuleCall_3_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Reference__TimelinesAssignment_3" + // Delegated rules @@ -10384,9 +12545,9 @@ public final void rule__StateFragment__NameAssignment_3() throws RecognitionExce 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[]{0x0000000004000000L}); - public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x00001303F93FF810L}); + public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000CD03F93FF810L}); public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x00000003F1000002L}); - public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x00001300003FF812L}); + public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000CD00003FF812L}); public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000400000000L}); public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000003800000000L}); @@ -10394,11 +12555,13 @@ public final void rule__StateFragment__NameAssignment_3() throws RecognitionExce public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000002000000000L}); public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000008000000000L}); public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000002800000000L}); - public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000040000000000L}); - public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000000012L}); - public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000080000000010L}); - public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000080000000012L}); - public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x00001300083FF810L}); - public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000001C00000L}); + public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000020000000000L}); + public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000100000000010L}); + public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000000012L}); + public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000200004000010L}); + public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000200004000012L}); + public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000CD00083FF810L}); + public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000001C00000L}); + public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000100000000000L}); } diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl.ui/META-INF/MANIFEST.MF b/plugins/org.polarsys.capella.scenario.editor.dsl.ui/META-INF/MANIFEST.MF index fe8c2e48..1a5e97f6 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl.ui/META-INF/MANIFEST.MF +++ b/plugins/org.polarsys.capella.scenario.editor.dsl.ui/META-INF/MANIFEST.MF @@ -15,7 +15,10 @@ Require-Bundle: org.polarsys.capella.scenario.editor.dsl, org.eclipse.xtext.builder, org.polarsys.capella.scenario.editor, org.polarsys.capella.core.model.helpers, - org.eclipse.xtend.lib;resolution:=optional + org.eclipse.xtend.lib;resolution:=optional, + org.eclipse.ui, + org.eclipse.ui.editors, + org.eclipse.xtext.xbase.lib Import-Package: org.apache.log4j Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Export-Package: org.polarsys.capella.scenario.editor.dsl.ui.contentassist, diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl.ui/src-gen/org/polarsys/capella/scenario/editor/dsl/ui/contentassist/AbstractTextualScenarioProposalProvider.java b/plugins/org.polarsys.capella.scenario.editor.dsl.ui/src-gen/org/polarsys/capella/scenario/editor/dsl/ui/contentassist/AbstractTextualScenarioProposalProvider.java index b7850583..2cefd8d2 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl.ui/src-gen/org/polarsys/capella/scenario/editor/dsl/ui/contentassist/AbstractTextualScenarioProposalProvider.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl.ui/src-gen/org/polarsys/capella/scenario/editor/dsl/ui/contentassist/AbstractTextualScenarioProposalProvider.java @@ -149,6 +149,33 @@ public void completeArmTimerMessage_DoubleDot(EObject model, Assignment assignme public void completeArmTimerMessage_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); } + public void completeLostMessage_Source(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeLostMessage_Arrow(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeLostMessage_DoubleDot(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeLostMessage_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeFoundMessage_Arrow(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeFoundMessage_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeFoundMessage_Execution(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeFoundMessage_DoubleDot(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeFoundMessage_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } public void completeParticipantDeactivation_Keyword(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { // subclasses may override } @@ -215,6 +242,18 @@ public void completeStateFragment_Keyword(EObject model, Assignment assignment, public void completeStateFragment_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); } + public void completeReference_Keyword(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeReference_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeReference_Over(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeReference_Timelines(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 @@ -270,6 +309,15 @@ public void complete_DeleteMessage(EObject model, RuleCall ruleCall, ContentAssi public void complete_ArmTimerMessage(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { // subclasses may override } + public void complete_LostFoundMessage(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_LostMessage(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_FoundMessage(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } public void complete_ParticipantDeactivation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { // subclasses may override } @@ -285,4 +333,7 @@ public void complete_Block(EObject model, RuleCall ruleCall, ContentAssistContex public void complete_StateFragment(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { // subclasses may override } + public void complete_Reference(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } } diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl.ui/src/org/polarsys/capella/scenario/editor/dsl/ui/contentassist/TextualScenarioProposalProvider.xtend b/plugins/org.polarsys.capella.scenario.editor.dsl.ui/src/org/polarsys/capella/scenario/editor/dsl/ui/contentassist/TextualScenarioProposalProvider.xtend index a16b8ebd..5938a4e2 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl.ui/src/org/polarsys/capella/scenario/editor/dsl/ui/contentassist/TextualScenarioProposalProvider.xtend +++ b/plugins/org.polarsys.capella.scenario.editor.dsl.ui/src/org/polarsys/capella/scenario/editor/dsl/ui/contentassist/TextualScenarioProposalProvider.xtend @@ -39,6 +39,10 @@ import org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment import java.util.HashMap import org.polarsys.capella.scenario.editor.dsl.textualScenario.ParticipantDeactivation import org.polarsys.capella.scenario.editor.dsl.textualScenario.Operand +import org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference +import org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage +import org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage +import org.polarsys.capella.core.data.fa.FunctionalExchange /** * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#content-assist @@ -58,7 +62,7 @@ class TextualScenarioProposalProvider extends AbstractTextualScenarioProposalPro } else { // the message keywords are proposed separately - val String[] messageKeywords = #["->", "->x", "->+", "->>"] + val String[] messageKeywords = #["->", "->x", "->+", "->>", "->o", "o->"] if(!messageKeywords.contains(keyword.value)) { super.completeKeyword(keyword, contentAssistContext, acceptor) } @@ -148,11 +152,7 @@ class TextualScenarioProposalProvider extends AbstractTextualScenarioProposalPro override completeSequenceMessage_Source(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { - for (EObject el : TextualScenarioHelper.participantsDefinedBefore(model, context.rootModel as Model)) { - acceptor.accept( - createCompletionProposal("\"" + (el as Participant).name + "\"", (el as Participant).name, null, - context)) - } + proposeParticipants(context, acceptor) } override completeSequenceMessage_Arrow(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { @@ -161,24 +161,24 @@ class TextualScenarioProposalProvider extends AbstractTextualScenarioProposalPro override completeSequenceMessage_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { - for (EObject el : TextualScenarioHelper.participantsDefinedBefore(model, context.rootModel as Model)) { - acceptor.accept( - createCompletionProposal("\"" + (el as Participant).name + "\"", (el as Participant).name, null, - context)) - } + proposeParticipants(context, acceptor) } override completeSequenceMessage_Name(EObject messageObj, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + var message = messageObj as SequenceMessage + createMessageProposal(message.source, message.target, context, acceptor) + } + + def createMessageProposal(String source, String target, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { // we obtain the type of exchanges allowed in this model // if we already have a CE (component exchange) we propose only CE // if we already have a FE (functional exchange) we propose only FE // if no message was yet declared in the xtext, we propose both (until a first message is declared) + var scenarioExchangesType = TextualScenarioHelper.getScenarioAllowedExchangesType((context.rootModel as Model).elements) - - var message = messageObj as SequenceMessage - var exchangesAvailable = EmbeddedEditorInstanceHelper.getExchangeMessages(message.getSource, message.getTarget) + var exchangesAvailable = EmbeddedEditorInstanceHelper.getExchangeMessages(source, target) var elementName = new String for (EObject element : exchangesAvailable) { (context.rootModel as Model).elements @@ -187,15 +187,19 @@ class TextualScenarioProposalProvider extends AbstractTextualScenarioProposalPro } else { elementName = CapellaElementExt.getName(element) } - // do not propose a message between source and target that is already inserted, to avoid duplicates of the same message - if (!messageAlreadyInserted(context.rootModel as Model, message.source, message.target, elementName)) { - // in a scenario, cannot combine FE and CE in same scenario (functional and component exchanges) - // if the type of exchange is allowed, propose it - var exchangeType = TextualScenarioHelper.getExchangeType(element) - if (scenarioExchangesType === null || scenarioExchangesType.equals(exchangeType)) { - acceptor.accept( - createCompletionProposal("\"" + elementName + "\"", "\"" + elementName + "\"", null, context)) + // in a scenario, cannot combine FE and CE in same scenario (functional and component exchanges) + // if the type of exchange is allowed, propose it + var exchangeType = TextualScenarioHelper.getExchangeType(element) + if (scenarioExchangesType === null || scenarioExchangesType.equals(exchangeType)) { + var message = "\"" + elementName + "\"" + if (EmbeddedEditorInstanceHelper.isESScenario() && element instanceof FunctionalExchange) { + message = message + " : FE [ " + + EmbeddedEditorInstanceHelper.getSourceFunctionNameOfExchange(element as FunctionalExchange) + + " ," + + EmbeddedEditorInstanceHelper.getTargetFunctionNameOfExchange(element as FunctionalExchange) + " ]" } + acceptor.accept( + createCompletionProposal("\"" + elementName + "\"", message, null, context)) } } } @@ -214,7 +218,7 @@ class TextualScenarioProposalProvider extends AbstractTextualScenarioProposalPro override completeCreateMessage_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { var source = (model as CreateMessage).getSource() - for (EObject el : TextualScenarioHelper.participantsDefinedBefore(model, context.rootModel as Model)) { + for (EObject el : TextualScenarioHelper.participantsDefinedBefore(context.rootModel as Model)) { if (!(el as Participant).name.equals(source)) { acceptor.accept( createCompletionProposal("\"" + (el as Participant).name + "\"", (el as Participant).name, null, @@ -228,11 +232,6 @@ class TextualScenarioProposalProvider extends AbstractTextualScenarioProposalPro completeCreateDeleteMessageName(model, context, acceptor) } - override completeCreateMessage_DoubleDot(EObject model, Assignment assignment, ContentAssistContext context, - ICompletionProposalAcceptor acceptor) { - acceptor.accept(createCompletionProposal(":", ":", null, context)) - } - override completeDeleteMessage_Arrow(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { if (!EmbeddedEditorInstanceHelper.isFSScenario() && !EmbeddedEditorInstanceHelper.isESScenario()) { @@ -247,7 +246,7 @@ class TextualScenarioProposalProvider extends AbstractTextualScenarioProposalPro override completeDeleteMessage_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { var source = (model as DeleteMessage).getSource() - for (EObject el : TextualScenarioHelper.participantsDefinedBefore(model, context.rootModel as Model)) { + for (EObject el : TextualScenarioHelper.participantsDefinedBefore(context.rootModel as Model)) { if (!(el as Participant).name.equals(source)) { acceptor.accept( createCompletionProposal("\"" + (el as Participant).name + "\"", (el as Participant).name, null, @@ -332,12 +331,6 @@ class TextualScenarioProposalProvider extends AbstractTextualScenarioProposalPro } } - - override completeDeleteMessage_DoubleDot(EObject model, Assignment assignment, ContentAssistContext context, - ICompletionProposalAcceptor acceptor) { - acceptor.accept(createCompletionProposal(":", ":", null, context)) - } - override completeDeleteMessage_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { completeCreateDeleteMessageName(model, context, acceptor) @@ -352,11 +345,7 @@ class TextualScenarioProposalProvider extends AbstractTextualScenarioProposalPro override completeArmTimerMessage_Participant(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { - for (EObject el : TextualScenarioHelper.participantsDefinedBefore(model, context.rootModel as Model)) { - acceptor.accept( - createCompletionProposal("\"" + (el as Participant).name + "\"", (el as Participant).name, null, - context)) - } + proposeParticipants(context, acceptor) } override completeArmTimerMessage_Name(EObject model, Assignment assignment, ContentAssistContext context, @@ -364,16 +353,40 @@ class TextualScenarioProposalProvider extends AbstractTextualScenarioProposalPro acceptor.accept(createCompletionProposal("\"Arm Timer\"", "\"Arm Timer\"", null, context)) } - override completeArmTimerMessage_DoubleDot(EObject model, Assignment assignment, ContentAssistContext context, + override completeLostMessage_Arrow(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + if (EmbeddedEditorInstanceHelper.isESScenario()) { + acceptor.accept(createCompletionProposal("->o", "->o : Lost Message", null, context)) + } + } + + override completeLostMessage_Source(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { - acceptor.accept(createCompletionProposal(":", ":", null, context)) + proposeParticipants(context, acceptor) } - - override completeStateFragment_On(EObject model, Assignment assignment, ContentAssistContext context, + + override completeLostMessage_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { - acceptor.accept(createCompletionProposal(DslConstants.ON, DslConstants.ON, null, context)) + var message = model as LostMessage + createMessageProposal(message.source, null, context, acceptor) } - + + override completeFoundMessage_Name(EObject model, Assignment assignment, ContentAssistContext context, + ICompletionProposalAcceptor acceptor) { + var message = model as FoundMessage + createMessageProposal(null, message.target, context, acceptor) + } + + override completeFoundMessage_Arrow(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + if (EmbeddedEditorInstanceHelper.isESScenario()) { + acceptor.accept(createCompletionProposal("o->", "o-> : Found Message", null, context)) + } + } + + override completeFoundMessage_Target(EObject model, Assignment assignment, ContentAssistContext context, + ICompletionProposalAcceptor acceptor) { + proposeParticipants(context, acceptor) + } + override completeStateFragment_Timeline(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { var keywords = #[DslConstants.ACTOR, DslConstants.ACTIVITY, DslConstants.FUNCTION, DslConstants.ROLE, @@ -411,7 +424,7 @@ class TextualScenarioProposalProvider extends AbstractTextualScenarioProposalPro override completeCombinedFragment_Timelines(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { - for (EObject el : TextualScenarioHelper.participantsDefinedBefore(model, context.rootModel as Model)) { + for (EObject el : TextualScenarioHelper.participantsDefinedBefore(context.rootModel as Model)) { if (!(model as CombinedFragment).timelines.contains((el as Participant).name)) { acceptor.accept( createCompletionProposal("\"" + (el as Participant).name + "\"", (el as Participant).name, null, @@ -419,6 +432,23 @@ class TextualScenarioProposalProvider extends AbstractTextualScenarioProposalPro } } } + + override completeReference_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + var referencedScenarios = EmbeddedEditorInstanceHelper.getReferencedScenariosName() + for (referencedScenario : referencedScenarios) { + acceptor.accept(createCompletionProposal("\"" + referencedScenario + "\"", referencedScenario, null, context)) + } + } + + override completeReference_Timelines(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + for (EObject el : TextualScenarioHelper.participantsDefinedBefore(context.rootModel as Model)) { + if (!(model as Reference).timelines.contains((el as Participant).name)) { + acceptor.accept( + createCompletionProposal("\"" + (el as Participant).name + "\"", (el as Participant).name, null, + context)) + } + } + } /* * check if a message is already used in the text @@ -450,4 +480,12 @@ class TextualScenarioProposalProvider extends AbstractTextualScenarioProposalPro } } } + + def proposeParticipants(ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + for (EObject el : TextualScenarioHelper.participantsDefinedBefore(context.rootModel as Model)) { + acceptor.accept( + createCompletionProposal("\"" + (el as Participant).name + "\"", (el as Participant).name, null, + context)) + } + } } diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl.ui/src/org/polarsys/capella/scenario/editor/dsl/ui/labeling/TextualScenarioLabelProvider.xtend b/plugins/org.polarsys.capella.scenario.editor.dsl.ui/src/org/polarsys/capella/scenario/editor/dsl/ui/labeling/TextualScenarioLabelProvider.xtend index 75398d17..15156e16 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl.ui/src/org/polarsys/capella/scenario/editor/dsl/ui/labeling/TextualScenarioLabelProvider.xtend +++ b/plugins/org.polarsys.capella.scenario.editor.dsl.ui/src/org/polarsys/capella/scenario/editor/dsl/ui/labeling/TextualScenarioLabelProvider.xtend @@ -33,7 +33,7 @@ class TextualScenarioLabelProvider extends DefaultEObjectLabelProvider { // Labels and icons can be computed like this: -// def text(Greeting ele) { +// def text(SequenceMessage ele) { // 'A greeting to ' + ele.name // } // diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl.ui/xtend-gen/org/polarsys/capella/scenario/editor/dsl/ui/contentassist/TextualScenarioProposalProvider.java b/plugins/org.polarsys.capella.scenario.editor.dsl.ui/xtend-gen/org/polarsys/capella/scenario/editor/dsl/ui/contentassist/TextualScenarioProposalProvider.java index 9a29ad35..4696b66b 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl.ui/xtend-gen/org/polarsys/capella/scenario/editor/dsl/ui/contentassist/TextualScenarioProposalProvider.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl.ui/xtend-gen/org/polarsys/capella/scenario/editor/dsl/ui/contentassist/TextualScenarioProposalProvider.java @@ -1,3 +1,15 @@ +/******************************************************************************* + * Copyright (c) 2020 THALES GLOBAL SERVICES. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Thales - initial API and implementation + ******************************************************************************/ /** * Copyright (c) 2020 THALES GLOBAL SERVICES. * @@ -31,6 +43,7 @@ import org.eclipse.xtext.xbase.lib.Conversions; import org.polarsys.capella.core.data.cs.ExchangeItemAllocation; import org.polarsys.capella.core.data.epbs.EPBSArchitecture; +import org.polarsys.capella.core.data.fa.FunctionalExchange; import org.polarsys.capella.core.data.information.AbstractEventOperation; import org.polarsys.capella.core.model.helpers.CapellaElementExt; import org.polarsys.capella.scenario.editor.dsl.helpers.TextualScenarioHelper; @@ -39,10 +52,13 @@ import org.polarsys.capella.scenario.editor.dsl.textualScenario.CreateMessage; import org.polarsys.capella.scenario.editor.dsl.textualScenario.DeleteMessage; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Element; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Model; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Operand; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Participant; import org.polarsys.capella.scenario.editor.dsl.textualScenario.ParticipantDeactivation; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference; import org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessage; import org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessageType; import org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment; @@ -69,7 +85,7 @@ public void completeKeyword(final Keyword keyword, final ContentAssistContext co super.completeKeyword(keyword, contentAssistContext, acceptor); } } else { - final String[] messageKeywords = { "->", "->x", "->+", "->>" }; + final String[] messageKeywords = { "->", "->x", "->+", "->>", "->o", "o->" }; boolean _contains = ((List)Conversions.doWrapArray(messageKeywords)).contains(keyword.getValue()); boolean _not = (!_contains); if (_not) { @@ -164,15 +180,7 @@ public boolean participantAlreadyInserted(final Model model, final String name, @Override public void completeSequenceMessage_Source(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { - EObject _rootModel = context.getRootModel(); - EList _participantsDefinedBefore = TextualScenarioHelper.participantsDefinedBefore(model, ((Model) _rootModel)); - for (final EObject el : _participantsDefinedBefore) { - String _name = ((Participant) el).getName(); - String _plus = ("\"" + _name); - String _plus_1 = (_plus + "\""); - acceptor.accept( - this.createCompletionProposal(_plus_1, ((Participant) el).getName(), null, context)); - } + this.proposeParticipants(context, acceptor); } @Override @@ -182,23 +190,19 @@ public void completeSequenceMessage_Arrow(final EObject model, final Assignment @Override public void completeSequenceMessage_Target(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { - EObject _rootModel = context.getRootModel(); - EList _participantsDefinedBefore = TextualScenarioHelper.participantsDefinedBefore(model, ((Model) _rootModel)); - for (final EObject el : _participantsDefinedBefore) { - String _name = ((Participant) el).getName(); - String _plus = ("\"" + _name); - String _plus_1 = (_plus + "\""); - acceptor.accept( - this.createCompletionProposal(_plus_1, ((Participant) el).getName(), null, context)); - } + this.proposeParticipants(context, acceptor); } @Override public void completeSequenceMessage_Name(final EObject messageObj, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { + SequenceMessage message = ((SequenceMessage) messageObj); + this.createMessageProposal(message.getSource(), message.getTarget(), context, acceptor); + } + + public void createMessageProposal(final String source, final String target, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { EObject _rootModel = context.getRootModel(); Object scenarioExchangesType = TextualScenarioHelper.getScenarioAllowedExchangesType(((Model) _rootModel).getElements()); - SequenceMessage message = ((SequenceMessage) messageObj); - List exchangesAvailable = EmbeddedEditorInstanceHelper.getExchangeMessages(message.getSource(), message.getTarget()); + List exchangesAvailable = EmbeddedEditorInstanceHelper.getExchangeMessages(source, target); String elementName = new String(); for (final EObject element : exchangesAvailable) { { @@ -210,15 +214,21 @@ public void completeSequenceMessage_Name(final EObject messageObj, final Assignm } else { elementName = CapellaElementExt.getName(element); } - EObject _rootModel_2 = context.getRootModel(); - boolean _messageAlreadyInserted = this.messageAlreadyInserted(((Model) _rootModel_2), message.getSource(), message.getTarget(), elementName); - boolean _not = (!_messageAlreadyInserted); - if (_not) { - String exchangeType = TextualScenarioHelper.getExchangeType(element); - if (((scenarioExchangesType == null) || scenarioExchangesType.equals(exchangeType))) { - acceptor.accept( - this.createCompletionProposal((("\"" + elementName) + "\""), (("\"" + elementName) + "\""), null, context)); + String exchangeType = TextualScenarioHelper.getExchangeType(element); + if (((scenarioExchangesType == null) || scenarioExchangesType.equals(exchangeType))) { + String message = (("\"" + elementName) + "\""); + if ((EmbeddedEditorInstanceHelper.isESScenario() && (element instanceof FunctionalExchange))) { + String _sourceFunctionNameOfExchange = EmbeddedEditorInstanceHelper.getSourceFunctionNameOfExchange(((FunctionalExchange) element)); + String _plus = ((message + " : FE [ ") + _sourceFunctionNameOfExchange); + String _plus_1 = (_plus + + " ,"); + String _targetFunctionNameOfExchange = EmbeddedEditorInstanceHelper.getTargetFunctionNameOfExchange(((FunctionalExchange) element)); + String _plus_2 = (_plus_1 + _targetFunctionNameOfExchange); + String _plus_3 = (_plus_2 + " ]"); + message = _plus_3; } + acceptor.accept( + this.createCompletionProposal((("\"" + elementName) + "\""), message, null, context)); } } } @@ -238,7 +248,7 @@ public void completeCreateMessage_Arrow(final EObject model, final Assignment as public void completeCreateMessage_Target(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { String source = ((CreateMessage) model).getSource(); EObject _rootModel = context.getRootModel(); - EList _participantsDefinedBefore = TextualScenarioHelper.participantsDefinedBefore(model, ((Model) _rootModel)); + EList _participantsDefinedBefore = TextualScenarioHelper.participantsDefinedBefore(((Model) _rootModel)); for (final EObject el : _participantsDefinedBefore) { boolean _equals = ((Participant) el).getName().equals(source); boolean _not = (!_equals); @@ -257,11 +267,6 @@ public void completeCreateMessage_Name(final EObject model, final Assignment ass this.completeCreateDeleteMessageName(model, context, acceptor); } - @Override - public void completeCreateMessage_DoubleDot(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { - acceptor.accept(this.createCompletionProposal(":", ":", null, context)); - } - @Override public void completeDeleteMessage_Arrow(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { if (((!EmbeddedEditorInstanceHelper.isFSScenario()) && (!EmbeddedEditorInstanceHelper.isESScenario()))) { @@ -276,7 +281,7 @@ public void completeDeleteMessage_Arrow(final EObject model, final Assignment as public void completeDeleteMessage_Target(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { String source = ((DeleteMessage) model).getSource(); EObject _rootModel = context.getRootModel(); - EList _participantsDefinedBefore = TextualScenarioHelper.participantsDefinedBefore(model, ((Model) _rootModel)); + EList _participantsDefinedBefore = TextualScenarioHelper.participantsDefinedBefore(((Model) _rootModel)); for (final EObject el : _participantsDefinedBefore) { boolean _equals = ((Participant) el).getName().equals(source); boolean _not = (!_equals); @@ -408,11 +413,6 @@ public Integer updateHashMapWithParticipantDeactivation(final HashMap _participantsDefinedBefore = TextualScenarioHelper.participantsDefinedBefore(model, ((Model) _rootModel)); - for (final EObject el : _participantsDefinedBefore) { - String _name = ((Participant) el).getName(); - String _plus = ("\"" + _name); - String _plus_1 = (_plus + "\""); - acceptor.accept( - this.createCompletionProposal(_plus_1, ((Participant) el).getName(), null, context)); - } + this.proposeParticipants(context, acceptor); } @Override @@ -446,13 +438,41 @@ public void completeArmTimerMessage_Name(final EObject model, final Assignment a } @Override - public void completeArmTimerMessage_DoubleDot(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { - acceptor.accept(this.createCompletionProposal(":", ":", null, context)); + public void completeLostMessage_Arrow(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { + boolean _isESScenario = EmbeddedEditorInstanceHelper.isESScenario(); + if (_isESScenario) { + acceptor.accept(this.createCompletionProposal("->o", "->o : Lost Message", null, context)); + } + } + + @Override + public void completeLostMessage_Source(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { + this.proposeParticipants(context, acceptor); + } + + @Override + public void completeLostMessage_Name(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { + LostMessage message = ((LostMessage) model); + this.createMessageProposal(message.getSource(), null, context, acceptor); + } + + @Override + public void completeFoundMessage_Name(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { + FoundMessage message = ((FoundMessage) model); + this.createMessageProposal(null, message.getTarget(), context, acceptor); } @Override - public void completeStateFragment_On(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { - acceptor.accept(this.createCompletionProposal(DslConstants.ON, DslConstants.ON, null, context)); + public void completeFoundMessage_Arrow(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { + boolean _isESScenario = EmbeddedEditorInstanceHelper.isESScenario(); + if (_isESScenario) { + acceptor.accept(this.createCompletionProposal("o->", "o-> : Found Message", null, context)); + } + } + + @Override + public void completeFoundMessage_Target(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { + this.proposeParticipants(context, acceptor); } @Override @@ -492,7 +512,7 @@ public void completeStateFragment_Name(final EObject model, final Assignment ass @Override public void completeCombinedFragment_Timelines(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { EObject _rootModel = context.getRootModel(); - EList _participantsDefinedBefore = TextualScenarioHelper.participantsDefinedBefore(model, ((Model) _rootModel)); + EList _participantsDefinedBefore = TextualScenarioHelper.participantsDefinedBefore(((Model) _rootModel)); for (final EObject el : _participantsDefinedBefore) { boolean _contains = ((CombinedFragment) model).getTimelines().contains(((Participant) el).getName()); boolean _not = (!_contains); @@ -506,6 +526,31 @@ public void completeCombinedFragment_Timelines(final EObject model, final Assign } } + @Override + public void completeReference_Name(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { + List referencedScenarios = EmbeddedEditorInstanceHelper.getReferencedScenariosName(); + for (final String referencedScenario : referencedScenarios) { + acceptor.accept(this.createCompletionProposal((("\"" + referencedScenario) + "\""), referencedScenario, null, context)); + } + } + + @Override + public void completeReference_Timelines(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { + EObject _rootModel = context.getRootModel(); + EList _participantsDefinedBefore = TextualScenarioHelper.participantsDefinedBefore(((Model) _rootModel)); + for (final EObject el : _participantsDefinedBefore) { + boolean _contains = ((Reference) model).getTimelines().contains(((Participant) el).getName()); + boolean _not = (!_contains); + if (_not) { + String _name = ((Participant) el).getName(); + String _plus = ("\"" + _name); + String _plus_1 = (_plus + "\""); + acceptor.accept( + this.createCompletionProposal(_plus_1, ((Participant) el).getName(), null, context)); + } + } + } + /** * check if a message is already used in the text */ @@ -541,4 +586,16 @@ public void completeCreateDeleteMessageName(final EObject model, final ContentAs } } } + + public void proposeParticipants(final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { + EObject _rootModel = context.getRootModel(); + EList _participantsDefinedBefore = TextualScenarioHelper.participantsDefinedBefore(((Model) _rootModel)); + for (final EObject el : _participantsDefinedBefore) { + String _name = ((Participant) el).getName(); + String _plus = ("\"" + _name); + String _plus_1 = (_plus + "\""); + acceptor.accept( + this.createCompletionProposal(_plus_1, ((Participant) el).getName(), null, context)); + } + } } diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/.launch/runtime-textualEditor3.launch b/plugins/org.polarsys.capella.scenario.editor.dsl/.launch/runtime-textualEditor3.launch new file mode 100644 index 00000000..b808dadc --- /dev/null +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/.launch/runtime-textualEditor3.launch @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/model/generated/TextualScenario.ecore b/plugins/org.polarsys.capella.scenario.editor.dsl/model/generated/TextualScenario.ecore index ef382185..c993838a 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/model/generated/TextualScenario.ecore +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/model/generated/TextualScenario.ecore @@ -45,6 +45,17 @@ + + + + + + + + + + + @@ -77,4 +88,11 @@ + + + + + + diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/model/generated/TextualScenario.genmodel b/plugins/org.polarsys.capella.scenario.editor.dsl/model/generated/TextualScenario.genmodel index 52e5444e..c86326f5 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/model/generated/TextualScenario.genmodel +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/model/generated/TextualScenario.genmodel @@ -47,6 +47,17 @@ + + + + + + + + + + + @@ -74,5 +85,11 @@ + + + + + + diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/TextualScenario.xtextbin b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/TextualScenario.xtextbin index a00540b8578c9a78323954b0da46854c6a51ca96..1a7d08d504f69d0bcd4ce57057e8e35d28255841 100644 GIT binary patch delta 1471 zcmZvcOMeta6ve6Tsh-S`Ou|zQC@7$ihpnhQCCMcryn>N8L=-zcm7z^f*HGO@J|EmbO{<3~l$c@+a zxk^q0Vpvj53_05tbehfUZqmG>(llr(m+HcGW^TK*)p57DJAD7$6QV+cLQ0p0xJd&| z2Kh)&KWz0QtZ$ThTZD9*sLEW@cF~a4RCi6NJm*Z6cA(d3A!sM|y}%f~R&4JQo~%qx zX;gNjQg7<+a;)ZbR#ZPi)j5UQ$Ee99XqUY{DSHVNMj3Gr5Qq9b<}U5Eke@Q-uNTb`1xjadpSx}bKV54wn{RW#;vo7^?Spk`6P@~ z>1(tbSXEEfv}qPZJ|1w8zF|W_oC*3CD;aCu5pxx9p{zq;QR?*rMY@2=p>&_GZTf_KZOsko1`jZBd5!}wyMV+ zgZbMG>_;2t8ID0eQl@~Og0%R8aGHhVvYth46(fMubH_18Gge3tddsn13|9;3Sq^L# zfq7?R9j>}GXHz=I??2%C#Wo&(9(h&hd?8n@sC>T*xY+p%w_aTTXJj=>UEo817w;qJ3geB*n(inQBuz{A6H_dLVqme{cj;%#ag{mhzHbX4xmJ)|F9Yg- zyqs=u5Gqa;7;b(z!CN+n+cpTB!<{mRk`n5>{JjLC#`P@7)SD^##d6(at`XnwE9XfD zykCJQ={K}@?UdgK71rqbJ9cZEFH__nSe#{4`n^zyL99>{QZHo!L5j__brZ`KENd&> zB;;Qbk4p=3nfHF^56Z4wiP*>=FjBv!R+Ldmh<~zGYa(V7gTCJ@fxlhwC-3rTTv;({ z1uZ*#S?{ig)`1ZV{WF;|El(%}*@tJc+oR;z=@HuYhGuR3&+QXCYt*1Uw1viKk!EQL HJ{<8skhvu^ delta 869 zcmZ9K%U07+6o%PJPTG`G%0)%IpdemaB#L(t=>|j{IdI@Ow8yS2lAM|ZFH2o{h|YZm zm8nyG3}3;KbN`b>U1hfK=iC22pITp+KYtfAclbm6w#XWOtF4iB_^Y;KWkkePniTBN zgfX?P!aYBdz1`UBhcZe{u90bUUYI;?m}BOQ>mIEji|bSo6`r7msP4;mZ&ci~jg1O7 zNQgR5k}WJRNQs-UM4;4wcuEHcUQC=#!>o8oB4d=yz;U{mnLcKcM(1b$3BP>nd6G+IxZO?&qE7wSls>WCaM)g?{H`y&gu4#~(>y`RQia>2D%>elC=k(lSNr#X(|DeGsr>(|?w3&O8mj5KBWcPkegHPX8yIhvCwmAa z*qFMBsPp$Mx%!o"); + } + ) + ) + ( + ( + lv_doubleDot_2_0=':' + { + newLeafNode(lv_doubleDot_2_0, grammarAccess.getLostMessageAccess().getDoubleDotColonKeyword_2_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getLostMessageRule()); + } + setWithLastConsumed($current, "doubleDot", lv_doubleDot_2_0, ":"); + } + ) + ) + ( + ( + lv_name_3_0=RULE_STRING + { + newLeafNode(lv_name_3_0, grammarAccess.getLostMessageAccess().getNameSTRINGTerminalRuleCall_3_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getLostMessageRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_3_0, + "org.eclipse.xtext.common.Terminals.STRING"); + } + ) + ) + ) +; + +// Entry rule entryRuleFoundMessage +entryRuleFoundMessage returns [EObject current=null]: + { newCompositeNode(grammarAccess.getFoundMessageRule()); } + iv_ruleFoundMessage=ruleFoundMessage + { $current=$iv_ruleFoundMessage.current; } + EOF; + +// Rule FoundMessage +ruleFoundMessage returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + lv_arrow_0_0='o->' + { + newLeafNode(lv_arrow_0_0, grammarAccess.getFoundMessageAccess().getArrowOKeyword_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getFoundMessageRule()); + } + setWithLastConsumed($current, "arrow", lv_arrow_0_0, "o->"); + } + ) + ) + ( + ( + lv_target_1_0=RULE_STRING + { + newLeafNode(lv_target_1_0, grammarAccess.getFoundMessageAccess().getTargetSTRINGTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getFoundMessageRule()); + } + setWithLastConsumed( + $current, + "target", + lv_target_1_0, + "org.eclipse.xtext.common.Terminals.STRING"); + } + ) + ) + ( + ( + lv_execution_2_0='withExecution' + { + newLeafNode(lv_execution_2_0, grammarAccess.getFoundMessageAccess().getExecutionWithExecutionKeyword_2_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getFoundMessageRule()); + } + setWithLastConsumed($current, "execution", lv_execution_2_0, "withExecution"); + } + ) + )? + ( + ( + lv_doubleDot_3_0=':' + { + newLeafNode(lv_doubleDot_3_0, grammarAccess.getFoundMessageAccess().getDoubleDotColonKeyword_3_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getFoundMessageRule()); + } + setWithLastConsumed($current, "doubleDot", lv_doubleDot_3_0, ":"); + } + ) + ) + ( + ( + lv_name_4_0=RULE_STRING + { + newLeafNode(lv_name_4_0, grammarAccess.getFoundMessageAccess().getNameSTRINGTerminalRuleCall_4_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getFoundMessageRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_4_0, + "org.eclipse.xtext.common.Terminals.STRING"); + } + ) + ) + ) +; + // Entry rule entryRuleParticipantDeactivation entryRuleParticipantDeactivation returns [EObject current=null]: { newCompositeNode(grammarAccess.getParticipantDeactivationRule()); } @@ -1414,7 +1648,7 @@ ruleCombinedFragment returns [EObject current=null] "org.eclipse.xtext.common.Terminals.STRING"); } ) - ) + )? ( ( lv_over_2_0='over' @@ -1535,7 +1769,7 @@ ruleOperand returns [EObject current=null] "org.eclipse.xtext.common.Terminals.STRING"); } ) - ) + )? ( ( { @@ -1731,6 +1965,89 @@ ruleStateFragment returns [EObject current=null] ) ; +// Entry rule entryRuleReference +entryRuleReference returns [EObject current=null]: + { newCompositeNode(grammarAccess.getReferenceRule()); } + iv_ruleReference=ruleReference + { $current=$iv_ruleReference.current; } + EOF; + +// Rule Reference +ruleReference returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + lv_keyword_0_0='ref' + { + newLeafNode(lv_keyword_0_0, grammarAccess.getReferenceAccess().getKeywordRefKeyword_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getReferenceRule()); + } + setWithLastConsumed($current, "keyword", lv_keyword_0_0, "ref"); + } + ) + ) + ( + ( + lv_name_1_0=RULE_STRING + { + newLeafNode(lv_name_1_0, grammarAccess.getReferenceAccess().getNameSTRINGTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getReferenceRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_1_0, + "org.eclipse.xtext.common.Terminals.STRING"); + } + ) + ) + ( + ( + lv_over_2_0='over' + { + newLeafNode(lv_over_2_0, grammarAccess.getReferenceAccess().getOverOverKeyword_2_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getReferenceRule()); + } + setWithLastConsumed($current, "over", lv_over_2_0, "over"); + } + ) + ) + ( + ( + lv_timelines_3_0=RULE_STRING + { + newLeafNode(lv_timelines_3_0, grammarAccess.getReferenceAccess().getTimelinesSTRINGTerminalRuleCall_3_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getReferenceRule()); + } + addWithLastConsumed( + $current, + "timelines", + lv_timelines_3_0, + "org.eclipse.xtext.common.Terminals.STRING"); + } + ) + )+ + ) +; + RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; RULE_INT : ('0'..'9')+; diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/parser/antlr/internal/InternalTextualScenario.tokens b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/parser/antlr/internal/InternalTextualScenario.tokens index c6659009..da8bb431 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/parser/antlr/internal/InternalTextualScenario.tokens +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/parser/antlr/internal/InternalTextualScenario.tokens @@ -1,33 +1,36 @@ '->'=21 '->+'=25 '->>'=27 +'->o'=28 '->x'=26 ':'=24 'activity'=18 'actor'=14 -'alt'=29 -'assert'=32 +'alt'=31 +'assert'=34 'component'=15 'configuration_item'=16 -'critical'=33 -'deactivate'=28 -'else'=41 +'critical'=35 +'deactivate'=30 +'else'=43 'entity'=19 'function'=17 -'ignore'=34 -'loop'=30 -'mode'=44 -'neg'=35 -'on'=42 -'opt'=36 -'over'=40 -'par'=31 +'ignore'=36 +'loop'=32 +'mode'=46 +'neg'=37 +'o->'=29 +'on'=44 +'opt'=38 +'over'=42 +'par'=33 +'ref'=47 'role'=20 'scenario'=11 -'seq'=37 -'state'=43 -'strict'=38 -'unset'=39 +'seq'=39 +'state'=45 +'strict'=40 +'unset'=41 'withExecution'=22 'withReturn'=23 '{'=12 @@ -73,3 +76,6 @@ T__41=41 T__42=42 T__43=43 T__44=44 +T__45=45 +T__46=46 +T__47=47 diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/parser/antlr/internal/InternalTextualScenarioLexer.java b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/parser/antlr/internal/InternalTextualScenarioLexer.java index a6ab5109..5dc8b09d 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/parser/antlr/internal/InternalTextualScenarioLexer.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/parser/antlr/internal/InternalTextualScenarioLexer.java @@ -62,6 +62,9 @@ public class InternalTextualScenarioLexer extends Lexer { public static final int RULE_WS=9; public static final int RULE_ANY_OTHER=10; 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; @@ -439,10 +442,10 @@ public final void mT__28() throws RecognitionException { try { int _type = T__28; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:28:7: ( 'deactivate' ) - // InternalTextualScenario.g:28:9: 'deactivate' + // InternalTextualScenario.g:28:7: ( '->o' ) + // InternalTextualScenario.g:28:9: '->o' { - match("deactivate"); + match("->o"); } @@ -460,10 +463,10 @@ public final void mT__29() throws RecognitionException { try { int _type = T__29; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:29:7: ( 'alt' ) - // InternalTextualScenario.g:29:9: 'alt' + // InternalTextualScenario.g:29:7: ( 'o->' ) + // InternalTextualScenario.g:29:9: 'o->' { - match("alt"); + match("o->"); } @@ -481,10 +484,10 @@ public final void mT__30() throws RecognitionException { try { int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:30:7: ( 'loop' ) - // InternalTextualScenario.g:30:9: 'loop' + // InternalTextualScenario.g:30:7: ( 'deactivate' ) + // InternalTextualScenario.g:30:9: 'deactivate' { - match("loop"); + match("deactivate"); } @@ -502,10 +505,10 @@ public final void mT__31() throws RecognitionException { try { int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:31:7: ( 'par' ) - // InternalTextualScenario.g:31:9: 'par' + // InternalTextualScenario.g:31:7: ( 'alt' ) + // InternalTextualScenario.g:31:9: 'alt' { - match("par"); + match("alt"); } @@ -523,10 +526,10 @@ public final void mT__32() throws RecognitionException { try { int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:32:7: ( 'assert' ) - // InternalTextualScenario.g:32:9: 'assert' + // InternalTextualScenario.g:32:7: ( 'loop' ) + // InternalTextualScenario.g:32:9: 'loop' { - match("assert"); + match("loop"); } @@ -544,10 +547,10 @@ public final void mT__33() throws RecognitionException { try { int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:33:7: ( 'critical' ) - // InternalTextualScenario.g:33:9: 'critical' + // InternalTextualScenario.g:33:7: ( 'par' ) + // InternalTextualScenario.g:33:9: 'par' { - match("critical"); + match("par"); } @@ -565,10 +568,10 @@ public final void mT__34() throws RecognitionException { try { int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:34:7: ( 'ignore' ) - // InternalTextualScenario.g:34:9: 'ignore' + // InternalTextualScenario.g:34:7: ( 'assert' ) + // InternalTextualScenario.g:34:9: 'assert' { - match("ignore"); + match("assert"); } @@ -586,10 +589,10 @@ public final void mT__35() throws RecognitionException { try { int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:35:7: ( 'neg' ) - // InternalTextualScenario.g:35:9: 'neg' + // InternalTextualScenario.g:35:7: ( 'critical' ) + // InternalTextualScenario.g:35:9: 'critical' { - match("neg"); + match("critical"); } @@ -607,10 +610,10 @@ public final void mT__36() throws RecognitionException { try { int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:36:7: ( 'opt' ) - // InternalTextualScenario.g:36:9: 'opt' + // InternalTextualScenario.g:36:7: ( 'ignore' ) + // InternalTextualScenario.g:36:9: 'ignore' { - match("opt"); + match("ignore"); } @@ -628,10 +631,10 @@ public final void mT__37() throws RecognitionException { try { int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:37:7: ( 'seq' ) - // InternalTextualScenario.g:37:9: 'seq' + // InternalTextualScenario.g:37:7: ( 'neg' ) + // InternalTextualScenario.g:37:9: 'neg' { - match("seq"); + match("neg"); } @@ -649,10 +652,10 @@ public final void mT__38() throws RecognitionException { try { int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:38:7: ( 'strict' ) - // InternalTextualScenario.g:38:9: 'strict' + // InternalTextualScenario.g:38:7: ( 'opt' ) + // InternalTextualScenario.g:38:9: 'opt' { - match("strict"); + match("opt"); } @@ -670,10 +673,10 @@ public final void mT__39() throws RecognitionException { try { int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:39:7: ( 'unset' ) - // InternalTextualScenario.g:39:9: 'unset' + // InternalTextualScenario.g:39:7: ( 'seq' ) + // InternalTextualScenario.g:39:9: 'seq' { - match("unset"); + match("seq"); } @@ -691,10 +694,10 @@ public final void mT__40() throws RecognitionException { try { int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:40:7: ( 'over' ) - // InternalTextualScenario.g:40:9: 'over' + // InternalTextualScenario.g:40:7: ( 'strict' ) + // InternalTextualScenario.g:40:9: 'strict' { - match("over"); + match("strict"); } @@ -712,10 +715,10 @@ public final void mT__41() throws RecognitionException { try { int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:41:7: ( 'else' ) - // InternalTextualScenario.g:41:9: 'else' + // InternalTextualScenario.g:41:7: ( 'unset' ) + // InternalTextualScenario.g:41:9: 'unset' { - match("else"); + match("unset"); } @@ -733,10 +736,10 @@ public final void mT__42() throws RecognitionException { try { int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:42:7: ( 'on' ) - // InternalTextualScenario.g:42:9: 'on' + // InternalTextualScenario.g:42:7: ( 'over' ) + // InternalTextualScenario.g:42:9: 'over' { - match("on"); + match("over"); } @@ -754,10 +757,10 @@ public final void mT__43() throws RecognitionException { try { int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:43:7: ( 'state' ) - // InternalTextualScenario.g:43:9: 'state' + // InternalTextualScenario.g:43:7: ( 'else' ) + // InternalTextualScenario.g:43:9: 'else' { - match("state"); + match("else"); } @@ -775,10 +778,10 @@ public final void mT__44() throws RecognitionException { try { int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:44:7: ( 'mode' ) - // InternalTextualScenario.g:44:9: 'mode' + // InternalTextualScenario.g:44:7: ( 'on' ) + // InternalTextualScenario.g:44:9: 'on' { - match("mode"); + match("on"); } @@ -791,15 +794,78 @@ public final void mT__44() throws RecognitionException { } // $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; + // InternalTextualScenario.g:45:7: ( 'state' ) + // InternalTextualScenario.g:45:9: 'state' + { + match("state"); + + + } + + 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; + // InternalTextualScenario.g:46:7: ( 'mode' ) + // InternalTextualScenario.g:46:9: 'mode' + { + match("mode"); + + + } + + 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; + // InternalTextualScenario.g:47:7: ( 'ref' ) + // InternalTextualScenario.g:47:9: 'ref' + { + match("ref"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__47" + // $ANTLR start "RULE_ID" public final void mRULE_ID() throws RecognitionException { try { int _type = RULE_ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:1734:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) - // InternalTextualScenario.g:1734:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + // InternalTextualScenario.g:2051:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) + // InternalTextualScenario.g:2051:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* { - // InternalTextualScenario.g:1734:11: ( '^' )? + // InternalTextualScenario.g:2051:11: ( '^' )? int alt1=2; int LA1_0 = input.LA(1); @@ -808,7 +874,7 @@ public final void mRULE_ID() throws RecognitionException { } switch (alt1) { case 1 : - // InternalTextualScenario.g:1734:11: '^' + // InternalTextualScenario.g:2051:11: '^' { match('^'); @@ -826,7 +892,7 @@ public final void mRULE_ID() throws RecognitionException { recover(mse); throw mse;} - // InternalTextualScenario.g:1734:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + // InternalTextualScenario.g:2051:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* loop2: do { int alt2=2; @@ -875,10 +941,10 @@ public final void mRULE_INT() throws RecognitionException { try { int _type = RULE_INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:1736:10: ( ( '0' .. '9' )+ ) - // InternalTextualScenario.g:1736:12: ( '0' .. '9' )+ + // InternalTextualScenario.g:2053:10: ( ( '0' .. '9' )+ ) + // InternalTextualScenario.g:2053:12: ( '0' .. '9' )+ { - // InternalTextualScenario.g:1736:12: ( '0' .. '9' )+ + // InternalTextualScenario.g:2053:12: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -892,7 +958,7 @@ public final void mRULE_INT() throws RecognitionException { switch (alt3) { case 1 : - // InternalTextualScenario.g:1736:13: '0' .. '9' + // InternalTextualScenario.g:2053:13: '0' .. '9' { matchRange('0','9'); @@ -924,10 +990,10 @@ public final void mRULE_STRING() throws RecognitionException { try { int _type = RULE_STRING; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:1738:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) - // InternalTextualScenario.g:1738:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + // InternalTextualScenario.g:2055:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) + // InternalTextualScenario.g:2055:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) { - // InternalTextualScenario.g:1738:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + // InternalTextualScenario.g:2055:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) int alt6=2; int LA6_0 = input.LA(1); @@ -945,10 +1011,10 @@ else if ( (LA6_0=='\'') ) { } switch (alt6) { case 1 : - // InternalTextualScenario.g:1738:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + // InternalTextualScenario.g:2055:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' { match('\"'); - // InternalTextualScenario.g:1738:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* + // InternalTextualScenario.g:2055:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* loop4: do { int alt4=3; @@ -964,7 +1030,7 @@ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>= switch (alt4) { case 1 : - // InternalTextualScenario.g:1738:21: '\\\\' . + // InternalTextualScenario.g:2055:21: '\\\\' . { match('\\'); matchAny(); @@ -972,7 +1038,7 @@ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>= } break; case 2 : - // InternalTextualScenario.g:1738:28: ~ ( ( '\\\\' | '\"' ) ) + // InternalTextualScenario.g:2055:28: ~ ( ( '\\\\' | '\"' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -997,10 +1063,10 @@ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>= } break; case 2 : - // InternalTextualScenario.g:1738:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' + // InternalTextualScenario.g:2055:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' { match('\''); - // InternalTextualScenario.g:1738:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* + // InternalTextualScenario.g:2055:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* loop5: do { int alt5=3; @@ -1016,7 +1082,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= switch (alt5) { case 1 : - // InternalTextualScenario.g:1738:54: '\\\\' . + // InternalTextualScenario.g:2055:54: '\\\\' . { match('\\'); matchAny(); @@ -1024,7 +1090,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= } break; case 2 : - // InternalTextualScenario.g:1738:61: ~ ( ( '\\\\' | '\\'' ) ) + // InternalTextualScenario.g:2055:61: ~ ( ( '\\\\' | '\\'' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -1067,12 +1133,12 @@ public final void mRULE_ML_COMMENT() throws RecognitionException { try { int _type = RULE_ML_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:1740:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) - // InternalTextualScenario.g:1740:19: '/*' ( options {greedy=false; } : . )* '*/' + // InternalTextualScenario.g:2057:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // InternalTextualScenario.g:2057:19: '/*' ( options {greedy=false; } : . )* '*/' { match("/*"); - // InternalTextualScenario.g:1740:24: ( options {greedy=false; } : . )* + // InternalTextualScenario.g:2057:24: ( options {greedy=false; } : . )* loop7: do { int alt7=2; @@ -1097,7 +1163,7 @@ else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) { switch (alt7) { case 1 : - // InternalTextualScenario.g:1740:52: . + // InternalTextualScenario.g:2057:52: . { matchAny(); @@ -1127,12 +1193,12 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { try { int _type = RULE_SL_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:1742:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) - // InternalTextualScenario.g:1742:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + // InternalTextualScenario.g:2059:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // InternalTextualScenario.g:2059:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? { match("//"); - // InternalTextualScenario.g:1742:24: (~ ( ( '\\n' | '\\r' ) ) )* + // InternalTextualScenario.g:2059:24: (~ ( ( '\\n' | '\\r' ) ) )* loop8: do { int alt8=2; @@ -1145,7 +1211,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { switch (alt8) { case 1 : - // InternalTextualScenario.g:1742:24: ~ ( ( '\\n' | '\\r' ) ) + // InternalTextualScenario.g:2059: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(); @@ -1165,7 +1231,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } } while (true); - // InternalTextualScenario.g:1742:40: ( ( '\\r' )? '\\n' )? + // InternalTextualScenario.g:2059:40: ( ( '\\r' )? '\\n' )? int alt10=2; int LA10_0 = input.LA(1); @@ -1174,9 +1240,9 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } switch (alt10) { case 1 : - // InternalTextualScenario.g:1742:41: ( '\\r' )? '\\n' + // InternalTextualScenario.g:2059:41: ( '\\r' )? '\\n' { - // InternalTextualScenario.g:1742:41: ( '\\r' )? + // InternalTextualScenario.g:2059:41: ( '\\r' )? int alt9=2; int LA9_0 = input.LA(1); @@ -1185,7 +1251,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } switch (alt9) { case 1 : - // InternalTextualScenario.g:1742:41: '\\r' + // InternalTextualScenario.g:2059:41: '\\r' { match('\r'); @@ -1217,10 +1283,10 @@ public final void mRULE_WS() throws RecognitionException { try { int _type = RULE_WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:1744:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) - // InternalTextualScenario.g:1744:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // InternalTextualScenario.g:2061:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // InternalTextualScenario.g:2061:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ { - // InternalTextualScenario.g:1744:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // InternalTextualScenario.g:2061:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ int cnt11=0; loop11: do { @@ -1274,8 +1340,8 @@ public final void mRULE_ANY_OTHER() throws RecognitionException { try { int _type = RULE_ANY_OTHER; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalTextualScenario.g:1746:16: ( . ) - // InternalTextualScenario.g:1746:18: . + // InternalTextualScenario.g:2063:16: ( . ) + // InternalTextualScenario.g:2063:18: . { matchAny(); @@ -1290,8 +1356,8 @@ public final void mRULE_ANY_OTHER() throws RecognitionException { // $ANTLR end "RULE_ANY_OTHER" public void mTokens() throws RecognitionException { - // InternalTextualScenario.g:1:8: ( T__11 | 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 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) - int alt12=41; + // InternalTextualScenario.g:1:8: ( T__11 | 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 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) + int alt12=44; alt12 = dfa12.predict(input); switch (alt12) { case 1 : @@ -1533,49 +1599,70 @@ public void mTokens() throws RecognitionException { } break; case 35 : - // InternalTextualScenario.g:1:214: RULE_ID + // InternalTextualScenario.g:1:214: T__45 { - mRULE_ID(); + mT__45(); } break; case 36 : - // InternalTextualScenario.g:1:222: RULE_INT + // InternalTextualScenario.g:1:220: T__46 { - mRULE_INT(); + mT__46(); } break; case 37 : - // InternalTextualScenario.g:1:231: RULE_STRING + // InternalTextualScenario.g:1:226: T__47 { - mRULE_STRING(); + mT__47(); } break; case 38 : - // InternalTextualScenario.g:1:243: RULE_ML_COMMENT + // InternalTextualScenario.g:1:232: RULE_ID { - mRULE_ML_COMMENT(); + mRULE_ID(); } break; case 39 : - // InternalTextualScenario.g:1:259: RULE_SL_COMMENT + // InternalTextualScenario.g:1:240: RULE_INT { - mRULE_SL_COMMENT(); + mRULE_INT(); } break; case 40 : - // InternalTextualScenario.g:1:275: RULE_WS + // InternalTextualScenario.g:1:249: RULE_STRING { - mRULE_WS(); + mRULE_STRING(); } break; case 41 : - // InternalTextualScenario.g:1:283: RULE_ANY_OTHER + // InternalTextualScenario.g:1:261: RULE_ML_COMMENT + { + mRULE_ML_COMMENT(); + + } + break; + case 42 : + // InternalTextualScenario.g:1:277: RULE_SL_COMMENT + { + mRULE_SL_COMMENT(); + + } + break; + case 43 : + // InternalTextualScenario.g:1:293: RULE_WS + { + mRULE_WS(); + + } + break; + case 44 : + // InternalTextualScenario.g:1:301: RULE_ANY_OTHER { mRULE_ANY_OTHER(); @@ -1589,19 +1676,19 @@ public void mTokens() throws RecognitionException { protected DFA12 dfa12 = new DFA12(this); static final String DFA12_eotS = - "\1\uffff\1\37\2\uffff\5\37\1\33\1\37\1\uffff\10\37\1\33\2\uffff\3\33\2\uffff\3\37\3\uffff\11\37\1\116\1\37\1\uffff\7\37\1\127\2\37\5\uffff\1\37\1\133\3\37\1\140\10\37\4\uffff\3\37\1\154\1\37\1\156\1\157\1\37\1\uffff\3\37\1\uffff\4\37\1\uffff\6\37\1\176\1\177\2\37\1\u0083\1\uffff\1\37\2\uffff\1\u0085\1\37\1\u0087\2\37\1\u008a\1\u008b\7\37\2\uffff\3\37\1\uffff\1\37\1\uffff\1\u0097\1\uffff\1\37\1\u0099\2\uffff\1\37\1\u009b\4\37\1\u00a0\3\37\1\u00a4\1\uffff\1\37\1\uffff\1\37\1\uffff\4\37\1\uffff\3\37\1\uffff\1\u00ae\1\u00af\2\37\1\u00b2\1\u00b3\3\37\2\uffff\1\u00b7\1\37\2\uffff\3\37\1\uffff\2\37\1\u00be\1\u00bf\2\37\2\uffff\3\37\1\u00c5\1\37\1\uffff\3\37\1\u00ca\1\uffff"; + "\1\uffff\1\37\2\uffff\5\37\1\33\1\37\1\uffff\10\37\1\33\2\uffff\3\33\2\uffff\3\37\3\uffff\12\37\1\122\1\37\2\uffff\2\37\1\126\7\37\5\uffff\1\37\1\137\3\37\1\144\10\37\1\155\5\uffff\1\37\1\157\1\37\1\uffff\2\37\1\163\1\37\1\165\3\37\1\uffff\4\37\1\uffff\6\37\1\u0083\1\u0084\1\uffff\1\37\1\uffff\1\u0087\1\37\1\u0089\1\uffff\1\37\1\uffff\1\37\1\u008c\2\37\1\u008f\1\u0090\7\37\2\uffff\2\37\1\uffff\1\37\1\uffff\1\37\1\u009c\1\uffff\1\37\1\u009e\2\uffff\1\37\1\u00a0\4\37\1\u00a5\3\37\1\u00a9\1\uffff\1\37\1\uffff\1\37\1\uffff\4\37\1\uffff\3\37\1\uffff\1\u00b3\1\u00b4\2\37\1\u00b7\1\u00b8\3\37\2\uffff\1\u00bc\1\37\2\uffff\3\37\1\uffff\2\37\1\u00c3\1\u00c4\2\37\2\uffff\3\37\1\u00ca\1\37\1\uffff\3\37\1\u00cf\1\uffff"; static final String DFA12_eofS = - "\u00cb\uffff"; + "\u00d0\uffff"; static final String DFA12_minS = - "\1\0\1\143\2\uffff\1\143\1\157\1\165\1\154\1\157\1\76\1\151\1\uffff\1\145\1\157\1\141\1\147\1\145\2\156\1\157\1\101\2\uffff\2\0\1\52\2\uffff\1\145\1\161\1\141\3\uffff\2\164\1\163\1\155\1\151\1\156\1\164\1\163\1\154\1\53\1\164\1\uffff\1\141\1\157\1\162\1\156\1\147\1\164\1\145\1\60\1\163\1\144\5\uffff\1\156\1\60\1\151\1\164\1\151\1\60\1\145\1\160\1\146\1\164\1\143\1\151\2\145\4\uffff\1\150\1\143\1\160\1\60\1\157\2\60\1\162\1\uffff\2\145\1\141\1\uffff\1\143\1\145\1\162\1\166\1\uffff\1\162\1\157\2\151\2\164\2\60\1\105\1\164\1\60\1\uffff\1\162\2\uffff\1\60\1\164\1\60\1\162\1\164\2\60\1\151\1\164\1\156\1\147\1\143\1\151\1\171\2\uffff\1\170\1\145\1\151\1\uffff\1\145\1\uffff\1\60\1\uffff\1\151\1\60\2\uffff\1\164\1\60\1\145\1\165\1\141\1\157\1\60\1\145\1\164\1\166\1\60\1\uffff\1\157\1\uffff\1\171\1\uffff\1\156\1\162\1\154\1\156\1\uffff\1\143\1\165\1\141\1\uffff\2\60\1\164\1\141\2\60\1\165\1\162\1\164\2\uffff\1\60\1\164\2\uffff\1\164\1\156\1\145\1\uffff\2\151\2\60\2\157\2\uffff\2\156\1\137\1\60\1\151\1\uffff\1\164\1\145\1\155\1\60\1\uffff"; + "\1\0\1\143\2\uffff\1\143\1\157\1\165\1\154\1\145\1\76\1\151\1\uffff\1\55\1\145\1\157\1\141\1\147\1\145\1\156\1\157\1\101\2\uffff\2\0\1\52\2\uffff\1\145\1\161\1\141\3\uffff\2\164\1\163\1\155\1\151\1\156\1\164\1\163\1\154\1\146\1\53\1\164\2\uffff\1\164\1\145\1\60\1\141\1\157\1\162\1\156\1\147\1\163\1\144\5\uffff\1\156\1\60\1\151\1\164\1\151\1\60\1\145\1\160\1\146\1\164\1\143\1\151\2\145\1\60\5\uffff\1\150\1\60\1\162\1\uffff\1\143\1\160\1\60\1\157\1\60\2\145\1\141\1\uffff\1\143\1\145\1\162\1\166\1\uffff\1\162\1\157\2\151\2\164\2\60\1\uffff\1\105\1\uffff\1\60\1\164\1\60\1\uffff\1\162\1\uffff\1\164\1\60\1\162\1\164\2\60\1\151\1\164\1\156\1\147\1\143\1\151\1\171\2\uffff\1\170\1\145\1\uffff\1\151\1\uffff\1\145\1\60\1\uffff\1\151\1\60\2\uffff\1\164\1\60\1\145\1\165\1\141\1\157\1\60\1\145\1\164\1\166\1\60\1\uffff\1\157\1\uffff\1\171\1\uffff\1\156\1\162\1\154\1\156\1\uffff\1\143\1\165\1\141\1\uffff\2\60\1\164\1\141\2\60\1\165\1\162\1\164\2\uffff\1\60\1\164\2\uffff\1\164\1\156\1\145\1\uffff\2\151\2\60\2\157\2\uffff\2\156\1\137\1\60\1\151\1\uffff\1\164\1\145\1\155\1\60\1\uffff"; static final String DFA12_maxS = - "\1\uffff\1\164\2\uffff\1\163\1\162\1\165\1\156\1\157\1\76\1\151\1\uffff\1\145\1\157\1\141\1\147\1\145\1\166\1\156\1\157\1\172\2\uffff\2\uffff\1\57\2\uffff\1\145\1\161\1\162\3\uffff\2\164\1\163\1\156\1\151\1\156\1\164\1\163\1\154\1\170\1\164\1\uffff\1\141\1\157\1\162\1\156\1\147\1\164\1\145\1\172\1\163\1\144\5\uffff\1\156\1\172\1\151\1\164\1\157\1\172\1\145\1\160\1\146\1\164\1\143\1\151\2\145\4\uffff\1\150\1\143\1\160\1\172\1\157\2\172\1\162\1\uffff\2\145\1\141\1\uffff\1\143\1\145\1\162\1\166\1\uffff\1\162\1\157\2\151\2\164\2\172\1\122\1\164\1\172\1\uffff\1\162\2\uffff\1\172\1\164\1\172\1\162\1\164\2\172\1\151\1\164\1\156\1\147\1\143\1\151\1\171\2\uffff\1\170\1\145\1\151\1\uffff\1\145\1\uffff\1\172\1\uffff\1\151\1\172\2\uffff\1\164\1\172\1\145\1\165\1\141\1\157\1\172\1\145\1\164\1\166\1\172\1\uffff\1\157\1\uffff\1\171\1\uffff\1\156\1\162\1\154\1\156\1\uffff\1\143\1\165\1\141\1\uffff\2\172\1\164\1\141\2\172\1\165\1\162\1\164\2\uffff\1\172\1\164\2\uffff\1\164\1\156\1\145\1\uffff\2\151\2\172\2\157\2\uffff\2\156\1\137\1\172\1\151\1\uffff\1\164\1\145\1\155\1\172\1\uffff"; + "\1\uffff\1\164\2\uffff\1\163\1\162\1\165\1\156\1\157\1\76\1\151\1\uffff\1\166\1\145\1\157\1\141\1\147\1\145\1\156\1\157\1\172\2\uffff\2\uffff\1\57\2\uffff\1\145\1\161\1\162\3\uffff\2\164\1\163\1\156\1\151\1\156\1\164\1\163\1\154\1\146\1\170\1\164\2\uffff\1\164\1\145\1\172\1\141\1\157\1\162\1\156\1\147\1\163\1\144\5\uffff\1\156\1\172\1\151\1\164\1\157\1\172\1\145\1\160\1\146\1\164\1\143\1\151\2\145\1\172\5\uffff\1\150\1\172\1\162\1\uffff\1\143\1\160\1\172\1\157\1\172\2\145\1\141\1\uffff\1\143\1\145\1\162\1\166\1\uffff\1\162\1\157\2\151\2\164\2\172\1\uffff\1\122\1\uffff\1\172\1\164\1\172\1\uffff\1\162\1\uffff\1\164\1\172\1\162\1\164\2\172\1\151\1\164\1\156\1\147\1\143\1\151\1\171\2\uffff\1\170\1\145\1\uffff\1\151\1\uffff\1\145\1\172\1\uffff\1\151\1\172\2\uffff\1\164\1\172\1\145\1\165\1\141\1\157\1\172\1\145\1\164\1\166\1\172\1\uffff\1\157\1\uffff\1\171\1\uffff\1\156\1\162\1\154\1\156\1\uffff\1\143\1\165\1\141\1\uffff\2\172\1\164\1\141\2\172\1\165\1\162\1\164\2\uffff\1\172\1\164\2\uffff\1\164\1\156\1\145\1\uffff\2\151\2\172\2\157\2\uffff\2\156\1\137\1\172\1\151\1\uffff\1\164\1\145\1\155\1\172\1\uffff"; static final String DFA12_acceptS = - "\2\uffff\1\2\1\3\7\uffff\1\16\11\uffff\1\43\1\44\3\uffff\1\50\1\51\3\uffff\1\43\1\2\1\3\13\uffff\1\16\12\uffff\1\44\1\45\1\46\1\47\1\50\16\uffff\1\17\1\20\1\21\1\13\10\uffff\1\40\3\uffff\1\33\4\uffff\1\23\13\uffff\1\25\1\uffff\1\31\1\32\16\uffff\1\37\1\12\3\uffff\1\24\1\uffff\1\36\1\uffff\1\42\2\uffff\1\41\1\4\13\uffff\1\35\1\uffff\1\34\1\uffff\1\26\4\uffff\1\11\3\uffff\1\30\11\uffff\1\1\1\10\2\uffff\1\27\1\7\3\uffff\1\5\6\uffff\1\15\1\22\5\uffff\1\14\4\uffff\1\6"; + "\2\uffff\1\2\1\3\7\uffff\1\16\11\uffff\1\46\1\47\3\uffff\1\53\1\54\3\uffff\1\46\1\2\1\3\14\uffff\1\16\1\23\12\uffff\1\47\1\50\1\51\1\52\1\53\17\uffff\1\17\1\20\1\21\1\22\1\13\3\uffff\1\42\10\uffff\1\35\4\uffff\1\25\10\uffff\1\45\1\uffff\1\34\3\uffff\1\27\1\uffff\1\33\15\uffff\1\41\1\12\2\uffff\1\40\1\uffff\1\26\2\uffff\1\44\2\uffff\1\43\1\4\13\uffff\1\37\1\uffff\1\36\1\uffff\1\30\4\uffff\1\11\3\uffff\1\32\11\uffff\1\1\1\10\2\uffff\1\31\1\7\3\uffff\1\5\6\uffff\1\15\1\24\5\uffff\1\14\4\uffff\1\6"; static final String DFA12_specialS = - "\1\1\26\uffff\1\2\1\0\u00b2\uffff}>"; + "\1\1\26\uffff\1\0\1\2\u00b7\uffff}>"; static final String[] DFA12_transitionS = { - "\11\33\2\32\2\33\1\32\22\33\1\32\1\33\1\27\4\33\1\30\5\33\1\11\1\33\1\31\12\26\1\13\6\33\32\25\3\33\1\24\1\25\1\33\1\4\1\25\1\5\1\14\1\7\1\6\2\25\1\17\2\25\1\15\1\23\1\20\1\21\1\16\1\25\1\10\1\1\1\25\1\22\1\25\1\12\3\25\1\2\1\33\1\3\uff82\33", + "\11\33\2\32\2\33\1\32\22\33\1\32\1\33\1\27\4\33\1\30\5\33\1\11\1\33\1\31\12\26\1\13\6\33\32\25\3\33\1\24\1\25\1\33\1\4\1\25\1\5\1\15\1\7\1\6\2\25\1\20\2\25\1\16\1\23\1\21\1\14\1\17\1\25\1\10\1\1\1\25\1\22\1\25\1\12\3\25\1\2\1\33\1\3\uff82\33", "\1\34\1\uffff\1\35\16\uffff\1\36", "", "", @@ -1609,200 +1696,205 @@ public void mTokens() throws RecognitionException { "\1\45\2\uffff\1\46", "\1\47", "\1\51\1\uffff\1\50", - "\1\52", - "\1\53", + "\1\53\11\uffff\1\52", "\1\54", + "\1\55", "", - "\1\56", - "\1\57", - "\1\60", - "\1\61", - "\1\62", - "\1\65\1\uffff\1\63\5\uffff\1\64", + "\1\57\100\uffff\1\62\1\uffff\1\60\5\uffff\1\61", + "\1\63", + "\1\64", + "\1\65", "\1\66", "\1\67", + "\1\70", + "\1\71", "\32\37\4\uffff\1\37\1\uffff\32\37", "", "", - "\0\71", - "\0\71", - "\1\72\4\uffff\1\73", + "\0\73", + "\0\73", + "\1\74\4\uffff\1\75", "", "", - "\1\75", - "\1\76", - "\1\100\20\uffff\1\77", + "\1\77", + "\1\100", + "\1\102\20\uffff\1\101", "", "", "", - "\1\101", - "\1\102", "\1\103", - "\1\104\1\105", - "\1\106", - "\1\107", + "\1\104", + "\1\105", + "\1\106\1\107", "\1\110", "\1\111", "\1\112", - "\1\113\22\uffff\1\115\71\uffff\1\114", - "\1\117", - "", - "\1\120", - "\1\121", - "\1\122", + "\1\113", + "\1\114", + "\1\115", + "\1\116\22\uffff\1\120\60\uffff\1\121\10\uffff\1\117", "\1\123", + "", + "", "\1\124", "\1\125", - "\1\126", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\1\127", "\1\130", "\1\131", + "\1\132", + "\1\133", + "\1\134", + "\1\135", "", "", "", "", "", - "\1\132", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\134", - "\1\135", - "\1\137\5\uffff\1\136", + "\1\136", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\1\140", "\1\141", - "\1\142", - "\1\143", - "\1\144", + "\1\143\5\uffff\1\142", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\1\145", "\1\146", "\1\147", "\1\150", - "", - "", - "", - "", "\1\151", "\1\152", "\1\153", + "\1\154", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\155", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "", + "", + "", + "", + "", + "\1\156", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\1\160", "", "\1\161", "\1\162", - "\1\163", - "", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\1\164", - "\1\165", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\1\166", "\1\167", - "", "\1\170", + "", "\1\171", "\1\172", "\1\173", "\1\174", + "", "\1\175", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u0080\14\uffff\1\u0081", + "\1\176", + "\1\177", + "\1\u0080", + "\1\u0081", "\1\u0082", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "", - "\1\u0084", - "", + "\1\u0085\14\uffff\1\u0086", "", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u0086", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\1\u0088", - "\1\u0089", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "", + "\1\u008a", + "", + "\1\u008b", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u008c", "\1\u008d", "\1\u008e", - "\1\u008f", - "\1\u0090", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\1\u0091", "\1\u0092", - "", - "", "\1\u0093", "\1\u0094", "\1\u0095", - "", "\1\u0096", + "\1\u0097", "", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "", "\1\u0098", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "", + "\1\u0099", "", "\1\u009a", + "", + "\1\u009b", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u009c", + "", "\1\u009d", - "\1\u009e", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "", + "", "\1\u009f", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\1\u00a1", "\1\u00a2", "\1\u00a3", + "\1\u00a4", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "", - "\1\u00a5", - "", "\1\u00a6", - "", "\1\u00a7", "\1\u00a8", - "\1\u00a9", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "", "\1\u00aa", "", "\1\u00ab", + "", "\1\u00ac", "\1\u00ad", + "\1\u00ae", + "\1\u00af", "", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\1\u00b0", "\1\u00b1", + "\1\u00b2", + "", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u00b4", "\1\u00b5", "\1\u00b6", - "", - "", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u00b8", - "", - "", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\1\u00b9", "\1\u00ba", "\1\u00bb", "", - "\1\u00bc", - "\1\u00bd", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u00c0", - "\1\u00c1", + "\1\u00bd", "", "", + "\1\u00be", + "\1\u00bf", + "\1\u00c0", + "", + "\1\u00c1", "\1\u00c2", - "\1\u00c3", - "\1\u00c4", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\1\u00c5", "\1\u00c6", "", + "", "\1\u00c7", "\1\u00c8", "\1\u00c9", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\1\u00cb", + "", + "\1\u00cc", + "\1\u00cd", + "\1\u00ce", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "" }; @@ -1836,17 +1928,17 @@ public DFA12(BaseRecognizer recognizer) { this.transition = DFA12_transition; } public String getDescription() { - return "1:1: Tokens : ( T__11 | 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 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; + return "1:1: Tokens : ( T__11 | 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 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; } public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { IntStream input = _input; int _s = s; switch ( s ) { case 0 : - int LA12_24 = input.LA(1); + int LA12_23 = input.LA(1); s = -1; - if ( ((LA12_24>='\u0000' && LA12_24<='\uFFFF')) ) {s = 57;} + if ( ((LA12_23>='\u0000' && LA12_23<='\uFFFF')) ) {s = 59;} else s = 27; @@ -1878,17 +1970,17 @@ public int specialStateTransition(int s, IntStream _input) throws NoViableAltExc else if ( (LA12_0==':') ) {s = 11;} - else if ( (LA12_0=='d') ) {s = 12;} + else if ( (LA12_0=='o') ) {s = 12;} - else if ( (LA12_0=='l') ) {s = 13;} + else if ( (LA12_0=='d') ) {s = 13;} - else if ( (LA12_0=='p') ) {s = 14;} + else if ( (LA12_0=='l') ) {s = 14;} - else if ( (LA12_0=='i') ) {s = 15;} + else if ( (LA12_0=='p') ) {s = 15;} - else if ( (LA12_0=='n') ) {s = 16;} + else if ( (LA12_0=='i') ) {s = 16;} - else if ( (LA12_0=='o') ) {s = 17;} + else if ( (LA12_0=='n') ) {s = 17;} else if ( (LA12_0=='u') ) {s = 18;} @@ -1913,10 +2005,10 @@ public int specialStateTransition(int s, IntStream _input) throws NoViableAltExc if ( s>=0 ) return s; break; case 2 : - int LA12_23 = input.LA(1); + int LA12_24 = input.LA(1); s = -1; - if ( ((LA12_23>='\u0000' && LA12_23<='\uFFFF')) ) {s = 57;} + if ( ((LA12_24>='\u0000' && LA12_24<='\uFFFF')) ) {s = 59;} else s = 27; diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/parser/antlr/internal/InternalTextualScenarioParser.java b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/parser/antlr/internal/InternalTextualScenarioParser.java index 7a638d84..7a1ab3bc 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/parser/antlr/internal/InternalTextualScenarioParser.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/parser/antlr/internal/InternalTextualScenarioParser.java @@ -33,7 +33,7 @@ @SuppressWarnings("all") public class InternalTextualScenarioParser extends AbstractInternalAntlrParser { public static final String[] tokenNames = new String[] { - "", "", "", "", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'scenario'", "'{'", "'}'", "'actor'", "'component'", "'configuration_item'", "'function'", "'activity'", "'entity'", "'role'", "'->'", "'withExecution'", "'withReturn'", "':'", "'->+'", "'->x'", "'->>'", "'deactivate'", "'alt'", "'loop'", "'par'", "'assert'", "'critical'", "'ignore'", "'neg'", "'opt'", "'seq'", "'strict'", "'unset'", "'over'", "'else'", "'on'", "'state'", "'mode'" + "", "", "", "", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'scenario'", "'{'", "'}'", "'actor'", "'component'", "'configuration_item'", "'function'", "'activity'", "'entity'", "'role'", "'->'", "'withExecution'", "'withReturn'", "':'", "'->+'", "'->x'", "'->>'", "'->o'", "'o->'", "'deactivate'", "'alt'", "'loop'", "'par'", "'assert'", "'critical'", "'ignore'", "'neg'", "'opt'", "'seq'", "'strict'", "'unset'", "'over'", "'else'", "'on'", "'state'", "'mode'", "'ref'" }; public static final int T__19=19; public static final int T__15=15; @@ -73,6 +73,9 @@ public class InternalTextualScenarioParser extends AbstractInternalAntlrParser { public static final int RULE_WS=9; public static final int RULE_ANY_OTHER=10; 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; @@ -257,7 +260,7 @@ public final EObject ruleModel() throws RecognitionException { int alt2=2; int LA2_0 = input.LA(1); - if ( (LA2_0==RULE_STRING||(LA2_0>=27 && LA2_0<=39)||LA2_0==42) ) { + if ( (LA2_0==RULE_STRING||LA2_0==27||(LA2_0>=29 && LA2_0<=41)||LA2_0==44||LA2_0==47) ) { alt2=1; } @@ -844,7 +847,7 @@ public final EObject entryRuleElement() throws RecognitionException { // $ANTLR start "ruleElement" - // InternalTextualScenario.g:295:1: ruleElement returns [EObject current=null] : (this_Message_0= ruleMessage | this_CombinedFragment_1= ruleCombinedFragment | this_StateFragment_2= ruleStateFragment ) ; + // InternalTextualScenario.g:295:1: ruleElement returns [EObject current=null] : (this_Message_0= ruleMessage | this_CombinedFragment_1= ruleCombinedFragment | this_StateFragment_2= ruleStateFragment | this_Reference_3= ruleReference ) ; public final EObject ruleElement() throws RecognitionException { EObject current = null; @@ -854,26 +857,27 @@ public final EObject ruleElement() throws RecognitionException { EObject this_StateFragment_2 = null; + EObject this_Reference_3 = null; + enterRule(); try { - // InternalTextualScenario.g:301:2: ( (this_Message_0= ruleMessage | this_CombinedFragment_1= ruleCombinedFragment | this_StateFragment_2= ruleStateFragment ) ) - // InternalTextualScenario.g:302:2: (this_Message_0= ruleMessage | this_CombinedFragment_1= ruleCombinedFragment | this_StateFragment_2= ruleStateFragment ) + // InternalTextualScenario.g:301:2: ( (this_Message_0= ruleMessage | this_CombinedFragment_1= ruleCombinedFragment | this_StateFragment_2= ruleStateFragment | this_Reference_3= ruleReference ) ) + // InternalTextualScenario.g:302:2: (this_Message_0= ruleMessage | this_CombinedFragment_1= ruleCombinedFragment | this_StateFragment_2= ruleStateFragment | this_Reference_3= ruleReference ) { - // InternalTextualScenario.g:302:2: (this_Message_0= ruleMessage | this_CombinedFragment_1= ruleCombinedFragment | this_StateFragment_2= ruleStateFragment ) - int alt6=3; + // InternalTextualScenario.g:302:2: (this_Message_0= ruleMessage | this_CombinedFragment_1= ruleCombinedFragment | this_StateFragment_2= ruleStateFragment | this_Reference_3= ruleReference ) + int alt6=4; switch ( input.LA(1) ) { case RULE_STRING: case 27: - case 28: + case 29: + case 30: { alt6=1; } break; - case 29: - case 30: case 31: case 32: case 33: @@ -883,15 +887,22 @@ public final EObject ruleElement() throws RecognitionException { case 37: case 38: case 39: + case 40: + case 41: { alt6=2; } break; - case 42: + case 44: { alt6=3; } break; + case 47: + { + alt6=4; + } + break; default: NoViableAltException nvae = new NoViableAltException("", 6, 0, input); @@ -952,6 +963,24 @@ public final EObject ruleElement() throws RecognitionException { afterParserOrEnumRuleCall(); + } + break; + case 4 : + // InternalTextualScenario.g:330:3: this_Reference_3= ruleReference + { + + newCompositeNode(grammarAccess.getElementAccess().getReferenceParserRuleCall_3()); + + pushFollow(FOLLOW_2); + this_Reference_3=ruleReference(); + + state._fsp--; + + + current = this_Reference_3; + afterParserOrEnumRuleCall(); + + } break; @@ -977,7 +1006,7 @@ public final EObject ruleElement() throws RecognitionException { // $ANTLR start "entryRuleActor" - // InternalTextualScenario.g:333:1: entryRuleActor returns [EObject current=null] : iv_ruleActor= ruleActor EOF ; + // InternalTextualScenario.g:342:1: entryRuleActor returns [EObject current=null] : iv_ruleActor= ruleActor EOF ; public final EObject entryRuleActor() throws RecognitionException { EObject current = null; @@ -985,8 +1014,8 @@ public final EObject entryRuleActor() throws RecognitionException { try { - // InternalTextualScenario.g:333:46: (iv_ruleActor= ruleActor EOF ) - // InternalTextualScenario.g:334:2: iv_ruleActor= ruleActor EOF + // InternalTextualScenario.g:342:46: (iv_ruleActor= ruleActor EOF ) + // InternalTextualScenario.g:343:2: iv_ruleActor= ruleActor EOF { newCompositeNode(grammarAccess.getActorRule()); pushFollow(FOLLOW_1); @@ -1013,7 +1042,7 @@ public final EObject entryRuleActor() throws RecognitionException { // $ANTLR start "ruleActor" - // InternalTextualScenario.g:340:1: ruleActor returns [EObject current=null] : ( ( (lv_keyword_0_0= 'actor' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ; + // InternalTextualScenario.g:349:1: ruleActor returns [EObject current=null] : ( ( (lv_keyword_0_0= 'actor' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ; public final EObject ruleActor() throws RecognitionException { EObject current = null; @@ -1024,17 +1053,17 @@ public final EObject ruleActor() throws RecognitionException { enterRule(); try { - // InternalTextualScenario.g:346:2: ( ( ( (lv_keyword_0_0= 'actor' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ) - // InternalTextualScenario.g:347:2: ( ( (lv_keyword_0_0= 'actor' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:355:2: ( ( ( (lv_keyword_0_0= 'actor' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ) + // InternalTextualScenario.g:356:2: ( ( (lv_keyword_0_0= 'actor' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) { - // InternalTextualScenario.g:347:2: ( ( (lv_keyword_0_0= 'actor' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) - // InternalTextualScenario.g:348:3: ( (lv_keyword_0_0= 'actor' ) ) ( (lv_name_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:356:2: ( ( (lv_keyword_0_0= 'actor' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:357:3: ( (lv_keyword_0_0= 'actor' ) ) ( (lv_name_1_0= RULE_STRING ) ) { - // InternalTextualScenario.g:348:3: ( (lv_keyword_0_0= 'actor' ) ) - // InternalTextualScenario.g:349:4: (lv_keyword_0_0= 'actor' ) + // InternalTextualScenario.g:357:3: ( (lv_keyword_0_0= 'actor' ) ) + // InternalTextualScenario.g:358:4: (lv_keyword_0_0= 'actor' ) { - // InternalTextualScenario.g:349:4: (lv_keyword_0_0= 'actor' ) - // InternalTextualScenario.g:350:5: lv_keyword_0_0= 'actor' + // InternalTextualScenario.g:358:4: (lv_keyword_0_0= 'actor' ) + // InternalTextualScenario.g:359:5: lv_keyword_0_0= 'actor' { lv_keyword_0_0=(Token)match(input,14,FOLLOW_6); @@ -1052,11 +1081,11 @@ public final EObject ruleActor() throws RecognitionException { } - // InternalTextualScenario.g:362:3: ( (lv_name_1_0= RULE_STRING ) ) - // InternalTextualScenario.g:363:4: (lv_name_1_0= RULE_STRING ) + // InternalTextualScenario.g:371:3: ( (lv_name_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:372:4: (lv_name_1_0= RULE_STRING ) { - // InternalTextualScenario.g:363:4: (lv_name_1_0= RULE_STRING ) - // InternalTextualScenario.g:364:5: lv_name_1_0= RULE_STRING + // InternalTextualScenario.g:372:4: (lv_name_1_0= RULE_STRING ) + // InternalTextualScenario.g:373:5: lv_name_1_0= RULE_STRING { lv_name_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); @@ -1101,7 +1130,7 @@ public final EObject ruleActor() throws RecognitionException { // $ANTLR start "entryRuleComponent" - // InternalTextualScenario.g:384:1: entryRuleComponent returns [EObject current=null] : iv_ruleComponent= ruleComponent EOF ; + // InternalTextualScenario.g:393:1: entryRuleComponent returns [EObject current=null] : iv_ruleComponent= ruleComponent EOF ; public final EObject entryRuleComponent() throws RecognitionException { EObject current = null; @@ -1109,8 +1138,8 @@ public final EObject entryRuleComponent() throws RecognitionException { try { - // InternalTextualScenario.g:384:50: (iv_ruleComponent= ruleComponent EOF ) - // InternalTextualScenario.g:385:2: iv_ruleComponent= ruleComponent EOF + // InternalTextualScenario.g:393:50: (iv_ruleComponent= ruleComponent EOF ) + // InternalTextualScenario.g:394:2: iv_ruleComponent= ruleComponent EOF { newCompositeNode(grammarAccess.getComponentRule()); pushFollow(FOLLOW_1); @@ -1137,7 +1166,7 @@ public final EObject entryRuleComponent() throws RecognitionException { // $ANTLR start "ruleComponent" - // InternalTextualScenario.g:391:1: ruleComponent returns [EObject current=null] : ( ( (lv_keyword_0_0= 'component' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ; + // InternalTextualScenario.g:400:1: ruleComponent returns [EObject current=null] : ( ( (lv_keyword_0_0= 'component' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ; public final EObject ruleComponent() throws RecognitionException { EObject current = null; @@ -1148,17 +1177,17 @@ public final EObject ruleComponent() throws RecognitionException { enterRule(); try { - // InternalTextualScenario.g:397:2: ( ( ( (lv_keyword_0_0= 'component' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ) - // InternalTextualScenario.g:398:2: ( ( (lv_keyword_0_0= 'component' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:406:2: ( ( ( (lv_keyword_0_0= 'component' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ) + // InternalTextualScenario.g:407:2: ( ( (lv_keyword_0_0= 'component' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) { - // InternalTextualScenario.g:398:2: ( ( (lv_keyword_0_0= 'component' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) - // InternalTextualScenario.g:399:3: ( (lv_keyword_0_0= 'component' ) ) ( (lv_name_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:407:2: ( ( (lv_keyword_0_0= 'component' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:408:3: ( (lv_keyword_0_0= 'component' ) ) ( (lv_name_1_0= RULE_STRING ) ) { - // InternalTextualScenario.g:399:3: ( (lv_keyword_0_0= 'component' ) ) - // InternalTextualScenario.g:400:4: (lv_keyword_0_0= 'component' ) + // InternalTextualScenario.g:408:3: ( (lv_keyword_0_0= 'component' ) ) + // InternalTextualScenario.g:409:4: (lv_keyword_0_0= 'component' ) { - // InternalTextualScenario.g:400:4: (lv_keyword_0_0= 'component' ) - // InternalTextualScenario.g:401:5: lv_keyword_0_0= 'component' + // InternalTextualScenario.g:409:4: (lv_keyword_0_0= 'component' ) + // InternalTextualScenario.g:410:5: lv_keyword_0_0= 'component' { lv_keyword_0_0=(Token)match(input,15,FOLLOW_6); @@ -1176,11 +1205,11 @@ public final EObject ruleComponent() throws RecognitionException { } - // InternalTextualScenario.g:413:3: ( (lv_name_1_0= RULE_STRING ) ) - // InternalTextualScenario.g:414:4: (lv_name_1_0= RULE_STRING ) + // InternalTextualScenario.g:422:3: ( (lv_name_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:423:4: (lv_name_1_0= RULE_STRING ) { - // InternalTextualScenario.g:414:4: (lv_name_1_0= RULE_STRING ) - // InternalTextualScenario.g:415:5: lv_name_1_0= RULE_STRING + // InternalTextualScenario.g:423:4: (lv_name_1_0= RULE_STRING ) + // InternalTextualScenario.g:424:5: lv_name_1_0= RULE_STRING { lv_name_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); @@ -1225,7 +1254,7 @@ public final EObject ruleComponent() throws RecognitionException { // $ANTLR start "entryRuleConfigurationItem" - // InternalTextualScenario.g:435:1: entryRuleConfigurationItem returns [EObject current=null] : iv_ruleConfigurationItem= ruleConfigurationItem EOF ; + // InternalTextualScenario.g:444:1: entryRuleConfigurationItem returns [EObject current=null] : iv_ruleConfigurationItem= ruleConfigurationItem EOF ; public final EObject entryRuleConfigurationItem() throws RecognitionException { EObject current = null; @@ -1233,8 +1262,8 @@ public final EObject entryRuleConfigurationItem() throws RecognitionException { try { - // InternalTextualScenario.g:435:58: (iv_ruleConfigurationItem= ruleConfigurationItem EOF ) - // InternalTextualScenario.g:436:2: iv_ruleConfigurationItem= ruleConfigurationItem EOF + // InternalTextualScenario.g:444:58: (iv_ruleConfigurationItem= ruleConfigurationItem EOF ) + // InternalTextualScenario.g:445:2: iv_ruleConfigurationItem= ruleConfigurationItem EOF { newCompositeNode(grammarAccess.getConfigurationItemRule()); pushFollow(FOLLOW_1); @@ -1261,7 +1290,7 @@ public final EObject entryRuleConfigurationItem() throws RecognitionException { // $ANTLR start "ruleConfigurationItem" - // InternalTextualScenario.g:442:1: ruleConfigurationItem returns [EObject current=null] : ( ( (lv_keyword_0_0= 'configuration_item' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ; + // InternalTextualScenario.g:451:1: ruleConfigurationItem returns [EObject current=null] : ( ( (lv_keyword_0_0= 'configuration_item' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ; public final EObject ruleConfigurationItem() throws RecognitionException { EObject current = null; @@ -1272,17 +1301,17 @@ public final EObject ruleConfigurationItem() throws RecognitionException { enterRule(); try { - // InternalTextualScenario.g:448:2: ( ( ( (lv_keyword_0_0= 'configuration_item' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ) - // InternalTextualScenario.g:449:2: ( ( (lv_keyword_0_0= 'configuration_item' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:457:2: ( ( ( (lv_keyword_0_0= 'configuration_item' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ) + // InternalTextualScenario.g:458:2: ( ( (lv_keyword_0_0= 'configuration_item' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) { - // InternalTextualScenario.g:449:2: ( ( (lv_keyword_0_0= 'configuration_item' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) - // InternalTextualScenario.g:450:3: ( (lv_keyword_0_0= 'configuration_item' ) ) ( (lv_name_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:458:2: ( ( (lv_keyword_0_0= 'configuration_item' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:459:3: ( (lv_keyword_0_0= 'configuration_item' ) ) ( (lv_name_1_0= RULE_STRING ) ) { - // InternalTextualScenario.g:450:3: ( (lv_keyword_0_0= 'configuration_item' ) ) - // InternalTextualScenario.g:451:4: (lv_keyword_0_0= 'configuration_item' ) + // InternalTextualScenario.g:459:3: ( (lv_keyword_0_0= 'configuration_item' ) ) + // InternalTextualScenario.g:460:4: (lv_keyword_0_0= 'configuration_item' ) { - // InternalTextualScenario.g:451:4: (lv_keyword_0_0= 'configuration_item' ) - // InternalTextualScenario.g:452:5: lv_keyword_0_0= 'configuration_item' + // InternalTextualScenario.g:460:4: (lv_keyword_0_0= 'configuration_item' ) + // InternalTextualScenario.g:461:5: lv_keyword_0_0= 'configuration_item' { lv_keyword_0_0=(Token)match(input,16,FOLLOW_6); @@ -1300,11 +1329,11 @@ public final EObject ruleConfigurationItem() throws RecognitionException { } - // InternalTextualScenario.g:464:3: ( (lv_name_1_0= RULE_STRING ) ) - // InternalTextualScenario.g:465:4: (lv_name_1_0= RULE_STRING ) + // InternalTextualScenario.g:473:3: ( (lv_name_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:474:4: (lv_name_1_0= RULE_STRING ) { - // InternalTextualScenario.g:465:4: (lv_name_1_0= RULE_STRING ) - // InternalTextualScenario.g:466:5: lv_name_1_0= RULE_STRING + // InternalTextualScenario.g:474:4: (lv_name_1_0= RULE_STRING ) + // InternalTextualScenario.g:475:5: lv_name_1_0= RULE_STRING { lv_name_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); @@ -1349,7 +1378,7 @@ public final EObject ruleConfigurationItem() throws RecognitionException { // $ANTLR start "entryRuleFunction" - // InternalTextualScenario.g:486:1: entryRuleFunction returns [EObject current=null] : iv_ruleFunction= ruleFunction EOF ; + // InternalTextualScenario.g:495:1: entryRuleFunction returns [EObject current=null] : iv_ruleFunction= ruleFunction EOF ; public final EObject entryRuleFunction() throws RecognitionException { EObject current = null; @@ -1357,8 +1386,8 @@ public final EObject entryRuleFunction() throws RecognitionException { try { - // InternalTextualScenario.g:486:49: (iv_ruleFunction= ruleFunction EOF ) - // InternalTextualScenario.g:487:2: iv_ruleFunction= ruleFunction EOF + // InternalTextualScenario.g:495:49: (iv_ruleFunction= ruleFunction EOF ) + // InternalTextualScenario.g:496:2: iv_ruleFunction= ruleFunction EOF { newCompositeNode(grammarAccess.getFunctionRule()); pushFollow(FOLLOW_1); @@ -1385,7 +1414,7 @@ public final EObject entryRuleFunction() throws RecognitionException { // $ANTLR start "ruleFunction" - // InternalTextualScenario.g:493:1: ruleFunction returns [EObject current=null] : ( ( (lv_keyword_0_0= 'function' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ; + // InternalTextualScenario.g:502:1: ruleFunction returns [EObject current=null] : ( ( (lv_keyword_0_0= 'function' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ; public final EObject ruleFunction() throws RecognitionException { EObject current = null; @@ -1396,17 +1425,17 @@ public final EObject ruleFunction() throws RecognitionException { enterRule(); try { - // InternalTextualScenario.g:499:2: ( ( ( (lv_keyword_0_0= 'function' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ) - // InternalTextualScenario.g:500:2: ( ( (lv_keyword_0_0= 'function' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:508:2: ( ( ( (lv_keyword_0_0= 'function' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ) + // InternalTextualScenario.g:509:2: ( ( (lv_keyword_0_0= 'function' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) { - // InternalTextualScenario.g:500:2: ( ( (lv_keyword_0_0= 'function' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) - // InternalTextualScenario.g:501:3: ( (lv_keyword_0_0= 'function' ) ) ( (lv_name_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:509:2: ( ( (lv_keyword_0_0= 'function' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:510:3: ( (lv_keyword_0_0= 'function' ) ) ( (lv_name_1_0= RULE_STRING ) ) { - // InternalTextualScenario.g:501:3: ( (lv_keyword_0_0= 'function' ) ) - // InternalTextualScenario.g:502:4: (lv_keyword_0_0= 'function' ) + // InternalTextualScenario.g:510:3: ( (lv_keyword_0_0= 'function' ) ) + // InternalTextualScenario.g:511:4: (lv_keyword_0_0= 'function' ) { - // InternalTextualScenario.g:502:4: (lv_keyword_0_0= 'function' ) - // InternalTextualScenario.g:503:5: lv_keyword_0_0= 'function' + // InternalTextualScenario.g:511:4: (lv_keyword_0_0= 'function' ) + // InternalTextualScenario.g:512:5: lv_keyword_0_0= 'function' { lv_keyword_0_0=(Token)match(input,17,FOLLOW_6); @@ -1424,11 +1453,11 @@ public final EObject ruleFunction() throws RecognitionException { } - // InternalTextualScenario.g:515:3: ( (lv_name_1_0= RULE_STRING ) ) - // InternalTextualScenario.g:516:4: (lv_name_1_0= RULE_STRING ) + // InternalTextualScenario.g:524:3: ( (lv_name_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:525:4: (lv_name_1_0= RULE_STRING ) { - // InternalTextualScenario.g:516:4: (lv_name_1_0= RULE_STRING ) - // InternalTextualScenario.g:517:5: lv_name_1_0= RULE_STRING + // InternalTextualScenario.g:525:4: (lv_name_1_0= RULE_STRING ) + // InternalTextualScenario.g:526:5: lv_name_1_0= RULE_STRING { lv_name_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); @@ -1473,7 +1502,7 @@ public final EObject ruleFunction() throws RecognitionException { // $ANTLR start "entryRuleActivity" - // InternalTextualScenario.g:537:1: entryRuleActivity returns [EObject current=null] : iv_ruleActivity= ruleActivity EOF ; + // InternalTextualScenario.g:546:1: entryRuleActivity returns [EObject current=null] : iv_ruleActivity= ruleActivity EOF ; public final EObject entryRuleActivity() throws RecognitionException { EObject current = null; @@ -1481,8 +1510,8 @@ public final EObject entryRuleActivity() throws RecognitionException { try { - // InternalTextualScenario.g:537:49: (iv_ruleActivity= ruleActivity EOF ) - // InternalTextualScenario.g:538:2: iv_ruleActivity= ruleActivity EOF + // InternalTextualScenario.g:546:49: (iv_ruleActivity= ruleActivity EOF ) + // InternalTextualScenario.g:547:2: iv_ruleActivity= ruleActivity EOF { newCompositeNode(grammarAccess.getActivityRule()); pushFollow(FOLLOW_1); @@ -1509,7 +1538,7 @@ public final EObject entryRuleActivity() throws RecognitionException { // $ANTLR start "ruleActivity" - // InternalTextualScenario.g:544:1: ruleActivity returns [EObject current=null] : ( ( (lv_keyword_0_0= 'activity' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ; + // InternalTextualScenario.g:553:1: ruleActivity returns [EObject current=null] : ( ( (lv_keyword_0_0= 'activity' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ; public final EObject ruleActivity() throws RecognitionException { EObject current = null; @@ -1520,17 +1549,17 @@ public final EObject ruleActivity() throws RecognitionException { enterRule(); try { - // InternalTextualScenario.g:550:2: ( ( ( (lv_keyword_0_0= 'activity' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ) - // InternalTextualScenario.g:551:2: ( ( (lv_keyword_0_0= 'activity' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:559:2: ( ( ( (lv_keyword_0_0= 'activity' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ) + // InternalTextualScenario.g:560:2: ( ( (lv_keyword_0_0= 'activity' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) { - // InternalTextualScenario.g:551:2: ( ( (lv_keyword_0_0= 'activity' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) - // InternalTextualScenario.g:552:3: ( (lv_keyword_0_0= 'activity' ) ) ( (lv_name_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:560:2: ( ( (lv_keyword_0_0= 'activity' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:561:3: ( (lv_keyword_0_0= 'activity' ) ) ( (lv_name_1_0= RULE_STRING ) ) { - // InternalTextualScenario.g:552:3: ( (lv_keyword_0_0= 'activity' ) ) - // InternalTextualScenario.g:553:4: (lv_keyword_0_0= 'activity' ) + // InternalTextualScenario.g:561:3: ( (lv_keyword_0_0= 'activity' ) ) + // InternalTextualScenario.g:562:4: (lv_keyword_0_0= 'activity' ) { - // InternalTextualScenario.g:553:4: (lv_keyword_0_0= 'activity' ) - // InternalTextualScenario.g:554:5: lv_keyword_0_0= 'activity' + // InternalTextualScenario.g:562:4: (lv_keyword_0_0= 'activity' ) + // InternalTextualScenario.g:563:5: lv_keyword_0_0= 'activity' { lv_keyword_0_0=(Token)match(input,18,FOLLOW_6); @@ -1548,11 +1577,11 @@ public final EObject ruleActivity() throws RecognitionException { } - // InternalTextualScenario.g:566:3: ( (lv_name_1_0= RULE_STRING ) ) - // InternalTextualScenario.g:567:4: (lv_name_1_0= RULE_STRING ) + // InternalTextualScenario.g:575:3: ( (lv_name_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:576:4: (lv_name_1_0= RULE_STRING ) { - // InternalTextualScenario.g:567:4: (lv_name_1_0= RULE_STRING ) - // InternalTextualScenario.g:568:5: lv_name_1_0= RULE_STRING + // InternalTextualScenario.g:576:4: (lv_name_1_0= RULE_STRING ) + // InternalTextualScenario.g:577:5: lv_name_1_0= RULE_STRING { lv_name_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); @@ -1597,7 +1626,7 @@ public final EObject ruleActivity() throws RecognitionException { // $ANTLR start "entryRuleEntity" - // InternalTextualScenario.g:588:1: entryRuleEntity returns [EObject current=null] : iv_ruleEntity= ruleEntity EOF ; + // InternalTextualScenario.g:597:1: entryRuleEntity returns [EObject current=null] : iv_ruleEntity= ruleEntity EOF ; public final EObject entryRuleEntity() throws RecognitionException { EObject current = null; @@ -1605,8 +1634,8 @@ public final EObject entryRuleEntity() throws RecognitionException { try { - // InternalTextualScenario.g:588:47: (iv_ruleEntity= ruleEntity EOF ) - // InternalTextualScenario.g:589:2: iv_ruleEntity= ruleEntity EOF + // InternalTextualScenario.g:597:47: (iv_ruleEntity= ruleEntity EOF ) + // InternalTextualScenario.g:598:2: iv_ruleEntity= ruleEntity EOF { newCompositeNode(grammarAccess.getEntityRule()); pushFollow(FOLLOW_1); @@ -1633,7 +1662,7 @@ public final EObject entryRuleEntity() throws RecognitionException { // $ANTLR start "ruleEntity" - // InternalTextualScenario.g:595:1: ruleEntity returns [EObject current=null] : ( ( (lv_keyword_0_0= 'entity' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ; + // InternalTextualScenario.g:604:1: ruleEntity returns [EObject current=null] : ( ( (lv_keyword_0_0= 'entity' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ; public final EObject ruleEntity() throws RecognitionException { EObject current = null; @@ -1644,17 +1673,17 @@ public final EObject ruleEntity() throws RecognitionException { enterRule(); try { - // InternalTextualScenario.g:601:2: ( ( ( (lv_keyword_0_0= 'entity' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ) - // InternalTextualScenario.g:602:2: ( ( (lv_keyword_0_0= 'entity' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:610:2: ( ( ( (lv_keyword_0_0= 'entity' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ) + // InternalTextualScenario.g:611:2: ( ( (lv_keyword_0_0= 'entity' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) { - // InternalTextualScenario.g:602:2: ( ( (lv_keyword_0_0= 'entity' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) - // InternalTextualScenario.g:603:3: ( (lv_keyword_0_0= 'entity' ) ) ( (lv_name_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:611:2: ( ( (lv_keyword_0_0= 'entity' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:612:3: ( (lv_keyword_0_0= 'entity' ) ) ( (lv_name_1_0= RULE_STRING ) ) { - // InternalTextualScenario.g:603:3: ( (lv_keyword_0_0= 'entity' ) ) - // InternalTextualScenario.g:604:4: (lv_keyword_0_0= 'entity' ) + // InternalTextualScenario.g:612:3: ( (lv_keyword_0_0= 'entity' ) ) + // InternalTextualScenario.g:613:4: (lv_keyword_0_0= 'entity' ) { - // InternalTextualScenario.g:604:4: (lv_keyword_0_0= 'entity' ) - // InternalTextualScenario.g:605:5: lv_keyword_0_0= 'entity' + // InternalTextualScenario.g:613:4: (lv_keyword_0_0= 'entity' ) + // InternalTextualScenario.g:614:5: lv_keyword_0_0= 'entity' { lv_keyword_0_0=(Token)match(input,19,FOLLOW_6); @@ -1672,11 +1701,11 @@ public final EObject ruleEntity() throws RecognitionException { } - // InternalTextualScenario.g:617:3: ( (lv_name_1_0= RULE_STRING ) ) - // InternalTextualScenario.g:618:4: (lv_name_1_0= RULE_STRING ) + // InternalTextualScenario.g:626:3: ( (lv_name_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:627:4: (lv_name_1_0= RULE_STRING ) { - // InternalTextualScenario.g:618:4: (lv_name_1_0= RULE_STRING ) - // InternalTextualScenario.g:619:5: lv_name_1_0= RULE_STRING + // InternalTextualScenario.g:627:4: (lv_name_1_0= RULE_STRING ) + // InternalTextualScenario.g:628:5: lv_name_1_0= RULE_STRING { lv_name_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); @@ -1721,7 +1750,7 @@ public final EObject ruleEntity() throws RecognitionException { // $ANTLR start "entryRuleRole" - // InternalTextualScenario.g:639:1: entryRuleRole returns [EObject current=null] : iv_ruleRole= ruleRole EOF ; + // InternalTextualScenario.g:648:1: entryRuleRole returns [EObject current=null] : iv_ruleRole= ruleRole EOF ; public final EObject entryRuleRole() throws RecognitionException { EObject current = null; @@ -1729,8 +1758,8 @@ public final EObject entryRuleRole() throws RecognitionException { try { - // InternalTextualScenario.g:639:45: (iv_ruleRole= ruleRole EOF ) - // InternalTextualScenario.g:640:2: iv_ruleRole= ruleRole EOF + // InternalTextualScenario.g:648:45: (iv_ruleRole= ruleRole EOF ) + // InternalTextualScenario.g:649:2: iv_ruleRole= ruleRole EOF { newCompositeNode(grammarAccess.getRoleRule()); pushFollow(FOLLOW_1); @@ -1757,7 +1786,7 @@ public final EObject entryRuleRole() throws RecognitionException { // $ANTLR start "ruleRole" - // InternalTextualScenario.g:646:1: ruleRole returns [EObject current=null] : ( ( (lv_keyword_0_0= 'role' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ; + // InternalTextualScenario.g:655:1: ruleRole returns [EObject current=null] : ( ( (lv_keyword_0_0= 'role' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ; public final EObject ruleRole() throws RecognitionException { EObject current = null; @@ -1768,17 +1797,17 @@ public final EObject ruleRole() throws RecognitionException { enterRule(); try { - // InternalTextualScenario.g:652:2: ( ( ( (lv_keyword_0_0= 'role' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ) - // InternalTextualScenario.g:653:2: ( ( (lv_keyword_0_0= 'role' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:661:2: ( ( ( (lv_keyword_0_0= 'role' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ) + // InternalTextualScenario.g:662:2: ( ( (lv_keyword_0_0= 'role' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) { - // InternalTextualScenario.g:653:2: ( ( (lv_keyword_0_0= 'role' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) - // InternalTextualScenario.g:654:3: ( (lv_keyword_0_0= 'role' ) ) ( (lv_name_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:662:2: ( ( (lv_keyword_0_0= 'role' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:663:3: ( (lv_keyword_0_0= 'role' ) ) ( (lv_name_1_0= RULE_STRING ) ) { - // InternalTextualScenario.g:654:3: ( (lv_keyword_0_0= 'role' ) ) - // InternalTextualScenario.g:655:4: (lv_keyword_0_0= 'role' ) + // InternalTextualScenario.g:663:3: ( (lv_keyword_0_0= 'role' ) ) + // InternalTextualScenario.g:664:4: (lv_keyword_0_0= 'role' ) { - // InternalTextualScenario.g:655:4: (lv_keyword_0_0= 'role' ) - // InternalTextualScenario.g:656:5: lv_keyword_0_0= 'role' + // InternalTextualScenario.g:664:4: (lv_keyword_0_0= 'role' ) + // InternalTextualScenario.g:665:5: lv_keyword_0_0= 'role' { lv_keyword_0_0=(Token)match(input,20,FOLLOW_6); @@ -1796,11 +1825,11 @@ public final EObject ruleRole() throws RecognitionException { } - // InternalTextualScenario.g:668:3: ( (lv_name_1_0= RULE_STRING ) ) - // InternalTextualScenario.g:669:4: (lv_name_1_0= RULE_STRING ) + // InternalTextualScenario.g:677:3: ( (lv_name_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:678:4: (lv_name_1_0= RULE_STRING ) { - // InternalTextualScenario.g:669:4: (lv_name_1_0= RULE_STRING ) - // InternalTextualScenario.g:670:5: lv_name_1_0= RULE_STRING + // InternalTextualScenario.g:678:4: (lv_name_1_0= RULE_STRING ) + // InternalTextualScenario.g:679:5: lv_name_1_0= RULE_STRING { lv_name_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); @@ -1845,7 +1874,7 @@ public final EObject ruleRole() throws RecognitionException { // $ANTLR start "entryRuleMessage" - // InternalTextualScenario.g:690:1: entryRuleMessage returns [EObject current=null] : iv_ruleMessage= ruleMessage EOF ; + // InternalTextualScenario.g:699:1: entryRuleMessage returns [EObject current=null] : iv_ruleMessage= ruleMessage EOF ; public final EObject entryRuleMessage() throws RecognitionException { EObject current = null; @@ -1853,8 +1882,8 @@ public final EObject entryRuleMessage() throws RecognitionException { try { - // InternalTextualScenario.g:690:48: (iv_ruleMessage= ruleMessage EOF ) - // InternalTextualScenario.g:691:2: iv_ruleMessage= ruleMessage EOF + // InternalTextualScenario.g:699:48: (iv_ruleMessage= ruleMessage EOF ) + // InternalTextualScenario.g:700:2: iv_ruleMessage= ruleMessage EOF { newCompositeNode(grammarAccess.getMessageRule()); pushFollow(FOLLOW_1); @@ -1881,7 +1910,7 @@ public final EObject entryRuleMessage() throws RecognitionException { // $ANTLR start "ruleMessage" - // InternalTextualScenario.g:697:1: ruleMessage returns [EObject current=null] : (this_SequenceMessageType_0= ruleSequenceMessageType | this_ArmTimerMessage_1= ruleArmTimerMessage | this_ParticipantDeactivation_2= ruleParticipantDeactivation ) ; + // InternalTextualScenario.g:706:1: ruleMessage returns [EObject current=null] : (this_SequenceMessageType_0= ruleSequenceMessageType | this_ArmTimerMessage_1= ruleArmTimerMessage | this_ParticipantDeactivation_2= ruleParticipantDeactivation | this_LostFoundMessage_3= ruleLostFoundMessage ) ; public final EObject ruleMessage() throws RecognitionException { EObject current = null; @@ -1891,20 +1920,35 @@ public final EObject ruleMessage() throws RecognitionException { EObject this_ParticipantDeactivation_2 = null; + EObject this_LostFoundMessage_3 = null; + enterRule(); try { - // InternalTextualScenario.g:703:2: ( (this_SequenceMessageType_0= ruleSequenceMessageType | this_ArmTimerMessage_1= ruleArmTimerMessage | this_ParticipantDeactivation_2= ruleParticipantDeactivation ) ) - // InternalTextualScenario.g:704:2: (this_SequenceMessageType_0= ruleSequenceMessageType | this_ArmTimerMessage_1= ruleArmTimerMessage | this_ParticipantDeactivation_2= ruleParticipantDeactivation ) + // InternalTextualScenario.g:712:2: ( (this_SequenceMessageType_0= ruleSequenceMessageType | this_ArmTimerMessage_1= ruleArmTimerMessage | this_ParticipantDeactivation_2= ruleParticipantDeactivation | this_LostFoundMessage_3= ruleLostFoundMessage ) ) + // InternalTextualScenario.g:713:2: (this_SequenceMessageType_0= ruleSequenceMessageType | this_ArmTimerMessage_1= ruleArmTimerMessage | this_ParticipantDeactivation_2= ruleParticipantDeactivation | this_LostFoundMessage_3= ruleLostFoundMessage ) { - // InternalTextualScenario.g:704:2: (this_SequenceMessageType_0= ruleSequenceMessageType | this_ArmTimerMessage_1= ruleArmTimerMessage | this_ParticipantDeactivation_2= ruleParticipantDeactivation ) - int alt7=3; + // InternalTextualScenario.g:713:2: (this_SequenceMessageType_0= ruleSequenceMessageType | this_ArmTimerMessage_1= ruleArmTimerMessage | this_ParticipantDeactivation_2= ruleParticipantDeactivation | this_LostFoundMessage_3= ruleLostFoundMessage ) + int alt7=4; switch ( input.LA(1) ) { case RULE_STRING: { - alt7=1; + int LA7_1 = input.LA(2); + + if ( (LA7_1==21||(LA7_1>=25 && LA7_1<=26)) ) { + alt7=1; + } + else if ( (LA7_1==28) ) { + alt7=4; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 7, 1, input); + + throw nvae; + } } break; case 27: @@ -1912,11 +1956,16 @@ public final EObject ruleMessage() throws RecognitionException { alt7=2; } break; - case 28: + case 30: { alt7=3; } break; + case 29: + { + alt7=4; + } + break; default: NoViableAltException nvae = new NoViableAltException("", 7, 0, input); @@ -1926,7 +1975,7 @@ public final EObject ruleMessage() throws RecognitionException { switch (alt7) { case 1 : - // InternalTextualScenario.g:705:3: this_SequenceMessageType_0= ruleSequenceMessageType + // InternalTextualScenario.g:714:3: this_SequenceMessageType_0= ruleSequenceMessageType { newCompositeNode(grammarAccess.getMessageAccess().getSequenceMessageTypeParserRuleCall_0()); @@ -1944,7 +1993,7 @@ public final EObject ruleMessage() throws RecognitionException { } break; case 2 : - // InternalTextualScenario.g:714:3: this_ArmTimerMessage_1= ruleArmTimerMessage + // InternalTextualScenario.g:723:3: this_ArmTimerMessage_1= ruleArmTimerMessage { newCompositeNode(grammarAccess.getMessageAccess().getArmTimerMessageParserRuleCall_1()); @@ -1962,7 +2011,7 @@ public final EObject ruleMessage() throws RecognitionException { } break; case 3 : - // InternalTextualScenario.g:723:3: this_ParticipantDeactivation_2= ruleParticipantDeactivation + // InternalTextualScenario.g:732:3: this_ParticipantDeactivation_2= ruleParticipantDeactivation { newCompositeNode(grammarAccess.getMessageAccess().getParticipantDeactivationParserRuleCall_2()); @@ -1977,6 +2026,24 @@ public final EObject ruleMessage() throws RecognitionException { afterParserOrEnumRuleCall(); + } + break; + case 4 : + // InternalTextualScenario.g:741:3: this_LostFoundMessage_3= ruleLostFoundMessage + { + + newCompositeNode(grammarAccess.getMessageAccess().getLostFoundMessageParserRuleCall_3()); + + pushFollow(FOLLOW_2); + this_LostFoundMessage_3=ruleLostFoundMessage(); + + state._fsp--; + + + current = this_LostFoundMessage_3; + afterParserOrEnumRuleCall(); + + } break; @@ -2002,7 +2069,7 @@ public final EObject ruleMessage() throws RecognitionException { // $ANTLR start "entryRuleSequenceMessageType" - // InternalTextualScenario.g:735:1: entryRuleSequenceMessageType returns [EObject current=null] : iv_ruleSequenceMessageType= ruleSequenceMessageType EOF ; + // InternalTextualScenario.g:753:1: entryRuleSequenceMessageType returns [EObject current=null] : iv_ruleSequenceMessageType= ruleSequenceMessageType EOF ; public final EObject entryRuleSequenceMessageType() throws RecognitionException { EObject current = null; @@ -2010,8 +2077,8 @@ public final EObject entryRuleSequenceMessageType() throws RecognitionException try { - // InternalTextualScenario.g:735:60: (iv_ruleSequenceMessageType= ruleSequenceMessageType EOF ) - // InternalTextualScenario.g:736:2: iv_ruleSequenceMessageType= ruleSequenceMessageType EOF + // InternalTextualScenario.g:753:60: (iv_ruleSequenceMessageType= ruleSequenceMessageType EOF ) + // InternalTextualScenario.g:754:2: iv_ruleSequenceMessageType= ruleSequenceMessageType EOF { newCompositeNode(grammarAccess.getSequenceMessageTypeRule()); pushFollow(FOLLOW_1); @@ -2038,7 +2105,7 @@ public final EObject entryRuleSequenceMessageType() throws RecognitionException // $ANTLR start "ruleSequenceMessageType" - // InternalTextualScenario.g:742:1: ruleSequenceMessageType returns [EObject current=null] : (this_SequenceMessage_0= ruleSequenceMessage | this_CreateMessage_1= ruleCreateMessage | this_DeleteMessage_2= ruleDeleteMessage ) ; + // InternalTextualScenario.g:760:1: ruleSequenceMessageType returns [EObject current=null] : (this_SequenceMessage_0= ruleSequenceMessage | this_CreateMessage_1= ruleCreateMessage | this_DeleteMessage_2= ruleDeleteMessage ) ; public final EObject ruleSequenceMessageType() throws RecognitionException { EObject current = null; @@ -2053,10 +2120,10 @@ public final EObject ruleSequenceMessageType() throws RecognitionException { enterRule(); try { - // InternalTextualScenario.g:748:2: ( (this_SequenceMessage_0= ruleSequenceMessage | this_CreateMessage_1= ruleCreateMessage | this_DeleteMessage_2= ruleDeleteMessage ) ) - // InternalTextualScenario.g:749:2: (this_SequenceMessage_0= ruleSequenceMessage | this_CreateMessage_1= ruleCreateMessage | this_DeleteMessage_2= ruleDeleteMessage ) + // InternalTextualScenario.g:766:2: ( (this_SequenceMessage_0= ruleSequenceMessage | this_CreateMessage_1= ruleCreateMessage | this_DeleteMessage_2= ruleDeleteMessage ) ) + // InternalTextualScenario.g:767:2: (this_SequenceMessage_0= ruleSequenceMessage | this_CreateMessage_1= ruleCreateMessage | this_DeleteMessage_2= ruleDeleteMessage ) { - // InternalTextualScenario.g:749:2: (this_SequenceMessage_0= ruleSequenceMessage | this_CreateMessage_1= ruleCreateMessage | this_DeleteMessage_2= ruleDeleteMessage ) + // InternalTextualScenario.g:767:2: (this_SequenceMessage_0= ruleSequenceMessage | this_CreateMessage_1= ruleCreateMessage | this_DeleteMessage_2= ruleDeleteMessage ) int alt8=3; int LA8_0 = input.LA(1); @@ -2093,7 +2160,7 @@ public final EObject ruleSequenceMessageType() throws RecognitionException { } switch (alt8) { case 1 : - // InternalTextualScenario.g:750:3: this_SequenceMessage_0= ruleSequenceMessage + // InternalTextualScenario.g:768:3: this_SequenceMessage_0= ruleSequenceMessage { newCompositeNode(grammarAccess.getSequenceMessageTypeAccess().getSequenceMessageParserRuleCall_0()); @@ -2111,7 +2178,7 @@ public final EObject ruleSequenceMessageType() throws RecognitionException { } break; case 2 : - // InternalTextualScenario.g:759:3: this_CreateMessage_1= ruleCreateMessage + // InternalTextualScenario.g:777:3: this_CreateMessage_1= ruleCreateMessage { newCompositeNode(grammarAccess.getSequenceMessageTypeAccess().getCreateMessageParserRuleCall_1()); @@ -2129,7 +2196,7 @@ public final EObject ruleSequenceMessageType() throws RecognitionException { } break; case 3 : - // InternalTextualScenario.g:768:3: this_DeleteMessage_2= ruleDeleteMessage + // InternalTextualScenario.g:786:3: this_DeleteMessage_2= ruleDeleteMessage { newCompositeNode(grammarAccess.getSequenceMessageTypeAccess().getDeleteMessageParserRuleCall_2()); @@ -2169,7 +2236,7 @@ public final EObject ruleSequenceMessageType() throws RecognitionException { // $ANTLR start "entryRuleSequenceMessage" - // InternalTextualScenario.g:780:1: entryRuleSequenceMessage returns [EObject current=null] : iv_ruleSequenceMessage= ruleSequenceMessage EOF ; + // InternalTextualScenario.g:798:1: entryRuleSequenceMessage returns [EObject current=null] : iv_ruleSequenceMessage= ruleSequenceMessage EOF ; public final EObject entryRuleSequenceMessage() throws RecognitionException { EObject current = null; @@ -2177,8 +2244,8 @@ public final EObject entryRuleSequenceMessage() throws RecognitionException { try { - // InternalTextualScenario.g:780:56: (iv_ruleSequenceMessage= ruleSequenceMessage EOF ) - // InternalTextualScenario.g:781:2: iv_ruleSequenceMessage= ruleSequenceMessage EOF + // InternalTextualScenario.g:798:56: (iv_ruleSequenceMessage= ruleSequenceMessage EOF ) + // InternalTextualScenario.g:799:2: iv_ruleSequenceMessage= ruleSequenceMessage EOF { newCompositeNode(grammarAccess.getSequenceMessageRule()); pushFollow(FOLLOW_1); @@ -2205,7 +2272,7 @@ public final EObject entryRuleSequenceMessage() throws RecognitionException { // $ANTLR start "ruleSequenceMessage" - // InternalTextualScenario.g:787:1: ruleSequenceMessage returns [EObject current=null] : ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_execution_3_0= 'withExecution' ) )? ( (lv_return_4_0= 'withReturn' ) )? ( (lv_doubleDot_5_0= ':' ) ) ( (lv_name_6_0= RULE_STRING ) ) ) ; + // InternalTextualScenario.g:805:1: ruleSequenceMessage returns [EObject current=null] : ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_execution_3_0= 'withExecution' ) )? ( (lv_return_4_0= 'withReturn' ) )? ( (lv_doubleDot_5_0= ':' ) ) ( (lv_name_6_0= RULE_STRING ) ) ) ; public final EObject ruleSequenceMessage() throws RecognitionException { EObject current = null; @@ -2221,17 +2288,17 @@ public final EObject ruleSequenceMessage() throws RecognitionException { enterRule(); try { - // InternalTextualScenario.g:793:2: ( ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_execution_3_0= 'withExecution' ) )? ( (lv_return_4_0= 'withReturn' ) )? ( (lv_doubleDot_5_0= ':' ) ) ( (lv_name_6_0= RULE_STRING ) ) ) ) - // InternalTextualScenario.g:794:2: ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_execution_3_0= 'withExecution' ) )? ( (lv_return_4_0= 'withReturn' ) )? ( (lv_doubleDot_5_0= ':' ) ) ( (lv_name_6_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:811:2: ( ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_execution_3_0= 'withExecution' ) )? ( (lv_return_4_0= 'withReturn' ) )? ( (lv_doubleDot_5_0= ':' ) ) ( (lv_name_6_0= RULE_STRING ) ) ) ) + // InternalTextualScenario.g:812:2: ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_execution_3_0= 'withExecution' ) )? ( (lv_return_4_0= 'withReturn' ) )? ( (lv_doubleDot_5_0= ':' ) ) ( (lv_name_6_0= RULE_STRING ) ) ) { - // InternalTextualScenario.g:794:2: ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_execution_3_0= 'withExecution' ) )? ( (lv_return_4_0= 'withReturn' ) )? ( (lv_doubleDot_5_0= ':' ) ) ( (lv_name_6_0= RULE_STRING ) ) ) - // InternalTextualScenario.g:795:3: ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_execution_3_0= 'withExecution' ) )? ( (lv_return_4_0= 'withReturn' ) )? ( (lv_doubleDot_5_0= ':' ) ) ( (lv_name_6_0= RULE_STRING ) ) + // InternalTextualScenario.g:812:2: ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_execution_3_0= 'withExecution' ) )? ( (lv_return_4_0= 'withReturn' ) )? ( (lv_doubleDot_5_0= ':' ) ) ( (lv_name_6_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:813:3: ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_execution_3_0= 'withExecution' ) )? ( (lv_return_4_0= 'withReturn' ) )? ( (lv_doubleDot_5_0= ':' ) ) ( (lv_name_6_0= RULE_STRING ) ) { - // InternalTextualScenario.g:795:3: ( (lv_source_0_0= RULE_STRING ) ) - // InternalTextualScenario.g:796:4: (lv_source_0_0= RULE_STRING ) + // InternalTextualScenario.g:813:3: ( (lv_source_0_0= RULE_STRING ) ) + // InternalTextualScenario.g:814:4: (lv_source_0_0= RULE_STRING ) { - // InternalTextualScenario.g:796:4: (lv_source_0_0= RULE_STRING ) - // InternalTextualScenario.g:797:5: lv_source_0_0= RULE_STRING + // InternalTextualScenario.g:814:4: (lv_source_0_0= RULE_STRING ) + // InternalTextualScenario.g:815:5: lv_source_0_0= RULE_STRING { lv_source_0_0=(Token)match(input,RULE_STRING,FOLLOW_7); @@ -2253,11 +2320,11 @@ public final EObject ruleSequenceMessage() throws RecognitionException { } - // InternalTextualScenario.g:813:3: ( (lv_arrow_1_0= '->' ) ) - // InternalTextualScenario.g:814:4: (lv_arrow_1_0= '->' ) + // InternalTextualScenario.g:831:3: ( (lv_arrow_1_0= '->' ) ) + // InternalTextualScenario.g:832:4: (lv_arrow_1_0= '->' ) { - // InternalTextualScenario.g:814:4: (lv_arrow_1_0= '->' ) - // InternalTextualScenario.g:815:5: lv_arrow_1_0= '->' + // InternalTextualScenario.g:832:4: (lv_arrow_1_0= '->' ) + // InternalTextualScenario.g:833:5: lv_arrow_1_0= '->' { lv_arrow_1_0=(Token)match(input,21,FOLLOW_6); @@ -2275,11 +2342,11 @@ public final EObject ruleSequenceMessage() throws RecognitionException { } - // InternalTextualScenario.g:827:3: ( (lv_target_2_0= RULE_STRING ) ) - // InternalTextualScenario.g:828:4: (lv_target_2_0= RULE_STRING ) + // InternalTextualScenario.g:845:3: ( (lv_target_2_0= RULE_STRING ) ) + // InternalTextualScenario.g:846:4: (lv_target_2_0= RULE_STRING ) { - // InternalTextualScenario.g:828:4: (lv_target_2_0= RULE_STRING ) - // InternalTextualScenario.g:829:5: lv_target_2_0= RULE_STRING + // InternalTextualScenario.g:846:4: (lv_target_2_0= RULE_STRING ) + // InternalTextualScenario.g:847:5: lv_target_2_0= RULE_STRING { lv_target_2_0=(Token)match(input,RULE_STRING,FOLLOW_8); @@ -2301,7 +2368,7 @@ public final EObject ruleSequenceMessage() throws RecognitionException { } - // InternalTextualScenario.g:845:3: ( (lv_execution_3_0= 'withExecution' ) )? + // InternalTextualScenario.g:863:3: ( (lv_execution_3_0= 'withExecution' ) )? int alt9=2; int LA9_0 = input.LA(1); @@ -2310,10 +2377,10 @@ public final EObject ruleSequenceMessage() throws RecognitionException { } switch (alt9) { case 1 : - // InternalTextualScenario.g:846:4: (lv_execution_3_0= 'withExecution' ) + // InternalTextualScenario.g:864:4: (lv_execution_3_0= 'withExecution' ) { - // InternalTextualScenario.g:846:4: (lv_execution_3_0= 'withExecution' ) - // InternalTextualScenario.g:847:5: lv_execution_3_0= 'withExecution' + // InternalTextualScenario.g:864:4: (lv_execution_3_0= 'withExecution' ) + // InternalTextualScenario.g:865:5: lv_execution_3_0= 'withExecution' { lv_execution_3_0=(Token)match(input,22,FOLLOW_9); @@ -2334,7 +2401,7 @@ public final EObject ruleSequenceMessage() throws RecognitionException { } - // InternalTextualScenario.g:859:3: ( (lv_return_4_0= 'withReturn' ) )? + // InternalTextualScenario.g:877:3: ( (lv_return_4_0= 'withReturn' ) )? int alt10=2; int LA10_0 = input.LA(1); @@ -2343,10 +2410,10 @@ public final EObject ruleSequenceMessage() throws RecognitionException { } switch (alt10) { case 1 : - // InternalTextualScenario.g:860:4: (lv_return_4_0= 'withReturn' ) + // InternalTextualScenario.g:878:4: (lv_return_4_0= 'withReturn' ) { - // InternalTextualScenario.g:860:4: (lv_return_4_0= 'withReturn' ) - // InternalTextualScenario.g:861:5: lv_return_4_0= 'withReturn' + // InternalTextualScenario.g:878:4: (lv_return_4_0= 'withReturn' ) + // InternalTextualScenario.g:879:5: lv_return_4_0= 'withReturn' { lv_return_4_0=(Token)match(input,23,FOLLOW_10); @@ -2367,11 +2434,11 @@ public final EObject ruleSequenceMessage() throws RecognitionException { } - // InternalTextualScenario.g:873:3: ( (lv_doubleDot_5_0= ':' ) ) - // InternalTextualScenario.g:874:4: (lv_doubleDot_5_0= ':' ) + // InternalTextualScenario.g:891:3: ( (lv_doubleDot_5_0= ':' ) ) + // InternalTextualScenario.g:892:4: (lv_doubleDot_5_0= ':' ) { - // InternalTextualScenario.g:874:4: (lv_doubleDot_5_0= ':' ) - // InternalTextualScenario.g:875:5: lv_doubleDot_5_0= ':' + // InternalTextualScenario.g:892:4: (lv_doubleDot_5_0= ':' ) + // InternalTextualScenario.g:893:5: lv_doubleDot_5_0= ':' { lv_doubleDot_5_0=(Token)match(input,24,FOLLOW_6); @@ -2389,11 +2456,11 @@ public final EObject ruleSequenceMessage() throws RecognitionException { } - // InternalTextualScenario.g:887:3: ( (lv_name_6_0= RULE_STRING ) ) - // InternalTextualScenario.g:888:4: (lv_name_6_0= RULE_STRING ) + // InternalTextualScenario.g:905:3: ( (lv_name_6_0= RULE_STRING ) ) + // InternalTextualScenario.g:906:4: (lv_name_6_0= RULE_STRING ) { - // InternalTextualScenario.g:888:4: (lv_name_6_0= RULE_STRING ) - // InternalTextualScenario.g:889:5: lv_name_6_0= RULE_STRING + // InternalTextualScenario.g:906:4: (lv_name_6_0= RULE_STRING ) + // InternalTextualScenario.g:907:5: lv_name_6_0= RULE_STRING { lv_name_6_0=(Token)match(input,RULE_STRING,FOLLOW_2); @@ -2438,7 +2505,7 @@ public final EObject ruleSequenceMessage() throws RecognitionException { // $ANTLR start "entryRuleCreateMessage" - // InternalTextualScenario.g:909:1: entryRuleCreateMessage returns [EObject current=null] : iv_ruleCreateMessage= ruleCreateMessage EOF ; + // InternalTextualScenario.g:927:1: entryRuleCreateMessage returns [EObject current=null] : iv_ruleCreateMessage= ruleCreateMessage EOF ; public final EObject entryRuleCreateMessage() throws RecognitionException { EObject current = null; @@ -2446,8 +2513,8 @@ public final EObject entryRuleCreateMessage() throws RecognitionException { try { - // InternalTextualScenario.g:909:54: (iv_ruleCreateMessage= ruleCreateMessage EOF ) - // InternalTextualScenario.g:910:2: iv_ruleCreateMessage= ruleCreateMessage EOF + // InternalTextualScenario.g:927:54: (iv_ruleCreateMessage= ruleCreateMessage EOF ) + // InternalTextualScenario.g:928:2: iv_ruleCreateMessage= ruleCreateMessage EOF { newCompositeNode(grammarAccess.getCreateMessageRule()); pushFollow(FOLLOW_1); @@ -2474,7 +2541,7 @@ public final EObject entryRuleCreateMessage() throws RecognitionException { // $ANTLR start "ruleCreateMessage" - // InternalTextualScenario.g:916:1: ruleCreateMessage returns [EObject current=null] : ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->+' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) ; + // InternalTextualScenario.g:934:1: ruleCreateMessage returns [EObject current=null] : ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->+' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) ; public final EObject ruleCreateMessage() throws RecognitionException { EObject current = null; @@ -2488,17 +2555,17 @@ public final EObject ruleCreateMessage() throws RecognitionException { enterRule(); try { - // InternalTextualScenario.g:922:2: ( ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->+' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) ) - // InternalTextualScenario.g:923:2: ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->+' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:940:2: ( ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->+' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) ) + // InternalTextualScenario.g:941:2: ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->+' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) { - // InternalTextualScenario.g:923:2: ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->+' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) - // InternalTextualScenario.g:924:3: ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->+' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) + // InternalTextualScenario.g:941:2: ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->+' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:942:3: ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->+' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) { - // InternalTextualScenario.g:924:3: ( (lv_source_0_0= RULE_STRING ) ) - // InternalTextualScenario.g:925:4: (lv_source_0_0= RULE_STRING ) + // InternalTextualScenario.g:942:3: ( (lv_source_0_0= RULE_STRING ) ) + // InternalTextualScenario.g:943:4: (lv_source_0_0= RULE_STRING ) { - // InternalTextualScenario.g:925:4: (lv_source_0_0= RULE_STRING ) - // InternalTextualScenario.g:926:5: lv_source_0_0= RULE_STRING + // InternalTextualScenario.g:943:4: (lv_source_0_0= RULE_STRING ) + // InternalTextualScenario.g:944:5: lv_source_0_0= RULE_STRING { lv_source_0_0=(Token)match(input,RULE_STRING,FOLLOW_11); @@ -2520,11 +2587,11 @@ public final EObject ruleCreateMessage() throws RecognitionException { } - // InternalTextualScenario.g:942:3: ( (lv_arrow_1_0= '->+' ) ) - // InternalTextualScenario.g:943:4: (lv_arrow_1_0= '->+' ) + // InternalTextualScenario.g:960:3: ( (lv_arrow_1_0= '->+' ) ) + // InternalTextualScenario.g:961:4: (lv_arrow_1_0= '->+' ) { - // InternalTextualScenario.g:943:4: (lv_arrow_1_0= '->+' ) - // InternalTextualScenario.g:944:5: lv_arrow_1_0= '->+' + // InternalTextualScenario.g:961:4: (lv_arrow_1_0= '->+' ) + // InternalTextualScenario.g:962:5: lv_arrow_1_0= '->+' { lv_arrow_1_0=(Token)match(input,25,FOLLOW_6); @@ -2542,11 +2609,11 @@ public final EObject ruleCreateMessage() throws RecognitionException { } - // InternalTextualScenario.g:956:3: ( (lv_target_2_0= RULE_STRING ) ) - // InternalTextualScenario.g:957:4: (lv_target_2_0= RULE_STRING ) + // InternalTextualScenario.g:974:3: ( (lv_target_2_0= RULE_STRING ) ) + // InternalTextualScenario.g:975:4: (lv_target_2_0= RULE_STRING ) { - // InternalTextualScenario.g:957:4: (lv_target_2_0= RULE_STRING ) - // InternalTextualScenario.g:958:5: lv_target_2_0= RULE_STRING + // InternalTextualScenario.g:975:4: (lv_target_2_0= RULE_STRING ) + // InternalTextualScenario.g:976:5: lv_target_2_0= RULE_STRING { lv_target_2_0=(Token)match(input,RULE_STRING,FOLLOW_10); @@ -2568,11 +2635,11 @@ public final EObject ruleCreateMessage() throws RecognitionException { } - // InternalTextualScenario.g:974:3: ( (lv_doubleDot_3_0= ':' ) ) - // InternalTextualScenario.g:975:4: (lv_doubleDot_3_0= ':' ) + // InternalTextualScenario.g:992:3: ( (lv_doubleDot_3_0= ':' ) ) + // InternalTextualScenario.g:993:4: (lv_doubleDot_3_0= ':' ) { - // InternalTextualScenario.g:975:4: (lv_doubleDot_3_0= ':' ) - // InternalTextualScenario.g:976:5: lv_doubleDot_3_0= ':' + // InternalTextualScenario.g:993:4: (lv_doubleDot_3_0= ':' ) + // InternalTextualScenario.g:994:5: lv_doubleDot_3_0= ':' { lv_doubleDot_3_0=(Token)match(input,24,FOLLOW_6); @@ -2590,11 +2657,11 @@ public final EObject ruleCreateMessage() throws RecognitionException { } - // InternalTextualScenario.g:988:3: ( (lv_name_4_0= RULE_STRING ) ) - // InternalTextualScenario.g:989:4: (lv_name_4_0= RULE_STRING ) + // InternalTextualScenario.g:1006:3: ( (lv_name_4_0= RULE_STRING ) ) + // InternalTextualScenario.g:1007:4: (lv_name_4_0= RULE_STRING ) { - // InternalTextualScenario.g:989:4: (lv_name_4_0= RULE_STRING ) - // InternalTextualScenario.g:990:5: lv_name_4_0= RULE_STRING + // InternalTextualScenario.g:1007:4: (lv_name_4_0= RULE_STRING ) + // InternalTextualScenario.g:1008:5: lv_name_4_0= RULE_STRING { lv_name_4_0=(Token)match(input,RULE_STRING,FOLLOW_2); @@ -2639,7 +2706,7 @@ public final EObject ruleCreateMessage() throws RecognitionException { // $ANTLR start "entryRuleDeleteMessage" - // InternalTextualScenario.g:1010:1: entryRuleDeleteMessage returns [EObject current=null] : iv_ruleDeleteMessage= ruleDeleteMessage EOF ; + // InternalTextualScenario.g:1028:1: entryRuleDeleteMessage returns [EObject current=null] : iv_ruleDeleteMessage= ruleDeleteMessage EOF ; public final EObject entryRuleDeleteMessage() throws RecognitionException { EObject current = null; @@ -2647,8 +2714,8 @@ public final EObject entryRuleDeleteMessage() throws RecognitionException { try { - // InternalTextualScenario.g:1010:54: (iv_ruleDeleteMessage= ruleDeleteMessage EOF ) - // InternalTextualScenario.g:1011:2: iv_ruleDeleteMessage= ruleDeleteMessage EOF + // InternalTextualScenario.g:1028:54: (iv_ruleDeleteMessage= ruleDeleteMessage EOF ) + // InternalTextualScenario.g:1029:2: iv_ruleDeleteMessage= ruleDeleteMessage EOF { newCompositeNode(grammarAccess.getDeleteMessageRule()); pushFollow(FOLLOW_1); @@ -2675,7 +2742,7 @@ public final EObject entryRuleDeleteMessage() throws RecognitionException { // $ANTLR start "ruleDeleteMessage" - // InternalTextualScenario.g:1017:1: ruleDeleteMessage returns [EObject current=null] : ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->x' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) ; + // InternalTextualScenario.g:1035:1: ruleDeleteMessage returns [EObject current=null] : ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->x' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) ; public final EObject ruleDeleteMessage() throws RecognitionException { EObject current = null; @@ -2689,17 +2756,17 @@ public final EObject ruleDeleteMessage() throws RecognitionException { enterRule(); try { - // InternalTextualScenario.g:1023:2: ( ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->x' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) ) - // InternalTextualScenario.g:1024:2: ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->x' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:1041:2: ( ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->x' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) ) + // InternalTextualScenario.g:1042:2: ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->x' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) { - // InternalTextualScenario.g:1024:2: ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->x' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) - // InternalTextualScenario.g:1025:3: ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->x' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) + // InternalTextualScenario.g:1042:2: ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->x' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:1043:3: ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->x' ) ) ( (lv_target_2_0= RULE_STRING ) ) ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) { - // InternalTextualScenario.g:1025:3: ( (lv_source_0_0= RULE_STRING ) ) - // InternalTextualScenario.g:1026:4: (lv_source_0_0= RULE_STRING ) + // InternalTextualScenario.g:1043:3: ( (lv_source_0_0= RULE_STRING ) ) + // InternalTextualScenario.g:1044:4: (lv_source_0_0= RULE_STRING ) { - // InternalTextualScenario.g:1026:4: (lv_source_0_0= RULE_STRING ) - // InternalTextualScenario.g:1027:5: lv_source_0_0= RULE_STRING + // InternalTextualScenario.g:1044:4: (lv_source_0_0= RULE_STRING ) + // InternalTextualScenario.g:1045:5: lv_source_0_0= RULE_STRING { lv_source_0_0=(Token)match(input,RULE_STRING,FOLLOW_12); @@ -2721,11 +2788,11 @@ public final EObject ruleDeleteMessage() throws RecognitionException { } - // InternalTextualScenario.g:1043:3: ( (lv_arrow_1_0= '->x' ) ) - // InternalTextualScenario.g:1044:4: (lv_arrow_1_0= '->x' ) + // InternalTextualScenario.g:1061:3: ( (lv_arrow_1_0= '->x' ) ) + // InternalTextualScenario.g:1062:4: (lv_arrow_1_0= '->x' ) { - // InternalTextualScenario.g:1044:4: (lv_arrow_1_0= '->x' ) - // InternalTextualScenario.g:1045:5: lv_arrow_1_0= '->x' + // InternalTextualScenario.g:1062:4: (lv_arrow_1_0= '->x' ) + // InternalTextualScenario.g:1063:5: lv_arrow_1_0= '->x' { lv_arrow_1_0=(Token)match(input,26,FOLLOW_6); @@ -2743,11 +2810,11 @@ public final EObject ruleDeleteMessage() throws RecognitionException { } - // InternalTextualScenario.g:1057:3: ( (lv_target_2_0= RULE_STRING ) ) - // InternalTextualScenario.g:1058:4: (lv_target_2_0= RULE_STRING ) + // InternalTextualScenario.g:1075:3: ( (lv_target_2_0= RULE_STRING ) ) + // InternalTextualScenario.g:1076:4: (lv_target_2_0= RULE_STRING ) { - // InternalTextualScenario.g:1058:4: (lv_target_2_0= RULE_STRING ) - // InternalTextualScenario.g:1059:5: lv_target_2_0= RULE_STRING + // InternalTextualScenario.g:1076:4: (lv_target_2_0= RULE_STRING ) + // InternalTextualScenario.g:1077:5: lv_target_2_0= RULE_STRING { lv_target_2_0=(Token)match(input,RULE_STRING,FOLLOW_10); @@ -2769,11 +2836,11 @@ public final EObject ruleDeleteMessage() throws RecognitionException { } - // InternalTextualScenario.g:1075:3: ( (lv_doubleDot_3_0= ':' ) ) - // InternalTextualScenario.g:1076:4: (lv_doubleDot_3_0= ':' ) + // InternalTextualScenario.g:1093:3: ( (lv_doubleDot_3_0= ':' ) ) + // InternalTextualScenario.g:1094:4: (lv_doubleDot_3_0= ':' ) { - // InternalTextualScenario.g:1076:4: (lv_doubleDot_3_0= ':' ) - // InternalTextualScenario.g:1077:5: lv_doubleDot_3_0= ':' + // InternalTextualScenario.g:1094:4: (lv_doubleDot_3_0= ':' ) + // InternalTextualScenario.g:1095:5: lv_doubleDot_3_0= ':' { lv_doubleDot_3_0=(Token)match(input,24,FOLLOW_6); @@ -2791,11 +2858,11 @@ public final EObject ruleDeleteMessage() throws RecognitionException { } - // InternalTextualScenario.g:1089:3: ( (lv_name_4_0= RULE_STRING ) ) - // InternalTextualScenario.g:1090:4: (lv_name_4_0= RULE_STRING ) + // InternalTextualScenario.g:1107:3: ( (lv_name_4_0= RULE_STRING ) ) + // InternalTextualScenario.g:1108:4: (lv_name_4_0= RULE_STRING ) { - // InternalTextualScenario.g:1090:4: (lv_name_4_0= RULE_STRING ) - // InternalTextualScenario.g:1091:5: lv_name_4_0= RULE_STRING + // InternalTextualScenario.g:1108:4: (lv_name_4_0= RULE_STRING ) + // InternalTextualScenario.g:1109:5: lv_name_4_0= RULE_STRING { lv_name_4_0=(Token)match(input,RULE_STRING,FOLLOW_2); @@ -2840,7 +2907,7 @@ public final EObject ruleDeleteMessage() throws RecognitionException { // $ANTLR start "entryRuleArmTimerMessage" - // InternalTextualScenario.g:1111:1: entryRuleArmTimerMessage returns [EObject current=null] : iv_ruleArmTimerMessage= ruleArmTimerMessage EOF ; + // InternalTextualScenario.g:1129:1: entryRuleArmTimerMessage returns [EObject current=null] : iv_ruleArmTimerMessage= ruleArmTimerMessage EOF ; public final EObject entryRuleArmTimerMessage() throws RecognitionException { EObject current = null; @@ -2848,8 +2915,8 @@ public final EObject entryRuleArmTimerMessage() throws RecognitionException { try { - // InternalTextualScenario.g:1111:56: (iv_ruleArmTimerMessage= ruleArmTimerMessage EOF ) - // InternalTextualScenario.g:1112:2: iv_ruleArmTimerMessage= ruleArmTimerMessage EOF + // InternalTextualScenario.g:1129:56: (iv_ruleArmTimerMessage= ruleArmTimerMessage EOF ) + // InternalTextualScenario.g:1130:2: iv_ruleArmTimerMessage= ruleArmTimerMessage EOF { newCompositeNode(grammarAccess.getArmTimerMessageRule()); pushFollow(FOLLOW_1); @@ -2876,7 +2943,7 @@ public final EObject entryRuleArmTimerMessage() throws RecognitionException { // $ANTLR start "ruleArmTimerMessage" - // InternalTextualScenario.g:1118:1: ruleArmTimerMessage returns [EObject current=null] : ( ( (lv_arrow_0_0= '->>' ) ) ( (lv_participant_1_0= RULE_STRING ) ) ( (lv_execution_2_0= 'withExecution' ) )? ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) ; + // InternalTextualScenario.g:1136:1: ruleArmTimerMessage returns [EObject current=null] : ( ( (lv_arrow_0_0= '->>' ) ) ( (lv_participant_1_0= RULE_STRING ) ) ( (lv_execution_2_0= 'withExecution' ) )? ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) ; public final EObject ruleArmTimerMessage() throws RecognitionException { EObject current = null; @@ -2890,17 +2957,17 @@ public final EObject ruleArmTimerMessage() throws RecognitionException { enterRule(); try { - // InternalTextualScenario.g:1124:2: ( ( ( (lv_arrow_0_0= '->>' ) ) ( (lv_participant_1_0= RULE_STRING ) ) ( (lv_execution_2_0= 'withExecution' ) )? ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) ) - // InternalTextualScenario.g:1125:2: ( ( (lv_arrow_0_0= '->>' ) ) ( (lv_participant_1_0= RULE_STRING ) ) ( (lv_execution_2_0= 'withExecution' ) )? ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:1142:2: ( ( ( (lv_arrow_0_0= '->>' ) ) ( (lv_participant_1_0= RULE_STRING ) ) ( (lv_execution_2_0= 'withExecution' ) )? ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) ) + // InternalTextualScenario.g:1143:2: ( ( (lv_arrow_0_0= '->>' ) ) ( (lv_participant_1_0= RULE_STRING ) ) ( (lv_execution_2_0= 'withExecution' ) )? ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) { - // InternalTextualScenario.g:1125:2: ( ( (lv_arrow_0_0= '->>' ) ) ( (lv_participant_1_0= RULE_STRING ) ) ( (lv_execution_2_0= 'withExecution' ) )? ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) - // InternalTextualScenario.g:1126:3: ( (lv_arrow_0_0= '->>' ) ) ( (lv_participant_1_0= RULE_STRING ) ) ( (lv_execution_2_0= 'withExecution' ) )? ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) + // InternalTextualScenario.g:1143:2: ( ( (lv_arrow_0_0= '->>' ) ) ( (lv_participant_1_0= RULE_STRING ) ) ( (lv_execution_2_0= 'withExecution' ) )? ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:1144:3: ( (lv_arrow_0_0= '->>' ) ) ( (lv_participant_1_0= RULE_STRING ) ) ( (lv_execution_2_0= 'withExecution' ) )? ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) { - // InternalTextualScenario.g:1126:3: ( (lv_arrow_0_0= '->>' ) ) - // InternalTextualScenario.g:1127:4: (lv_arrow_0_0= '->>' ) + // InternalTextualScenario.g:1144:3: ( (lv_arrow_0_0= '->>' ) ) + // InternalTextualScenario.g:1145:4: (lv_arrow_0_0= '->>' ) { - // InternalTextualScenario.g:1127:4: (lv_arrow_0_0= '->>' ) - // InternalTextualScenario.g:1128:5: lv_arrow_0_0= '->>' + // InternalTextualScenario.g:1145:4: (lv_arrow_0_0= '->>' ) + // InternalTextualScenario.g:1146:5: lv_arrow_0_0= '->>' { lv_arrow_0_0=(Token)match(input,27,FOLLOW_6); @@ -2918,11 +2985,11 @@ public final EObject ruleArmTimerMessage() throws RecognitionException { } - // InternalTextualScenario.g:1140:3: ( (lv_participant_1_0= RULE_STRING ) ) - // InternalTextualScenario.g:1141:4: (lv_participant_1_0= RULE_STRING ) + // InternalTextualScenario.g:1158:3: ( (lv_participant_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:1159:4: (lv_participant_1_0= RULE_STRING ) { - // InternalTextualScenario.g:1141:4: (lv_participant_1_0= RULE_STRING ) - // InternalTextualScenario.g:1142:5: lv_participant_1_0= RULE_STRING + // InternalTextualScenario.g:1159:4: (lv_participant_1_0= RULE_STRING ) + // InternalTextualScenario.g:1160:5: lv_participant_1_0= RULE_STRING { lv_participant_1_0=(Token)match(input,RULE_STRING,FOLLOW_13); @@ -2944,7 +3011,7 @@ public final EObject ruleArmTimerMessage() throws RecognitionException { } - // InternalTextualScenario.g:1158:3: ( (lv_execution_2_0= 'withExecution' ) )? + // InternalTextualScenario.g:1176:3: ( (lv_execution_2_0= 'withExecution' ) )? int alt11=2; int LA11_0 = input.LA(1); @@ -2953,10 +3020,10 @@ public final EObject ruleArmTimerMessage() throws RecognitionException { } switch (alt11) { case 1 : - // InternalTextualScenario.g:1159:4: (lv_execution_2_0= 'withExecution' ) + // InternalTextualScenario.g:1177:4: (lv_execution_2_0= 'withExecution' ) { - // InternalTextualScenario.g:1159:4: (lv_execution_2_0= 'withExecution' ) - // InternalTextualScenario.g:1160:5: lv_execution_2_0= 'withExecution' + // InternalTextualScenario.g:1177:4: (lv_execution_2_0= 'withExecution' ) + // InternalTextualScenario.g:1178:5: lv_execution_2_0= 'withExecution' { lv_execution_2_0=(Token)match(input,22,FOLLOW_10); @@ -2977,11 +3044,11 @@ public final EObject ruleArmTimerMessage() throws RecognitionException { } - // InternalTextualScenario.g:1172:3: ( (lv_doubleDot_3_0= ':' ) ) - // InternalTextualScenario.g:1173:4: (lv_doubleDot_3_0= ':' ) + // InternalTextualScenario.g:1190:3: ( (lv_doubleDot_3_0= ':' ) ) + // InternalTextualScenario.g:1191:4: (lv_doubleDot_3_0= ':' ) { - // InternalTextualScenario.g:1173:4: (lv_doubleDot_3_0= ':' ) - // InternalTextualScenario.g:1174:5: lv_doubleDot_3_0= ':' + // InternalTextualScenario.g:1191:4: (lv_doubleDot_3_0= ':' ) + // InternalTextualScenario.g:1192:5: lv_doubleDot_3_0= ':' { lv_doubleDot_3_0=(Token)match(input,24,FOLLOW_6); @@ -2999,11 +3066,11 @@ public final EObject ruleArmTimerMessage() throws RecognitionException { } - // InternalTextualScenario.g:1186:3: ( (lv_name_4_0= RULE_STRING ) ) - // InternalTextualScenario.g:1187:4: (lv_name_4_0= RULE_STRING ) + // InternalTextualScenario.g:1204:3: ( (lv_name_4_0= RULE_STRING ) ) + // InternalTextualScenario.g:1205:4: (lv_name_4_0= RULE_STRING ) { - // InternalTextualScenario.g:1187:4: (lv_name_4_0= RULE_STRING ) - // InternalTextualScenario.g:1188:5: lv_name_4_0= RULE_STRING + // InternalTextualScenario.g:1205:4: (lv_name_4_0= RULE_STRING ) + // InternalTextualScenario.g:1206:5: lv_name_4_0= RULE_STRING { lv_name_4_0=(Token)match(input,RULE_STRING,FOLLOW_2); @@ -3047,25 +3114,25 @@ public final EObject ruleArmTimerMessage() throws RecognitionException { // $ANTLR end "ruleArmTimerMessage" - // $ANTLR start "entryRuleParticipantDeactivation" - // InternalTextualScenario.g:1208:1: entryRuleParticipantDeactivation returns [EObject current=null] : iv_ruleParticipantDeactivation= ruleParticipantDeactivation EOF ; - public final EObject entryRuleParticipantDeactivation() throws RecognitionException { + // $ANTLR start "entryRuleLostFoundMessage" + // InternalTextualScenario.g:1226:1: entryRuleLostFoundMessage returns [EObject current=null] : iv_ruleLostFoundMessage= ruleLostFoundMessage EOF ; + public final EObject entryRuleLostFoundMessage() throws RecognitionException { EObject current = null; - EObject iv_ruleParticipantDeactivation = null; + EObject iv_ruleLostFoundMessage = null; try { - // InternalTextualScenario.g:1208:64: (iv_ruleParticipantDeactivation= ruleParticipantDeactivation EOF ) - // InternalTextualScenario.g:1209:2: iv_ruleParticipantDeactivation= ruleParticipantDeactivation EOF + // InternalTextualScenario.g:1226:57: (iv_ruleLostFoundMessage= ruleLostFoundMessage EOF ) + // InternalTextualScenario.g:1227:2: iv_ruleLostFoundMessage= ruleLostFoundMessage EOF { - newCompositeNode(grammarAccess.getParticipantDeactivationRule()); + newCompositeNode(grammarAccess.getLostFoundMessageRule()); pushFollow(FOLLOW_1); - iv_ruleParticipantDeactivation=ruleParticipantDeactivation(); + iv_ruleLostFoundMessage=ruleLostFoundMessage(); state._fsp--; - current =iv_ruleParticipantDeactivation; + current =iv_ruleLostFoundMessage; match(input,EOF,FOLLOW_2); } @@ -3080,42 +3147,176 @@ public final EObject entryRuleParticipantDeactivation() throws RecognitionExcept } return current; } - // $ANTLR end "entryRuleParticipantDeactivation" + // $ANTLR end "entryRuleLostFoundMessage" - // $ANTLR start "ruleParticipantDeactivation" - // InternalTextualScenario.g:1215:1: ruleParticipantDeactivation returns [EObject current=null] : ( ( (lv_keyword_0_0= 'deactivate' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ; - public final EObject ruleParticipantDeactivation() throws RecognitionException { + // $ANTLR start "ruleLostFoundMessage" + // InternalTextualScenario.g:1233:1: ruleLostFoundMessage returns [EObject current=null] : (this_LostMessage_0= ruleLostMessage | this_FoundMessage_1= ruleFoundMessage ) ; + public final EObject ruleLostFoundMessage() throws RecognitionException { EObject current = null; - Token lv_keyword_0_0=null; - Token lv_name_1_0=null; + EObject this_LostMessage_0 = null; + + EObject this_FoundMessage_1 = null; + + + + enterRule(); + + try { + // InternalTextualScenario.g:1239:2: ( (this_LostMessage_0= ruleLostMessage | this_FoundMessage_1= ruleFoundMessage ) ) + // InternalTextualScenario.g:1240:2: (this_LostMessage_0= ruleLostMessage | this_FoundMessage_1= ruleFoundMessage ) + { + // InternalTextualScenario.g:1240:2: (this_LostMessage_0= ruleLostMessage | this_FoundMessage_1= ruleFoundMessage ) + int alt12=2; + int LA12_0 = input.LA(1); + + if ( (LA12_0==RULE_STRING) ) { + alt12=1; + } + else if ( (LA12_0==29) ) { + alt12=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 12, 0, input); + + throw nvae; + } + switch (alt12) { + case 1 : + // InternalTextualScenario.g:1241:3: this_LostMessage_0= ruleLostMessage + { + + newCompositeNode(grammarAccess.getLostFoundMessageAccess().getLostMessageParserRuleCall_0()); + + pushFollow(FOLLOW_2); + this_LostMessage_0=ruleLostMessage(); + + state._fsp--; + + + current = this_LostMessage_0; + afterParserOrEnumRuleCall(); + + + } + break; + case 2 : + // InternalTextualScenario.g:1250:3: this_FoundMessage_1= ruleFoundMessage + { + + newCompositeNode(grammarAccess.getLostFoundMessageAccess().getFoundMessageParserRuleCall_1()); + + pushFollow(FOLLOW_2); + this_FoundMessage_1=ruleFoundMessage(); + + state._fsp--; + + + current = this_FoundMessage_1; + afterParserOrEnumRuleCall(); + + + } + break; + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleLostFoundMessage" + + + // $ANTLR start "entryRuleLostMessage" + // InternalTextualScenario.g:1262:1: entryRuleLostMessage returns [EObject current=null] : iv_ruleLostMessage= ruleLostMessage EOF ; + public final EObject entryRuleLostMessage() throws RecognitionException { + EObject current = null; + + EObject iv_ruleLostMessage = null; + + + try { + // InternalTextualScenario.g:1262:52: (iv_ruleLostMessage= ruleLostMessage EOF ) + // InternalTextualScenario.g:1263:2: iv_ruleLostMessage= ruleLostMessage EOF + { + newCompositeNode(grammarAccess.getLostMessageRule()); + pushFollow(FOLLOW_1); + iv_ruleLostMessage=ruleLostMessage(); + + state._fsp--; + + current =iv_ruleLostMessage; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleLostMessage" + + + // $ANTLR start "ruleLostMessage" + // InternalTextualScenario.g:1269:1: ruleLostMessage returns [EObject current=null] : ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->o' ) ) ( (lv_doubleDot_2_0= ':' ) ) ( (lv_name_3_0= RULE_STRING ) ) ) ; + public final EObject ruleLostMessage() throws RecognitionException { + EObject current = null; + + Token lv_source_0_0=null; + Token lv_arrow_1_0=null; + Token lv_doubleDot_2_0=null; + Token lv_name_3_0=null; enterRule(); try { - // InternalTextualScenario.g:1221:2: ( ( ( (lv_keyword_0_0= 'deactivate' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ) - // InternalTextualScenario.g:1222:2: ( ( (lv_keyword_0_0= 'deactivate' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:1275:2: ( ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->o' ) ) ( (lv_doubleDot_2_0= ':' ) ) ( (lv_name_3_0= RULE_STRING ) ) ) ) + // InternalTextualScenario.g:1276:2: ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->o' ) ) ( (lv_doubleDot_2_0= ':' ) ) ( (lv_name_3_0= RULE_STRING ) ) ) { - // InternalTextualScenario.g:1222:2: ( ( (lv_keyword_0_0= 'deactivate' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) - // InternalTextualScenario.g:1223:3: ( (lv_keyword_0_0= 'deactivate' ) ) ( (lv_name_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:1276:2: ( ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->o' ) ) ( (lv_doubleDot_2_0= ':' ) ) ( (lv_name_3_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:1277:3: ( (lv_source_0_0= RULE_STRING ) ) ( (lv_arrow_1_0= '->o' ) ) ( (lv_doubleDot_2_0= ':' ) ) ( (lv_name_3_0= RULE_STRING ) ) { - // InternalTextualScenario.g:1223:3: ( (lv_keyword_0_0= 'deactivate' ) ) - // InternalTextualScenario.g:1224:4: (lv_keyword_0_0= 'deactivate' ) + // InternalTextualScenario.g:1277:3: ( (lv_source_0_0= RULE_STRING ) ) + // InternalTextualScenario.g:1278:4: (lv_source_0_0= RULE_STRING ) { - // InternalTextualScenario.g:1224:4: (lv_keyword_0_0= 'deactivate' ) - // InternalTextualScenario.g:1225:5: lv_keyword_0_0= 'deactivate' + // InternalTextualScenario.g:1278:4: (lv_source_0_0= RULE_STRING ) + // InternalTextualScenario.g:1279:5: lv_source_0_0= RULE_STRING { - lv_keyword_0_0=(Token)match(input,28,FOLLOW_6); + lv_source_0_0=(Token)match(input,RULE_STRING,FOLLOW_14); - newLeafNode(lv_keyword_0_0, grammarAccess.getParticipantDeactivationAccess().getKeywordDeactivateKeyword_0_0()); + newLeafNode(lv_source_0_0, grammarAccess.getLostMessageAccess().getSourceSTRINGTerminalRuleCall_0_0()); if (current==null) { - current = createModelElement(grammarAccess.getParticipantDeactivationRule()); + current = createModelElement(grammarAccess.getLostMessageRule()); } - setWithLastConsumed(current, "keyword", lv_keyword_0_0, "deactivate"); + setWithLastConsumed( + current, + "source", + lv_source_0_0, + "org.eclipse.xtext.common.Terminals.STRING"); } @@ -3123,24 +3324,68 @@ public final EObject ruleParticipantDeactivation() throws RecognitionException { } - // InternalTextualScenario.g:1237:3: ( (lv_name_1_0= RULE_STRING ) ) - // InternalTextualScenario.g:1238:4: (lv_name_1_0= RULE_STRING ) + // InternalTextualScenario.g:1295:3: ( (lv_arrow_1_0= '->o' ) ) + // InternalTextualScenario.g:1296:4: (lv_arrow_1_0= '->o' ) { - // InternalTextualScenario.g:1238:4: (lv_name_1_0= RULE_STRING ) - // InternalTextualScenario.g:1239:5: lv_name_1_0= RULE_STRING + // InternalTextualScenario.g:1296:4: (lv_arrow_1_0= '->o' ) + // InternalTextualScenario.g:1297:5: lv_arrow_1_0= '->o' { - lv_name_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); + lv_arrow_1_0=(Token)match(input,28,FOLLOW_10); - newLeafNode(lv_name_1_0, grammarAccess.getParticipantDeactivationAccess().getNameSTRINGTerminalRuleCall_1_0()); + newLeafNode(lv_arrow_1_0, grammarAccess.getLostMessageAccess().getArrowOKeyword_1_0()); if (current==null) { - current = createModelElement(grammarAccess.getParticipantDeactivationRule()); + current = createModelElement(grammarAccess.getLostMessageRule()); + } + setWithLastConsumed(current, "arrow", lv_arrow_1_0, "->o"); + + + } + + + } + + // InternalTextualScenario.g:1309:3: ( (lv_doubleDot_2_0= ':' ) ) + // InternalTextualScenario.g:1310:4: (lv_doubleDot_2_0= ':' ) + { + // InternalTextualScenario.g:1310:4: (lv_doubleDot_2_0= ':' ) + // InternalTextualScenario.g:1311:5: lv_doubleDot_2_0= ':' + { + lv_doubleDot_2_0=(Token)match(input,24,FOLLOW_6); + + newLeafNode(lv_doubleDot_2_0, grammarAccess.getLostMessageAccess().getDoubleDotColonKeyword_2_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getLostMessageRule()); + } + setWithLastConsumed(current, "doubleDot", lv_doubleDot_2_0, ":"); + + + } + + + } + + // InternalTextualScenario.g:1323:3: ( (lv_name_3_0= RULE_STRING ) ) + // InternalTextualScenario.g:1324:4: (lv_name_3_0= RULE_STRING ) + { + // InternalTextualScenario.g:1324:4: (lv_name_3_0= RULE_STRING ) + // InternalTextualScenario.g:1325:5: lv_name_3_0= RULE_STRING + { + lv_name_3_0=(Token)match(input,RULE_STRING,FOLLOW_2); + + newLeafNode(lv_name_3_0, grammarAccess.getLostMessageAccess().getNameSTRINGTerminalRuleCall_3_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getLostMessageRule()); } setWithLastConsumed( current, "name", - lv_name_1_0, + lv_name_3_0, "org.eclipse.xtext.common.Terminals.STRING"); @@ -3168,28 +3413,28 @@ public final EObject ruleParticipantDeactivation() throws RecognitionException { } return current; } - // $ANTLR end "ruleParticipantDeactivation" + // $ANTLR end "ruleLostMessage" - // $ANTLR start "entryRuleCombinedFragment" - // InternalTextualScenario.g:1259:1: entryRuleCombinedFragment returns [EObject current=null] : iv_ruleCombinedFragment= ruleCombinedFragment EOF ; - public final EObject entryRuleCombinedFragment() throws RecognitionException { + // $ANTLR start "entryRuleFoundMessage" + // InternalTextualScenario.g:1345:1: entryRuleFoundMessage returns [EObject current=null] : iv_ruleFoundMessage= ruleFoundMessage EOF ; + public final EObject entryRuleFoundMessage() throws RecognitionException { EObject current = null; - EObject iv_ruleCombinedFragment = null; + EObject iv_ruleFoundMessage = null; try { - // InternalTextualScenario.g:1259:57: (iv_ruleCombinedFragment= ruleCombinedFragment EOF ) - // InternalTextualScenario.g:1260:2: iv_ruleCombinedFragment= ruleCombinedFragment EOF + // InternalTextualScenario.g:1345:53: (iv_ruleFoundMessage= ruleFoundMessage EOF ) + // InternalTextualScenario.g:1346:2: iv_ruleFoundMessage= ruleFoundMessage EOF { - newCompositeNode(grammarAccess.getCombinedFragmentRule()); + newCompositeNode(grammarAccess.getFoundMessageRule()); pushFollow(FOLLOW_1); - iv_ruleCombinedFragment=ruleCombinedFragment(); + iv_ruleFoundMessage=ruleFoundMessage(); state._fsp--; - current =iv_ruleCombinedFragment; + current =iv_ruleFoundMessage; match(input,EOF,FOLLOW_2); } @@ -3204,119 +3449,451 @@ public final EObject entryRuleCombinedFragment() throws RecognitionException { } return current; } - // $ANTLR end "entryRuleCombinedFragment" + // $ANTLR end "entryRuleFoundMessage" - // $ANTLR start "ruleCombinedFragment" - // InternalTextualScenario.g:1266:1: ruleCombinedFragment returns [EObject current=null] : ( ( ( (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) ) ) ( (lv_expression_1_0= RULE_STRING ) ) ( (lv_over_2_0= 'over' ) ) ( (lv_timelines_3_0= RULE_STRING ) )+ ( (lv_block_4_0= ruleBlock ) ) ( (lv_operands_5_0= ruleOperand ) )* ) ; - public final EObject ruleCombinedFragment() throws RecognitionException { + // $ANTLR start "ruleFoundMessage" + // InternalTextualScenario.g:1352:1: ruleFoundMessage returns [EObject current=null] : ( ( (lv_arrow_0_0= 'o->' ) ) ( (lv_target_1_0= RULE_STRING ) ) ( (lv_execution_2_0= 'withExecution' ) )? ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) ; + public final EObject ruleFoundMessage() throws RecognitionException { EObject current = null; - Token lv_keyword_0_1=null; - Token lv_keyword_0_2=null; - Token lv_keyword_0_3=null; - Token lv_keyword_0_4=null; - Token lv_keyword_0_5=null; - Token lv_keyword_0_6=null; - Token lv_keyword_0_7=null; - Token lv_keyword_0_8=null; - Token lv_keyword_0_9=null; - Token lv_keyword_0_10=null; - Token lv_keyword_0_11=null; - Token lv_expression_1_0=null; - Token lv_over_2_0=null; - Token lv_timelines_3_0=null; - EObject lv_block_4_0 = null; - - EObject lv_operands_5_0 = null; - + Token lv_arrow_0_0=null; + Token lv_target_1_0=null; + Token lv_execution_2_0=null; + Token lv_doubleDot_3_0=null; + Token lv_name_4_0=null; enterRule(); try { - // InternalTextualScenario.g:1272:2: ( ( ( ( (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) ) ) ( (lv_expression_1_0= RULE_STRING ) ) ( (lv_over_2_0= 'over' ) ) ( (lv_timelines_3_0= RULE_STRING ) )+ ( (lv_block_4_0= ruleBlock ) ) ( (lv_operands_5_0= ruleOperand ) )* ) ) - // InternalTextualScenario.g:1273:2: ( ( ( (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) ) ) ( (lv_expression_1_0= RULE_STRING ) ) ( (lv_over_2_0= 'over' ) ) ( (lv_timelines_3_0= RULE_STRING ) )+ ( (lv_block_4_0= ruleBlock ) ) ( (lv_operands_5_0= ruleOperand ) )* ) + // InternalTextualScenario.g:1358:2: ( ( ( (lv_arrow_0_0= 'o->' ) ) ( (lv_target_1_0= RULE_STRING ) ) ( (lv_execution_2_0= 'withExecution' ) )? ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) ) + // InternalTextualScenario.g:1359:2: ( ( (lv_arrow_0_0= 'o->' ) ) ( (lv_target_1_0= RULE_STRING ) ) ( (lv_execution_2_0= 'withExecution' ) )? ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) { - // InternalTextualScenario.g:1273:2: ( ( ( (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) ) ) ( (lv_expression_1_0= RULE_STRING ) ) ( (lv_over_2_0= 'over' ) ) ( (lv_timelines_3_0= RULE_STRING ) )+ ( (lv_block_4_0= ruleBlock ) ) ( (lv_operands_5_0= ruleOperand ) )* ) - // InternalTextualScenario.g:1274:3: ( ( (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) ) ) ( (lv_expression_1_0= RULE_STRING ) ) ( (lv_over_2_0= 'over' ) ) ( (lv_timelines_3_0= RULE_STRING ) )+ ( (lv_block_4_0= ruleBlock ) ) ( (lv_operands_5_0= ruleOperand ) )* + // InternalTextualScenario.g:1359:2: ( ( (lv_arrow_0_0= 'o->' ) ) ( (lv_target_1_0= RULE_STRING ) ) ( (lv_execution_2_0= 'withExecution' ) )? ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:1360:3: ( (lv_arrow_0_0= 'o->' ) ) ( (lv_target_1_0= RULE_STRING ) ) ( (lv_execution_2_0= 'withExecution' ) )? ( (lv_doubleDot_3_0= ':' ) ) ( (lv_name_4_0= RULE_STRING ) ) { - // InternalTextualScenario.g:1274:3: ( ( (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) ) ) - // InternalTextualScenario.g:1275:4: ( (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) ) + // InternalTextualScenario.g:1360:3: ( (lv_arrow_0_0= 'o->' ) ) + // InternalTextualScenario.g:1361:4: (lv_arrow_0_0= 'o->' ) { - // InternalTextualScenario.g:1275:4: ( (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) ) - // InternalTextualScenario.g:1276:5: (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) + // InternalTextualScenario.g:1361:4: (lv_arrow_0_0= 'o->' ) + // InternalTextualScenario.g:1362:5: lv_arrow_0_0= 'o->' { - // InternalTextualScenario.g:1276:5: (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) - int alt12=11; - switch ( input.LA(1) ) { - case 29: - { - alt12=1; - } - break; - case 30: - { - alt12=2; - } - break; - case 31: - { - alt12=3; - } - break; - case 32: - { - alt12=4; - } - break; - case 33: - { - alt12=5; + lv_arrow_0_0=(Token)match(input,29,FOLLOW_6); + + newLeafNode(lv_arrow_0_0, grammarAccess.getFoundMessageAccess().getArrowOKeyword_0_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getFoundMessageRule()); + } + setWithLastConsumed(current, "arrow", lv_arrow_0_0, "o->"); + + + } + + + } + + // InternalTextualScenario.g:1374:3: ( (lv_target_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:1375:4: (lv_target_1_0= RULE_STRING ) + { + // InternalTextualScenario.g:1375:4: (lv_target_1_0= RULE_STRING ) + // InternalTextualScenario.g:1376:5: lv_target_1_0= RULE_STRING + { + lv_target_1_0=(Token)match(input,RULE_STRING,FOLLOW_13); + + newLeafNode(lv_target_1_0, grammarAccess.getFoundMessageAccess().getTargetSTRINGTerminalRuleCall_1_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getFoundMessageRule()); + } + setWithLastConsumed( + current, + "target", + lv_target_1_0, + "org.eclipse.xtext.common.Terminals.STRING"); + + + } + + + } + + // InternalTextualScenario.g:1392:3: ( (lv_execution_2_0= 'withExecution' ) )? + int alt13=2; + int LA13_0 = input.LA(1); + + if ( (LA13_0==22) ) { + alt13=1; + } + switch (alt13) { + case 1 : + // InternalTextualScenario.g:1393:4: (lv_execution_2_0= 'withExecution' ) + { + // InternalTextualScenario.g:1393:4: (lv_execution_2_0= 'withExecution' ) + // InternalTextualScenario.g:1394:5: lv_execution_2_0= 'withExecution' + { + lv_execution_2_0=(Token)match(input,22,FOLLOW_10); + + newLeafNode(lv_execution_2_0, grammarAccess.getFoundMessageAccess().getExecutionWithExecutionKeyword_2_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getFoundMessageRule()); + } + setWithLastConsumed(current, "execution", lv_execution_2_0, "withExecution"); + + + } + + + } + break; + + } + + // InternalTextualScenario.g:1406:3: ( (lv_doubleDot_3_0= ':' ) ) + // InternalTextualScenario.g:1407:4: (lv_doubleDot_3_0= ':' ) + { + // InternalTextualScenario.g:1407:4: (lv_doubleDot_3_0= ':' ) + // InternalTextualScenario.g:1408:5: lv_doubleDot_3_0= ':' + { + lv_doubleDot_3_0=(Token)match(input,24,FOLLOW_6); + + newLeafNode(lv_doubleDot_3_0, grammarAccess.getFoundMessageAccess().getDoubleDotColonKeyword_3_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getFoundMessageRule()); + } + setWithLastConsumed(current, "doubleDot", lv_doubleDot_3_0, ":"); + + + } + + + } + + // InternalTextualScenario.g:1420:3: ( (lv_name_4_0= RULE_STRING ) ) + // InternalTextualScenario.g:1421:4: (lv_name_4_0= RULE_STRING ) + { + // InternalTextualScenario.g:1421:4: (lv_name_4_0= RULE_STRING ) + // InternalTextualScenario.g:1422:5: lv_name_4_0= RULE_STRING + { + lv_name_4_0=(Token)match(input,RULE_STRING,FOLLOW_2); + + newLeafNode(lv_name_4_0, grammarAccess.getFoundMessageAccess().getNameSTRINGTerminalRuleCall_4_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getFoundMessageRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_4_0, + "org.eclipse.xtext.common.Terminals.STRING"); + + + } + + + } + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleFoundMessage" + + + // $ANTLR start "entryRuleParticipantDeactivation" + // InternalTextualScenario.g:1442:1: entryRuleParticipantDeactivation returns [EObject current=null] : iv_ruleParticipantDeactivation= ruleParticipantDeactivation EOF ; + public final EObject entryRuleParticipantDeactivation() throws RecognitionException { + EObject current = null; + + EObject iv_ruleParticipantDeactivation = null; + + + try { + // InternalTextualScenario.g:1442:64: (iv_ruleParticipantDeactivation= ruleParticipantDeactivation EOF ) + // InternalTextualScenario.g:1443:2: iv_ruleParticipantDeactivation= ruleParticipantDeactivation EOF + { + newCompositeNode(grammarAccess.getParticipantDeactivationRule()); + pushFollow(FOLLOW_1); + iv_ruleParticipantDeactivation=ruleParticipantDeactivation(); + + state._fsp--; + + current =iv_ruleParticipantDeactivation; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleParticipantDeactivation" + + + // $ANTLR start "ruleParticipantDeactivation" + // InternalTextualScenario.g:1449:1: ruleParticipantDeactivation returns [EObject current=null] : ( ( (lv_keyword_0_0= 'deactivate' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ; + public final EObject ruleParticipantDeactivation() throws RecognitionException { + EObject current = null; + + Token lv_keyword_0_0=null; + Token lv_name_1_0=null; + + + enterRule(); + + try { + // InternalTextualScenario.g:1455:2: ( ( ( (lv_keyword_0_0= 'deactivate' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) ) + // InternalTextualScenario.g:1456:2: ( ( (lv_keyword_0_0= 'deactivate' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) + { + // InternalTextualScenario.g:1456:2: ( ( (lv_keyword_0_0= 'deactivate' ) ) ( (lv_name_1_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:1457:3: ( (lv_keyword_0_0= 'deactivate' ) ) ( (lv_name_1_0= RULE_STRING ) ) + { + // InternalTextualScenario.g:1457:3: ( (lv_keyword_0_0= 'deactivate' ) ) + // InternalTextualScenario.g:1458:4: (lv_keyword_0_0= 'deactivate' ) + { + // InternalTextualScenario.g:1458:4: (lv_keyword_0_0= 'deactivate' ) + // InternalTextualScenario.g:1459:5: lv_keyword_0_0= 'deactivate' + { + lv_keyword_0_0=(Token)match(input,30,FOLLOW_6); + + newLeafNode(lv_keyword_0_0, grammarAccess.getParticipantDeactivationAccess().getKeywordDeactivateKeyword_0_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getParticipantDeactivationRule()); + } + setWithLastConsumed(current, "keyword", lv_keyword_0_0, "deactivate"); + + + } + + + } + + // InternalTextualScenario.g:1471:3: ( (lv_name_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:1472:4: (lv_name_1_0= RULE_STRING ) + { + // InternalTextualScenario.g:1472:4: (lv_name_1_0= RULE_STRING ) + // InternalTextualScenario.g:1473:5: lv_name_1_0= RULE_STRING + { + lv_name_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); + + newLeafNode(lv_name_1_0, grammarAccess.getParticipantDeactivationAccess().getNameSTRINGTerminalRuleCall_1_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getParticipantDeactivationRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_1_0, + "org.eclipse.xtext.common.Terminals.STRING"); + + + } + + + } + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleParticipantDeactivation" + + + // $ANTLR start "entryRuleCombinedFragment" + // InternalTextualScenario.g:1493:1: entryRuleCombinedFragment returns [EObject current=null] : iv_ruleCombinedFragment= ruleCombinedFragment EOF ; + public final EObject entryRuleCombinedFragment() throws RecognitionException { + EObject current = null; + + EObject iv_ruleCombinedFragment = null; + + + try { + // InternalTextualScenario.g:1493:57: (iv_ruleCombinedFragment= ruleCombinedFragment EOF ) + // InternalTextualScenario.g:1494:2: iv_ruleCombinedFragment= ruleCombinedFragment EOF + { + newCompositeNode(grammarAccess.getCombinedFragmentRule()); + pushFollow(FOLLOW_1); + iv_ruleCombinedFragment=ruleCombinedFragment(); + + state._fsp--; + + current =iv_ruleCombinedFragment; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleCombinedFragment" + + + // $ANTLR start "ruleCombinedFragment" + // InternalTextualScenario.g:1500:1: ruleCombinedFragment returns [EObject current=null] : ( ( ( (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) ) ) ( (lv_expression_1_0= RULE_STRING ) )? ( (lv_over_2_0= 'over' ) ) ( (lv_timelines_3_0= RULE_STRING ) )+ ( (lv_block_4_0= ruleBlock ) ) ( (lv_operands_5_0= ruleOperand ) )* ) ; + public final EObject ruleCombinedFragment() throws RecognitionException { + EObject current = null; + + Token lv_keyword_0_1=null; + Token lv_keyword_0_2=null; + Token lv_keyword_0_3=null; + Token lv_keyword_0_4=null; + Token lv_keyword_0_5=null; + Token lv_keyword_0_6=null; + Token lv_keyword_0_7=null; + Token lv_keyword_0_8=null; + Token lv_keyword_0_9=null; + Token lv_keyword_0_10=null; + Token lv_keyword_0_11=null; + Token lv_expression_1_0=null; + Token lv_over_2_0=null; + Token lv_timelines_3_0=null; + EObject lv_block_4_0 = null; + + EObject lv_operands_5_0 = null; + + + + enterRule(); + + try { + // InternalTextualScenario.g:1506:2: ( ( ( ( (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) ) ) ( (lv_expression_1_0= RULE_STRING ) )? ( (lv_over_2_0= 'over' ) ) ( (lv_timelines_3_0= RULE_STRING ) )+ ( (lv_block_4_0= ruleBlock ) ) ( (lv_operands_5_0= ruleOperand ) )* ) ) + // InternalTextualScenario.g:1507:2: ( ( ( (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) ) ) ( (lv_expression_1_0= RULE_STRING ) )? ( (lv_over_2_0= 'over' ) ) ( (lv_timelines_3_0= RULE_STRING ) )+ ( (lv_block_4_0= ruleBlock ) ) ( (lv_operands_5_0= ruleOperand ) )* ) + { + // InternalTextualScenario.g:1507:2: ( ( ( (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) ) ) ( (lv_expression_1_0= RULE_STRING ) )? ( (lv_over_2_0= 'over' ) ) ( (lv_timelines_3_0= RULE_STRING ) )+ ( (lv_block_4_0= ruleBlock ) ) ( (lv_operands_5_0= ruleOperand ) )* ) + // InternalTextualScenario.g:1508:3: ( ( (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) ) ) ( (lv_expression_1_0= RULE_STRING ) )? ( (lv_over_2_0= 'over' ) ) ( (lv_timelines_3_0= RULE_STRING ) )+ ( (lv_block_4_0= ruleBlock ) ) ( (lv_operands_5_0= ruleOperand ) )* + { + // InternalTextualScenario.g:1508:3: ( ( (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) ) ) + // InternalTextualScenario.g:1509:4: ( (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) ) + { + // InternalTextualScenario.g:1509:4: ( (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) ) + // InternalTextualScenario.g:1510:5: (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) + { + // InternalTextualScenario.g:1510:5: (lv_keyword_0_1= 'alt' | lv_keyword_0_2= 'loop' | lv_keyword_0_3= 'par' | lv_keyword_0_4= 'assert' | lv_keyword_0_5= 'critical' | lv_keyword_0_6= 'ignore' | lv_keyword_0_7= 'neg' | lv_keyword_0_8= 'opt' | lv_keyword_0_9= 'seq' | lv_keyword_0_10= 'strict' | lv_keyword_0_11= 'unset' ) + int alt14=11; + switch ( input.LA(1) ) { + case 31: + { + alt14=1; + } + break; + case 32: + { + alt14=2; + } + break; + case 33: + { + alt14=3; } break; case 34: { - alt12=6; + alt14=4; } break; case 35: { - alt12=7; + alt14=5; } break; case 36: { - alt12=8; + alt14=6; } break; case 37: { - alt12=9; + alt14=7; } break; case 38: { - alt12=10; + alt14=8; } break; case 39: { - alt12=11; + alt14=9; + } + break; + case 40: + { + alt14=10; + } + break; + case 41: + { + alt14=11; } break; default: NoViableAltException nvae = - new NoViableAltException("", 12, 0, input); + new NoViableAltException("", 14, 0, input); throw nvae; } - switch (alt12) { + switch (alt14) { case 1 : - // InternalTextualScenario.g:1277:6: lv_keyword_0_1= 'alt' + // InternalTextualScenario.g:1511:6: lv_keyword_0_1= 'alt' { - lv_keyword_0_1=(Token)match(input,29,FOLLOW_6); + lv_keyword_0_1=(Token)match(input,31,FOLLOW_15); newLeafNode(lv_keyword_0_1, grammarAccess.getCombinedFragmentAccess().getKeywordAltKeyword_0_0_0()); @@ -3330,9 +3907,9 @@ public final EObject ruleCombinedFragment() throws RecognitionException { } break; case 2 : - // InternalTextualScenario.g:1288:6: lv_keyword_0_2= 'loop' + // InternalTextualScenario.g:1522:6: lv_keyword_0_2= 'loop' { - lv_keyword_0_2=(Token)match(input,30,FOLLOW_6); + lv_keyword_0_2=(Token)match(input,32,FOLLOW_15); newLeafNode(lv_keyword_0_2, grammarAccess.getCombinedFragmentAccess().getKeywordLoopKeyword_0_0_1()); @@ -3346,9 +3923,9 @@ public final EObject ruleCombinedFragment() throws RecognitionException { } break; case 3 : - // InternalTextualScenario.g:1299:6: lv_keyword_0_3= 'par' + // InternalTextualScenario.g:1533:6: lv_keyword_0_3= 'par' { - lv_keyword_0_3=(Token)match(input,31,FOLLOW_6); + lv_keyword_0_3=(Token)match(input,33,FOLLOW_15); newLeafNode(lv_keyword_0_3, grammarAccess.getCombinedFragmentAccess().getKeywordParKeyword_0_0_2()); @@ -3362,9 +3939,9 @@ public final EObject ruleCombinedFragment() throws RecognitionException { } break; case 4 : - // InternalTextualScenario.g:1310:6: lv_keyword_0_4= 'assert' + // InternalTextualScenario.g:1544:6: lv_keyword_0_4= 'assert' { - lv_keyword_0_4=(Token)match(input,32,FOLLOW_6); + lv_keyword_0_4=(Token)match(input,34,FOLLOW_15); newLeafNode(lv_keyword_0_4, grammarAccess.getCombinedFragmentAccess().getKeywordAssertKeyword_0_0_3()); @@ -3378,9 +3955,9 @@ public final EObject ruleCombinedFragment() throws RecognitionException { } break; case 5 : - // InternalTextualScenario.g:1321:6: lv_keyword_0_5= 'critical' + // InternalTextualScenario.g:1555:6: lv_keyword_0_5= 'critical' { - lv_keyword_0_5=(Token)match(input,33,FOLLOW_6); + lv_keyword_0_5=(Token)match(input,35,FOLLOW_15); newLeafNode(lv_keyword_0_5, grammarAccess.getCombinedFragmentAccess().getKeywordCriticalKeyword_0_0_4()); @@ -3394,9 +3971,9 @@ public final EObject ruleCombinedFragment() throws RecognitionException { } break; case 6 : - // InternalTextualScenario.g:1332:6: lv_keyword_0_6= 'ignore' + // InternalTextualScenario.g:1566:6: lv_keyword_0_6= 'ignore' { - lv_keyword_0_6=(Token)match(input,34,FOLLOW_6); + lv_keyword_0_6=(Token)match(input,36,FOLLOW_15); newLeafNode(lv_keyword_0_6, grammarAccess.getCombinedFragmentAccess().getKeywordIgnoreKeyword_0_0_5()); @@ -3410,9 +3987,9 @@ public final EObject ruleCombinedFragment() throws RecognitionException { } break; case 7 : - // InternalTextualScenario.g:1343:6: lv_keyword_0_7= 'neg' + // InternalTextualScenario.g:1577:6: lv_keyword_0_7= 'neg' { - lv_keyword_0_7=(Token)match(input,35,FOLLOW_6); + lv_keyword_0_7=(Token)match(input,37,FOLLOW_15); newLeafNode(lv_keyword_0_7, grammarAccess.getCombinedFragmentAccess().getKeywordNegKeyword_0_0_6()); @@ -3426,9 +4003,9 @@ public final EObject ruleCombinedFragment() throws RecognitionException { } break; case 8 : - // InternalTextualScenario.g:1354:6: lv_keyword_0_8= 'opt' + // InternalTextualScenario.g:1588:6: lv_keyword_0_8= 'opt' { - lv_keyword_0_8=(Token)match(input,36,FOLLOW_6); + lv_keyword_0_8=(Token)match(input,38,FOLLOW_15); newLeafNode(lv_keyword_0_8, grammarAccess.getCombinedFragmentAccess().getKeywordOptKeyword_0_0_7()); @@ -3442,9 +4019,9 @@ public final EObject ruleCombinedFragment() throws RecognitionException { } break; case 9 : - // InternalTextualScenario.g:1365:6: lv_keyword_0_9= 'seq' + // InternalTextualScenario.g:1599:6: lv_keyword_0_9= 'seq' { - lv_keyword_0_9=(Token)match(input,37,FOLLOW_6); + lv_keyword_0_9=(Token)match(input,39,FOLLOW_15); newLeafNode(lv_keyword_0_9, grammarAccess.getCombinedFragmentAccess().getKeywordSeqKeyword_0_0_8()); @@ -3458,9 +4035,9 @@ public final EObject ruleCombinedFragment() throws RecognitionException { } break; case 10 : - // InternalTextualScenario.g:1376:6: lv_keyword_0_10= 'strict' + // InternalTextualScenario.g:1610:6: lv_keyword_0_10= 'strict' { - lv_keyword_0_10=(Token)match(input,38,FOLLOW_6); + lv_keyword_0_10=(Token)match(input,40,FOLLOW_15); newLeafNode(lv_keyword_0_10, grammarAccess.getCombinedFragmentAccess().getKeywordStrictKeyword_0_0_9()); @@ -3474,9 +4051,9 @@ public final EObject ruleCombinedFragment() throws RecognitionException { } break; case 11 : - // InternalTextualScenario.g:1387:6: lv_keyword_0_11= 'unset' + // InternalTextualScenario.g:1621:6: lv_keyword_0_11= 'unset' { - lv_keyword_0_11=(Token)match(input,39,FOLLOW_6); + lv_keyword_0_11=(Token)match(input,41,FOLLOW_15); newLeafNode(lv_keyword_0_11, grammarAccess.getCombinedFragmentAccess().getKeywordUnsetKeyword_0_0_10()); @@ -3498,39 +4075,50 @@ public final EObject ruleCombinedFragment() throws RecognitionException { } - // InternalTextualScenario.g:1400:3: ( (lv_expression_1_0= RULE_STRING ) ) - // InternalTextualScenario.g:1401:4: (lv_expression_1_0= RULE_STRING ) - { - // InternalTextualScenario.g:1401:4: (lv_expression_1_0= RULE_STRING ) - // InternalTextualScenario.g:1402:5: lv_expression_1_0= RULE_STRING - { - lv_expression_1_0=(Token)match(input,RULE_STRING,FOLLOW_14); + // InternalTextualScenario.g:1634:3: ( (lv_expression_1_0= RULE_STRING ) )? + int alt15=2; + int LA15_0 = input.LA(1); - newLeafNode(lv_expression_1_0, grammarAccess.getCombinedFragmentAccess().getExpressionSTRINGTerminalRuleCall_1_0()); - + if ( (LA15_0==RULE_STRING) ) { + alt15=1; + } + switch (alt15) { + case 1 : + // InternalTextualScenario.g:1635:4: (lv_expression_1_0= RULE_STRING ) + { + // InternalTextualScenario.g:1635:4: (lv_expression_1_0= RULE_STRING ) + // InternalTextualScenario.g:1636:5: lv_expression_1_0= RULE_STRING + { + lv_expression_1_0=(Token)match(input,RULE_STRING,FOLLOW_16); - if (current==null) { - current = createModelElement(grammarAccess.getCombinedFragmentRule()); - } - setWithLastConsumed( - current, - "expression", - lv_expression_1_0, - "org.eclipse.xtext.common.Terminals.STRING"); - + newLeafNode(lv_expression_1_0, grammarAccess.getCombinedFragmentAccess().getExpressionSTRINGTerminalRuleCall_1_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getCombinedFragmentRule()); + } + setWithLastConsumed( + current, + "expression", + lv_expression_1_0, + "org.eclipse.xtext.common.Terminals.STRING"); + + + } - } + } + break; } - // InternalTextualScenario.g:1418:3: ( (lv_over_2_0= 'over' ) ) - // InternalTextualScenario.g:1419:4: (lv_over_2_0= 'over' ) + // InternalTextualScenario.g:1652:3: ( (lv_over_2_0= 'over' ) ) + // InternalTextualScenario.g:1653:4: (lv_over_2_0= 'over' ) { - // InternalTextualScenario.g:1419:4: (lv_over_2_0= 'over' ) - // InternalTextualScenario.g:1420:5: lv_over_2_0= 'over' + // InternalTextualScenario.g:1653:4: (lv_over_2_0= 'over' ) + // InternalTextualScenario.g:1654:5: lv_over_2_0= 'over' { - lv_over_2_0=(Token)match(input,40,FOLLOW_6); + lv_over_2_0=(Token)match(input,42,FOLLOW_6); newLeafNode(lv_over_2_0, grammarAccess.getCombinedFragmentAccess().getOverOverKeyword_2_0()); @@ -3546,26 +4134,26 @@ public final EObject ruleCombinedFragment() throws RecognitionException { } - // InternalTextualScenario.g:1432:3: ( (lv_timelines_3_0= RULE_STRING ) )+ - int cnt13=0; - loop13: + // InternalTextualScenario.g:1666:3: ( (lv_timelines_3_0= RULE_STRING ) )+ + int cnt16=0; + loop16: do { - int alt13=2; - int LA13_0 = input.LA(1); + int alt16=2; + int LA16_0 = input.LA(1); - if ( (LA13_0==RULE_STRING) ) { - alt13=1; + if ( (LA16_0==RULE_STRING) ) { + alt16=1; } - switch (alt13) { + switch (alt16) { case 1 : - // InternalTextualScenario.g:1433:4: (lv_timelines_3_0= RULE_STRING ) + // InternalTextualScenario.g:1667:4: (lv_timelines_3_0= RULE_STRING ) { - // InternalTextualScenario.g:1433:4: (lv_timelines_3_0= RULE_STRING ) - // InternalTextualScenario.g:1434:5: lv_timelines_3_0= RULE_STRING + // InternalTextualScenario.g:1667:4: (lv_timelines_3_0= RULE_STRING ) + // InternalTextualScenario.g:1668:5: lv_timelines_3_0= RULE_STRING { - lv_timelines_3_0=(Token)match(input,RULE_STRING,FOLLOW_15); + lv_timelines_3_0=(Token)match(input,RULE_STRING,FOLLOW_17); newLeafNode(lv_timelines_3_0, grammarAccess.getCombinedFragmentAccess().getTimelinesSTRINGTerminalRuleCall_3_0()); @@ -3587,24 +4175,24 @@ public final EObject ruleCombinedFragment() throws RecognitionException { break; default : - if ( cnt13 >= 1 ) break loop13; + if ( cnt16 >= 1 ) break loop16; EarlyExitException eee = - new EarlyExitException(13, input); + new EarlyExitException(16, input); throw eee; } - cnt13++; + cnt16++; } while (true); - // InternalTextualScenario.g:1450:3: ( (lv_block_4_0= ruleBlock ) ) - // InternalTextualScenario.g:1451:4: (lv_block_4_0= ruleBlock ) + // InternalTextualScenario.g:1684:3: ( (lv_block_4_0= ruleBlock ) ) + // InternalTextualScenario.g:1685:4: (lv_block_4_0= ruleBlock ) { - // InternalTextualScenario.g:1451:4: (lv_block_4_0= ruleBlock ) - // InternalTextualScenario.g:1452:5: lv_block_4_0= ruleBlock + // InternalTextualScenario.g:1685:4: (lv_block_4_0= ruleBlock ) + // InternalTextualScenario.g:1686:5: lv_block_4_0= ruleBlock { newCompositeNode(grammarAccess.getCombinedFragmentAccess().getBlockBlockParserRuleCall_4_0()); - pushFollow(FOLLOW_16); + pushFollow(FOLLOW_18); lv_block_4_0=ruleBlock(); state._fsp--; @@ -3626,37 +4214,37 @@ public final EObject ruleCombinedFragment() throws RecognitionException { } - // InternalTextualScenario.g:1469:3: ( (lv_operands_5_0= ruleOperand ) )* - loop14: + // InternalTextualScenario.g:1703:3: ( (lv_operands_5_0= ruleOperand ) )* + loop17: do { - int alt14=2; - int LA14_0 = input.LA(1); + int alt17=2; + int LA17_0 = input.LA(1); - if ( (LA14_0==RULE_STRING) ) { - int LA14_2 = input.LA(2); + if ( (LA17_0==RULE_STRING) ) { + int LA17_2 = input.LA(2); - if ( (LA14_2==12) ) { - alt14=1; + if ( (LA17_2==12) ) { + alt17=1; } } - else if ( (LA14_0==41) ) { - alt14=1; + else if ( (LA17_0==12||LA17_0==43) ) { + alt17=1; } - switch (alt14) { + switch (alt17) { case 1 : - // InternalTextualScenario.g:1470:4: (lv_operands_5_0= ruleOperand ) + // InternalTextualScenario.g:1704:4: (lv_operands_5_0= ruleOperand ) { - // InternalTextualScenario.g:1470:4: (lv_operands_5_0= ruleOperand ) - // InternalTextualScenario.g:1471:5: lv_operands_5_0= ruleOperand + // InternalTextualScenario.g:1704:4: (lv_operands_5_0= ruleOperand ) + // InternalTextualScenario.g:1705:5: lv_operands_5_0= ruleOperand { newCompositeNode(grammarAccess.getCombinedFragmentAccess().getOperandsOperandParserRuleCall_5_0()); - pushFollow(FOLLOW_16); + pushFollow(FOLLOW_18); lv_operands_5_0=ruleOperand(); state._fsp--; @@ -3680,7 +4268,7 @@ else if ( (LA14_0==41) ) { break; default : - break loop14; + break loop17; } } while (true); @@ -3707,7 +4295,7 @@ else if ( (LA14_0==41) ) { // $ANTLR start "entryRuleOperand" - // InternalTextualScenario.g:1492:1: entryRuleOperand returns [EObject current=null] : iv_ruleOperand= ruleOperand EOF ; + // InternalTextualScenario.g:1726:1: entryRuleOperand returns [EObject current=null] : iv_ruleOperand= ruleOperand EOF ; public final EObject entryRuleOperand() throws RecognitionException { EObject current = null; @@ -3715,8 +4303,8 @@ public final EObject entryRuleOperand() throws RecognitionException { try { - // InternalTextualScenario.g:1492:48: (iv_ruleOperand= ruleOperand EOF ) - // InternalTextualScenario.g:1493:2: iv_ruleOperand= ruleOperand EOF + // InternalTextualScenario.g:1726:48: (iv_ruleOperand= ruleOperand EOF ) + // InternalTextualScenario.g:1727:2: iv_ruleOperand= ruleOperand EOF { newCompositeNode(grammarAccess.getOperandRule()); pushFollow(FOLLOW_1); @@ -3743,7 +4331,7 @@ public final EObject entryRuleOperand() throws RecognitionException { // $ANTLR start "ruleOperand" - // InternalTextualScenario.g:1499:1: ruleOperand returns [EObject current=null] : ( ( (lv_keyword_0_0= 'else' ) )? ( (lv_expression_1_0= RULE_STRING ) ) ( (lv_block_2_0= ruleBlock ) ) ) ; + // InternalTextualScenario.g:1733:1: ruleOperand returns [EObject current=null] : ( ( (lv_keyword_0_0= 'else' ) )? ( (lv_expression_1_0= RULE_STRING ) )? ( (lv_block_2_0= ruleBlock ) ) ) ; public final EObject ruleOperand() throws RecognitionException { EObject current = null; @@ -3756,27 +4344,27 @@ public final EObject ruleOperand() throws RecognitionException { enterRule(); try { - // InternalTextualScenario.g:1505:2: ( ( ( (lv_keyword_0_0= 'else' ) )? ( (lv_expression_1_0= RULE_STRING ) ) ( (lv_block_2_0= ruleBlock ) ) ) ) - // InternalTextualScenario.g:1506:2: ( ( (lv_keyword_0_0= 'else' ) )? ( (lv_expression_1_0= RULE_STRING ) ) ( (lv_block_2_0= ruleBlock ) ) ) + // InternalTextualScenario.g:1739:2: ( ( ( (lv_keyword_0_0= 'else' ) )? ( (lv_expression_1_0= RULE_STRING ) )? ( (lv_block_2_0= ruleBlock ) ) ) ) + // InternalTextualScenario.g:1740:2: ( ( (lv_keyword_0_0= 'else' ) )? ( (lv_expression_1_0= RULE_STRING ) )? ( (lv_block_2_0= ruleBlock ) ) ) { - // InternalTextualScenario.g:1506:2: ( ( (lv_keyword_0_0= 'else' ) )? ( (lv_expression_1_0= RULE_STRING ) ) ( (lv_block_2_0= ruleBlock ) ) ) - // InternalTextualScenario.g:1507:3: ( (lv_keyword_0_0= 'else' ) )? ( (lv_expression_1_0= RULE_STRING ) ) ( (lv_block_2_0= ruleBlock ) ) + // InternalTextualScenario.g:1740:2: ( ( (lv_keyword_0_0= 'else' ) )? ( (lv_expression_1_0= RULE_STRING ) )? ( (lv_block_2_0= ruleBlock ) ) ) + // InternalTextualScenario.g:1741:3: ( (lv_keyword_0_0= 'else' ) )? ( (lv_expression_1_0= RULE_STRING ) )? ( (lv_block_2_0= ruleBlock ) ) { - // InternalTextualScenario.g:1507:3: ( (lv_keyword_0_0= 'else' ) )? - int alt15=2; - int LA15_0 = input.LA(1); + // InternalTextualScenario.g:1741:3: ( (lv_keyword_0_0= 'else' ) )? + int alt18=2; + int LA18_0 = input.LA(1); - if ( (LA15_0==41) ) { - alt15=1; + if ( (LA18_0==43) ) { + alt18=1; } - switch (alt15) { + switch (alt18) { case 1 : - // InternalTextualScenario.g:1508:4: (lv_keyword_0_0= 'else' ) + // InternalTextualScenario.g:1742:4: (lv_keyword_0_0= 'else' ) { - // InternalTextualScenario.g:1508:4: (lv_keyword_0_0= 'else' ) - // InternalTextualScenario.g:1509:5: lv_keyword_0_0= 'else' + // InternalTextualScenario.g:1742:4: (lv_keyword_0_0= 'else' ) + // InternalTextualScenario.g:1743:5: lv_keyword_0_0= 'else' { - lv_keyword_0_0=(Token)match(input,41,FOLLOW_6); + lv_keyword_0_0=(Token)match(input,43,FOLLOW_17); newLeafNode(lv_keyword_0_0, grammarAccess.getOperandAccess().getKeywordElseKeyword_0_0()); @@ -3795,37 +4383,48 @@ public final EObject ruleOperand() throws RecognitionException { } - // InternalTextualScenario.g:1521:3: ( (lv_expression_1_0= RULE_STRING ) ) - // InternalTextualScenario.g:1522:4: (lv_expression_1_0= RULE_STRING ) - { - // InternalTextualScenario.g:1522:4: (lv_expression_1_0= RULE_STRING ) - // InternalTextualScenario.g:1523:5: lv_expression_1_0= RULE_STRING - { - lv_expression_1_0=(Token)match(input,RULE_STRING,FOLLOW_3); + // InternalTextualScenario.g:1755:3: ( (lv_expression_1_0= RULE_STRING ) )? + int alt19=2; + int LA19_0 = input.LA(1); - newLeafNode(lv_expression_1_0, grammarAccess.getOperandAccess().getExpressionSTRINGTerminalRuleCall_1_0()); - + if ( (LA19_0==RULE_STRING) ) { + alt19=1; + } + switch (alt19) { + case 1 : + // InternalTextualScenario.g:1756:4: (lv_expression_1_0= RULE_STRING ) + { + // InternalTextualScenario.g:1756:4: (lv_expression_1_0= RULE_STRING ) + // InternalTextualScenario.g:1757:5: lv_expression_1_0= RULE_STRING + { + lv_expression_1_0=(Token)match(input,RULE_STRING,FOLLOW_3); - if (current==null) { - current = createModelElement(grammarAccess.getOperandRule()); - } - setWithLastConsumed( - current, - "expression", - lv_expression_1_0, - "org.eclipse.xtext.common.Terminals.STRING"); - + newLeafNode(lv_expression_1_0, grammarAccess.getOperandAccess().getExpressionSTRINGTerminalRuleCall_1_0()); + - } + if (current==null) { + current = createModelElement(grammarAccess.getOperandRule()); + } + setWithLastConsumed( + current, + "expression", + lv_expression_1_0, + "org.eclipse.xtext.common.Terminals.STRING"); + + } + + + } + break; } - // InternalTextualScenario.g:1539:3: ( (lv_block_2_0= ruleBlock ) ) - // InternalTextualScenario.g:1540:4: (lv_block_2_0= ruleBlock ) + // InternalTextualScenario.g:1773:3: ( (lv_block_2_0= ruleBlock ) ) + // InternalTextualScenario.g:1774:4: (lv_block_2_0= ruleBlock ) { - // InternalTextualScenario.g:1540:4: (lv_block_2_0= ruleBlock ) - // InternalTextualScenario.g:1541:5: lv_block_2_0= ruleBlock + // InternalTextualScenario.g:1774:4: (lv_block_2_0= ruleBlock ) + // InternalTextualScenario.g:1775:5: lv_block_2_0= ruleBlock { newCompositeNode(grammarAccess.getOperandAccess().getBlockBlockParserRuleCall_2_0()); @@ -3875,7 +4474,7 @@ public final EObject ruleOperand() throws RecognitionException { // $ANTLR start "entryRuleBlock" - // InternalTextualScenario.g:1562:1: entryRuleBlock returns [EObject current=null] : iv_ruleBlock= ruleBlock EOF ; + // InternalTextualScenario.g:1796:1: entryRuleBlock returns [EObject current=null] : iv_ruleBlock= ruleBlock EOF ; public final EObject entryRuleBlock() throws RecognitionException { EObject current = null; @@ -3883,8 +4482,8 @@ public final EObject entryRuleBlock() throws RecognitionException { try { - // InternalTextualScenario.g:1562:46: (iv_ruleBlock= ruleBlock EOF ) - // InternalTextualScenario.g:1563:2: iv_ruleBlock= ruleBlock EOF + // InternalTextualScenario.g:1796:46: (iv_ruleBlock= ruleBlock EOF ) + // InternalTextualScenario.g:1797:2: iv_ruleBlock= ruleBlock EOF { newCompositeNode(grammarAccess.getBlockRule()); pushFollow(FOLLOW_1); @@ -3911,7 +4510,7 @@ public final EObject entryRuleBlock() throws RecognitionException { // $ANTLR start "ruleBlock" - // InternalTextualScenario.g:1569:1: ruleBlock returns [EObject current=null] : ( ( (lv_begin_0_0= '{' ) ) ( (lv_blockElements_1_0= ruleElement ) )* ( (lv_end_2_0= '}' ) ) ) ; + // InternalTextualScenario.g:1803:1: ruleBlock returns [EObject current=null] : ( ( (lv_begin_0_0= '{' ) ) ( (lv_blockElements_1_0= ruleElement ) )* ( (lv_end_2_0= '}' ) ) ) ; public final EObject ruleBlock() throws RecognitionException { EObject current = null; @@ -3924,17 +4523,17 @@ public final EObject ruleBlock() throws RecognitionException { enterRule(); try { - // InternalTextualScenario.g:1575:2: ( ( ( (lv_begin_0_0= '{' ) ) ( (lv_blockElements_1_0= ruleElement ) )* ( (lv_end_2_0= '}' ) ) ) ) - // InternalTextualScenario.g:1576:2: ( ( (lv_begin_0_0= '{' ) ) ( (lv_blockElements_1_0= ruleElement ) )* ( (lv_end_2_0= '}' ) ) ) + // InternalTextualScenario.g:1809:2: ( ( ( (lv_begin_0_0= '{' ) ) ( (lv_blockElements_1_0= ruleElement ) )* ( (lv_end_2_0= '}' ) ) ) ) + // InternalTextualScenario.g:1810:2: ( ( (lv_begin_0_0= '{' ) ) ( (lv_blockElements_1_0= ruleElement ) )* ( (lv_end_2_0= '}' ) ) ) { - // InternalTextualScenario.g:1576:2: ( ( (lv_begin_0_0= '{' ) ) ( (lv_blockElements_1_0= ruleElement ) )* ( (lv_end_2_0= '}' ) ) ) - // InternalTextualScenario.g:1577:3: ( (lv_begin_0_0= '{' ) ) ( (lv_blockElements_1_0= ruleElement ) )* ( (lv_end_2_0= '}' ) ) + // InternalTextualScenario.g:1810:2: ( ( (lv_begin_0_0= '{' ) ) ( (lv_blockElements_1_0= ruleElement ) )* ( (lv_end_2_0= '}' ) ) ) + // InternalTextualScenario.g:1811:3: ( (lv_begin_0_0= '{' ) ) ( (lv_blockElements_1_0= ruleElement ) )* ( (lv_end_2_0= '}' ) ) { - // InternalTextualScenario.g:1577:3: ( (lv_begin_0_0= '{' ) ) - // InternalTextualScenario.g:1578:4: (lv_begin_0_0= '{' ) + // InternalTextualScenario.g:1811:3: ( (lv_begin_0_0= '{' ) ) + // InternalTextualScenario.g:1812:4: (lv_begin_0_0= '{' ) { - // InternalTextualScenario.g:1578:4: (lv_begin_0_0= '{' ) - // InternalTextualScenario.g:1579:5: lv_begin_0_0= '{' + // InternalTextualScenario.g:1812:4: (lv_begin_0_0= '{' ) + // InternalTextualScenario.g:1813:5: lv_begin_0_0= '{' { lv_begin_0_0=(Token)match(input,12,FOLLOW_5); @@ -3952,23 +4551,23 @@ public final EObject ruleBlock() throws RecognitionException { } - // InternalTextualScenario.g:1591:3: ( (lv_blockElements_1_0= ruleElement ) )* - loop16: + // InternalTextualScenario.g:1825:3: ( (lv_blockElements_1_0= ruleElement ) )* + loop20: do { - int alt16=2; - int LA16_0 = input.LA(1); + int alt20=2; + int LA20_0 = input.LA(1); - if ( (LA16_0==RULE_STRING||(LA16_0>=27 && LA16_0<=39)||LA16_0==42) ) { - alt16=1; + if ( (LA20_0==RULE_STRING||LA20_0==27||(LA20_0>=29 && LA20_0<=41)||LA20_0==44||LA20_0==47) ) { + alt20=1; } - switch (alt16) { + switch (alt20) { case 1 : - // InternalTextualScenario.g:1592:4: (lv_blockElements_1_0= ruleElement ) + // InternalTextualScenario.g:1826:4: (lv_blockElements_1_0= ruleElement ) { - // InternalTextualScenario.g:1592:4: (lv_blockElements_1_0= ruleElement ) - // InternalTextualScenario.g:1593:5: lv_blockElements_1_0= ruleElement + // InternalTextualScenario.g:1826:4: (lv_blockElements_1_0= ruleElement ) + // InternalTextualScenario.g:1827:5: lv_blockElements_1_0= ruleElement { newCompositeNode(grammarAccess.getBlockAccess().getBlockElementsElementParserRuleCall_1_0()); @@ -3997,15 +4596,15 @@ public final EObject ruleBlock() throws RecognitionException { break; default : - break loop16; + break loop20; } } while (true); - // InternalTextualScenario.g:1610:3: ( (lv_end_2_0= '}' ) ) - // InternalTextualScenario.g:1611:4: (lv_end_2_0= '}' ) + // InternalTextualScenario.g:1844:3: ( (lv_end_2_0= '}' ) ) + // InternalTextualScenario.g:1845:4: (lv_end_2_0= '}' ) { - // InternalTextualScenario.g:1611:4: (lv_end_2_0= '}' ) - // InternalTextualScenario.g:1612:5: lv_end_2_0= '}' + // InternalTextualScenario.g:1845:4: (lv_end_2_0= '}' ) + // InternalTextualScenario.g:1846:5: lv_end_2_0= '}' { lv_end_2_0=(Token)match(input,13,FOLLOW_2); @@ -4046,7 +4645,7 @@ public final EObject ruleBlock() throws RecognitionException { // $ANTLR start "entryRuleStateFragment" - // InternalTextualScenario.g:1628:1: entryRuleStateFragment returns [EObject current=null] : iv_ruleStateFragment= ruleStateFragment EOF ; + // InternalTextualScenario.g:1862:1: entryRuleStateFragment returns [EObject current=null] : iv_ruleStateFragment= ruleStateFragment EOF ; public final EObject entryRuleStateFragment() throws RecognitionException { EObject current = null; @@ -4054,8 +4653,8 @@ public final EObject entryRuleStateFragment() throws RecognitionException { try { - // InternalTextualScenario.g:1628:54: (iv_ruleStateFragment= ruleStateFragment EOF ) - // InternalTextualScenario.g:1629:2: iv_ruleStateFragment= ruleStateFragment EOF + // InternalTextualScenario.g:1862:54: (iv_ruleStateFragment= ruleStateFragment EOF ) + // InternalTextualScenario.g:1863:2: iv_ruleStateFragment= ruleStateFragment EOF { newCompositeNode(grammarAccess.getStateFragmentRule()); pushFollow(FOLLOW_1); @@ -4082,7 +4681,7 @@ public final EObject entryRuleStateFragment() throws RecognitionException { // $ANTLR start "ruleStateFragment" - // InternalTextualScenario.g:1635:1: ruleStateFragment returns [EObject current=null] : ( ( (lv_on_0_0= 'on' ) ) ( (lv_timeline_1_0= RULE_STRING ) ) ( ( (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) ) ) ( (lv_name_3_0= RULE_STRING ) ) ) ; + // InternalTextualScenario.g:1869:1: ruleStateFragment returns [EObject current=null] : ( ( (lv_on_0_0= 'on' ) ) ( (lv_timeline_1_0= RULE_STRING ) ) ( ( (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) ) ) ( (lv_name_3_0= RULE_STRING ) ) ) ; public final EObject ruleStateFragment() throws RecognitionException { EObject current = null; @@ -4097,19 +4696,19 @@ public final EObject ruleStateFragment() throws RecognitionException { enterRule(); try { - // InternalTextualScenario.g:1641:2: ( ( ( (lv_on_0_0= 'on' ) ) ( (lv_timeline_1_0= RULE_STRING ) ) ( ( (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) ) ) ( (lv_name_3_0= RULE_STRING ) ) ) ) - // InternalTextualScenario.g:1642:2: ( ( (lv_on_0_0= 'on' ) ) ( (lv_timeline_1_0= RULE_STRING ) ) ( ( (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) ) ) ( (lv_name_3_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:1875:2: ( ( ( (lv_on_0_0= 'on' ) ) ( (lv_timeline_1_0= RULE_STRING ) ) ( ( (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) ) ) ( (lv_name_3_0= RULE_STRING ) ) ) ) + // InternalTextualScenario.g:1876:2: ( ( (lv_on_0_0= 'on' ) ) ( (lv_timeline_1_0= RULE_STRING ) ) ( ( (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) ) ) ( (lv_name_3_0= RULE_STRING ) ) ) { - // InternalTextualScenario.g:1642:2: ( ( (lv_on_0_0= 'on' ) ) ( (lv_timeline_1_0= RULE_STRING ) ) ( ( (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) ) ) ( (lv_name_3_0= RULE_STRING ) ) ) - // InternalTextualScenario.g:1643:3: ( (lv_on_0_0= 'on' ) ) ( (lv_timeline_1_0= RULE_STRING ) ) ( ( (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) ) ) ( (lv_name_3_0= RULE_STRING ) ) + // InternalTextualScenario.g:1876:2: ( ( (lv_on_0_0= 'on' ) ) ( (lv_timeline_1_0= RULE_STRING ) ) ( ( (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) ) ) ( (lv_name_3_0= RULE_STRING ) ) ) + // InternalTextualScenario.g:1877:3: ( (lv_on_0_0= 'on' ) ) ( (lv_timeline_1_0= RULE_STRING ) ) ( ( (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) ) ) ( (lv_name_3_0= RULE_STRING ) ) { - // InternalTextualScenario.g:1643:3: ( (lv_on_0_0= 'on' ) ) - // InternalTextualScenario.g:1644:4: (lv_on_0_0= 'on' ) + // InternalTextualScenario.g:1877:3: ( (lv_on_0_0= 'on' ) ) + // InternalTextualScenario.g:1878:4: (lv_on_0_0= 'on' ) { - // InternalTextualScenario.g:1644:4: (lv_on_0_0= 'on' ) - // InternalTextualScenario.g:1645:5: lv_on_0_0= 'on' + // InternalTextualScenario.g:1878:4: (lv_on_0_0= 'on' ) + // InternalTextualScenario.g:1879:5: lv_on_0_0= 'on' { - lv_on_0_0=(Token)match(input,42,FOLLOW_6); + lv_on_0_0=(Token)match(input,44,FOLLOW_6); newLeafNode(lv_on_0_0, grammarAccess.getStateFragmentAccess().getOnOnKeyword_0_0()); @@ -4125,13 +4724,13 @@ public final EObject ruleStateFragment() throws RecognitionException { } - // InternalTextualScenario.g:1657:3: ( (lv_timeline_1_0= RULE_STRING ) ) - // InternalTextualScenario.g:1658:4: (lv_timeline_1_0= RULE_STRING ) + // InternalTextualScenario.g:1891:3: ( (lv_timeline_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:1892:4: (lv_timeline_1_0= RULE_STRING ) { - // InternalTextualScenario.g:1658:4: (lv_timeline_1_0= RULE_STRING ) - // InternalTextualScenario.g:1659:5: lv_timeline_1_0= RULE_STRING + // InternalTextualScenario.g:1892:4: (lv_timeline_1_0= RULE_STRING ) + // InternalTextualScenario.g:1893:5: lv_timeline_1_0= RULE_STRING { - lv_timeline_1_0=(Token)match(input,RULE_STRING,FOLLOW_17); + lv_timeline_1_0=(Token)match(input,RULE_STRING,FOLLOW_19); newLeafNode(lv_timeline_1_0, grammarAccess.getStateFragmentAccess().getTimelineSTRINGTerminalRuleCall_1_0()); @@ -4151,42 +4750,42 @@ public final EObject ruleStateFragment() throws RecognitionException { } - // InternalTextualScenario.g:1675:3: ( ( (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) ) ) - // InternalTextualScenario.g:1676:4: ( (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) ) + // InternalTextualScenario.g:1909:3: ( ( (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) ) ) + // InternalTextualScenario.g:1910:4: ( (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) ) { - // InternalTextualScenario.g:1676:4: ( (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) ) - // InternalTextualScenario.g:1677:5: (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) + // InternalTextualScenario.g:1910:4: ( (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) ) + // InternalTextualScenario.g:1911:5: (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) { - // InternalTextualScenario.g:1677:5: (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) - int alt17=3; + // InternalTextualScenario.g:1911:5: (lv_keyword_2_1= 'state' | lv_keyword_2_2= 'mode' | lv_keyword_2_3= 'function' ) + int alt21=3; switch ( input.LA(1) ) { - case 43: + case 45: { - alt17=1; + alt21=1; } break; - case 44: + case 46: { - alt17=2; + alt21=2; } break; case 17: { - alt17=3; + alt21=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 17, 0, input); + new NoViableAltException("", 21, 0, input); throw nvae; } - switch (alt17) { + switch (alt21) { case 1 : - // InternalTextualScenario.g:1678:6: lv_keyword_2_1= 'state' + // InternalTextualScenario.g:1912:6: lv_keyword_2_1= 'state' { - lv_keyword_2_1=(Token)match(input,43,FOLLOW_6); + lv_keyword_2_1=(Token)match(input,45,FOLLOW_6); newLeafNode(lv_keyword_2_1, grammarAccess.getStateFragmentAccess().getKeywordStateKeyword_2_0_0()); @@ -4200,9 +4799,9 @@ public final EObject ruleStateFragment() throws RecognitionException { } break; case 2 : - // InternalTextualScenario.g:1689:6: lv_keyword_2_2= 'mode' + // InternalTextualScenario.g:1923:6: lv_keyword_2_2= 'mode' { - lv_keyword_2_2=(Token)match(input,44,FOLLOW_6); + lv_keyword_2_2=(Token)match(input,46,FOLLOW_6); newLeafNode(lv_keyword_2_2, grammarAccess.getStateFragmentAccess().getKeywordModeKeyword_2_0_1()); @@ -4216,7 +4815,7 @@ public final EObject ruleStateFragment() throws RecognitionException { } break; case 3 : - // InternalTextualScenario.g:1700:6: lv_keyword_2_3= 'function' + // InternalTextualScenario.g:1934:6: lv_keyword_2_3= 'function' { lv_keyword_2_3=(Token)match(input,17,FOLLOW_6); @@ -4240,11 +4839,11 @@ public final EObject ruleStateFragment() throws RecognitionException { } - // InternalTextualScenario.g:1713:3: ( (lv_name_3_0= RULE_STRING ) ) - // InternalTextualScenario.g:1714:4: (lv_name_3_0= RULE_STRING ) + // InternalTextualScenario.g:1947:3: ( (lv_name_3_0= RULE_STRING ) ) + // InternalTextualScenario.g:1948:4: (lv_name_3_0= RULE_STRING ) { - // InternalTextualScenario.g:1714:4: (lv_name_3_0= RULE_STRING ) - // InternalTextualScenario.g:1715:5: lv_name_3_0= RULE_STRING + // InternalTextualScenario.g:1948:4: (lv_name_3_0= RULE_STRING ) + // InternalTextualScenario.g:1949:5: lv_name_3_0= RULE_STRING { lv_name_3_0=(Token)match(input,RULE_STRING,FOLLOW_2); @@ -4287,6 +4886,209 @@ public final EObject ruleStateFragment() throws RecognitionException { } // $ANTLR end "ruleStateFragment" + + // $ANTLR start "entryRuleReference" + // InternalTextualScenario.g:1969:1: entryRuleReference returns [EObject current=null] : iv_ruleReference= ruleReference EOF ; + public final EObject entryRuleReference() throws RecognitionException { + EObject current = null; + + EObject iv_ruleReference = null; + + + try { + // InternalTextualScenario.g:1969:50: (iv_ruleReference= ruleReference EOF ) + // InternalTextualScenario.g:1970:2: iv_ruleReference= ruleReference EOF + { + newCompositeNode(grammarAccess.getReferenceRule()); + pushFollow(FOLLOW_1); + iv_ruleReference=ruleReference(); + + state._fsp--; + + current =iv_ruleReference; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleReference" + + + // $ANTLR start "ruleReference" + // InternalTextualScenario.g:1976:1: ruleReference returns [EObject current=null] : ( ( (lv_keyword_0_0= 'ref' ) ) ( (lv_name_1_0= RULE_STRING ) ) ( (lv_over_2_0= 'over' ) ) ( (lv_timelines_3_0= RULE_STRING ) )+ ) ; + public final EObject ruleReference() throws RecognitionException { + EObject current = null; + + Token lv_keyword_0_0=null; + Token lv_name_1_0=null; + Token lv_over_2_0=null; + Token lv_timelines_3_0=null; + + + enterRule(); + + try { + // InternalTextualScenario.g:1982:2: ( ( ( (lv_keyword_0_0= 'ref' ) ) ( (lv_name_1_0= RULE_STRING ) ) ( (lv_over_2_0= 'over' ) ) ( (lv_timelines_3_0= RULE_STRING ) )+ ) ) + // InternalTextualScenario.g:1983:2: ( ( (lv_keyword_0_0= 'ref' ) ) ( (lv_name_1_0= RULE_STRING ) ) ( (lv_over_2_0= 'over' ) ) ( (lv_timelines_3_0= RULE_STRING ) )+ ) + { + // InternalTextualScenario.g:1983:2: ( ( (lv_keyword_0_0= 'ref' ) ) ( (lv_name_1_0= RULE_STRING ) ) ( (lv_over_2_0= 'over' ) ) ( (lv_timelines_3_0= RULE_STRING ) )+ ) + // InternalTextualScenario.g:1984:3: ( (lv_keyword_0_0= 'ref' ) ) ( (lv_name_1_0= RULE_STRING ) ) ( (lv_over_2_0= 'over' ) ) ( (lv_timelines_3_0= RULE_STRING ) )+ + { + // InternalTextualScenario.g:1984:3: ( (lv_keyword_0_0= 'ref' ) ) + // InternalTextualScenario.g:1985:4: (lv_keyword_0_0= 'ref' ) + { + // InternalTextualScenario.g:1985:4: (lv_keyword_0_0= 'ref' ) + // InternalTextualScenario.g:1986:5: lv_keyword_0_0= 'ref' + { + lv_keyword_0_0=(Token)match(input,47,FOLLOW_6); + + newLeafNode(lv_keyword_0_0, grammarAccess.getReferenceAccess().getKeywordRefKeyword_0_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getReferenceRule()); + } + setWithLastConsumed(current, "keyword", lv_keyword_0_0, "ref"); + + + } + + + } + + // InternalTextualScenario.g:1998:3: ( (lv_name_1_0= RULE_STRING ) ) + // InternalTextualScenario.g:1999:4: (lv_name_1_0= RULE_STRING ) + { + // InternalTextualScenario.g:1999:4: (lv_name_1_0= RULE_STRING ) + // InternalTextualScenario.g:2000:5: lv_name_1_0= RULE_STRING + { + lv_name_1_0=(Token)match(input,RULE_STRING,FOLLOW_16); + + newLeafNode(lv_name_1_0, grammarAccess.getReferenceAccess().getNameSTRINGTerminalRuleCall_1_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getReferenceRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_1_0, + "org.eclipse.xtext.common.Terminals.STRING"); + + + } + + + } + + // InternalTextualScenario.g:2016:3: ( (lv_over_2_0= 'over' ) ) + // InternalTextualScenario.g:2017:4: (lv_over_2_0= 'over' ) + { + // InternalTextualScenario.g:2017:4: (lv_over_2_0= 'over' ) + // InternalTextualScenario.g:2018:5: lv_over_2_0= 'over' + { + lv_over_2_0=(Token)match(input,42,FOLLOW_6); + + newLeafNode(lv_over_2_0, grammarAccess.getReferenceAccess().getOverOverKeyword_2_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getReferenceRule()); + } + setWithLastConsumed(current, "over", lv_over_2_0, "over"); + + + } + + + } + + // InternalTextualScenario.g:2030:3: ( (lv_timelines_3_0= RULE_STRING ) )+ + int cnt22=0; + loop22: + do { + int alt22=2; + int LA22_0 = input.LA(1); + + if ( (LA22_0==RULE_STRING) ) { + int LA22_2 = input.LA(2); + + if ( (LA22_2==EOF||LA22_2==RULE_STRING||LA22_2==13||LA22_2==27||(LA22_2>=29 && LA22_2<=41)||LA22_2==44||LA22_2==47) ) { + alt22=1; + } + + + } + + + switch (alt22) { + case 1 : + // InternalTextualScenario.g:2031:4: (lv_timelines_3_0= RULE_STRING ) + { + // InternalTextualScenario.g:2031:4: (lv_timelines_3_0= RULE_STRING ) + // InternalTextualScenario.g:2032:5: lv_timelines_3_0= RULE_STRING + { + lv_timelines_3_0=(Token)match(input,RULE_STRING,FOLLOW_20); + + newLeafNode(lv_timelines_3_0, grammarAccess.getReferenceAccess().getTimelinesSTRINGTerminalRuleCall_3_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getReferenceRule()); + } + addWithLastConsumed( + current, + "timelines", + lv_timelines_3_0, + "org.eclipse.xtext.common.Terminals.STRING"); + + + } + + + } + break; + + default : + if ( cnt22 >= 1 ) break loop22; + EarlyExitException eee = + new EarlyExitException(22, input); + throw eee; + } + cnt22++; + } while (true); + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleReference" + // Delegated rules @@ -4295,8 +5097,8 @@ public final EObject ruleStateFragment() throws RecognitionException { 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[]{0x0000000000001000L}); - public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x000004FFF81FE010L}); - public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x000004FFF8002010L}); + public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x000093FFE81FE010L}); + public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x000093FFE8002010L}); public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000200000L}); public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000001C00000L}); @@ -4305,9 +5107,12 @@ public final EObject ruleStateFragment() throws RecognitionException { public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000002000000L}); public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000004000000L}); public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000001400000L}); - public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000010000000000L}); - public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000001010L}); - public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000020000000012L}); - public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000180000020000L}); + public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000010000000L}); + public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000040000000010L}); + public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000001010L}); + public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000080000001012L}); + public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000600000020000L}); + public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000000012L}); } diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/serializer/TextualScenarioSemanticSequencer.java b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/serializer/TextualScenarioSemanticSequencer.java index 2729ec12..f0ba09fc 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/serializer/TextualScenarioSemanticSequencer.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/serializer/TextualScenarioSemanticSequencer.java @@ -37,10 +37,13 @@ import org.polarsys.capella.scenario.editor.dsl.textualScenario.CreateMessage; import org.polarsys.capella.scenario.editor.dsl.textualScenario.DeleteMessage; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Entity; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Function; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Model; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Operand; import org.polarsys.capella.scenario.editor.dsl.textualScenario.ParticipantDeactivation; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Role; import org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessage; import org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment; @@ -90,9 +93,15 @@ public void sequence(ISerializationContext context, EObject semanticObject) { case TextualScenarioPackage.ENTITY: sequence_Entity(context, (Entity) semanticObject); return; + case TextualScenarioPackage.FOUND_MESSAGE: + sequence_FoundMessage(context, (FoundMessage) semanticObject); + return; case TextualScenarioPackage.FUNCTION: sequence_Function(context, (Function) semanticObject); return; + case TextualScenarioPackage.LOST_MESSAGE: + sequence_LostMessage(context, (LostMessage) semanticObject); + return; case TextualScenarioPackage.MODEL: sequence_Model(context, (Model) semanticObject); return; @@ -102,6 +111,9 @@ public void sequence(ISerializationContext context, EObject semanticObject) { case TextualScenarioPackage.PARTICIPANT_DEACTIVATION: sequence_ParticipantDeactivation(context, (ParticipantDeactivation) semanticObject); return; + case TextualScenarioPackage.REFERENCE: + sequence_Reference(context, (Reference) semanticObject); + return; case TextualScenarioPackage.ROLE: sequence_Role(context, (Role) semanticObject); return; @@ -208,7 +220,7 @@ protected void sequence_Block(ISerializationContext context, Block semanticObjec * keyword='strict' | * keyword='unset' * ) - * expression=STRING + * expression=STRING? * over='over' * timelines+=STRING+ * block=Block @@ -355,6 +367,21 @@ protected void sequence_Entity(ISerializationContext context, Entity semanticObj } + /** + * Contexts: + * Element returns FoundMessage + * Message returns FoundMessage + * LostFoundMessage returns FoundMessage + * FoundMessage returns FoundMessage + * + * Constraint: + * (arrow='o->' target=STRING execution='withExecution'? doubleDot=':' name=STRING) + */ + protected void sequence_FoundMessage(ISerializationContext context, FoundMessage semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + /** * Contexts: * Participant returns Function @@ -378,6 +405,36 @@ protected void sequence_Function(ISerializationContext context, Function semanti } + /** + * Contexts: + * Element returns LostMessage + * Message returns LostMessage + * LostFoundMessage returns LostMessage + * LostMessage returns LostMessage + * + * Constraint: + * (source=STRING arrow='->o' doubleDot=':' name=STRING) + */ + protected void sequence_LostMessage(ISerializationContext context, LostMessage semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, TextualScenarioPackage.Literals.LOST_MESSAGE__SOURCE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TextualScenarioPackage.Literals.LOST_MESSAGE__SOURCE)); + if (transientValues.isValueTransient(semanticObject, TextualScenarioPackage.Literals.LOST_FOUND_MESSAGE__ARROW) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TextualScenarioPackage.Literals.LOST_FOUND_MESSAGE__ARROW)); + if (transientValues.isValueTransient(semanticObject, TextualScenarioPackage.Literals.LOST_FOUND_MESSAGE__DOUBLE_DOT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TextualScenarioPackage.Literals.LOST_FOUND_MESSAGE__DOUBLE_DOT)); + if (transientValues.isValueTransient(semanticObject, TextualScenarioPackage.Literals.MESSAGE__NAME) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TextualScenarioPackage.Literals.MESSAGE__NAME)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getLostMessageAccess().getSourceSTRINGTerminalRuleCall_0_0(), semanticObject.getSource()); + feeder.accept(grammarAccess.getLostMessageAccess().getArrowOKeyword_1_0(), semanticObject.getArrow()); + feeder.accept(grammarAccess.getLostMessageAccess().getDoubleDotColonKeyword_2_0(), semanticObject.getDoubleDot()); + feeder.accept(grammarAccess.getLostMessageAccess().getNameSTRINGTerminalRuleCall_3_0(), semanticObject.getName()); + feeder.finish(); + } + + /** * Contexts: * Model returns Model @@ -395,7 +452,7 @@ protected void sequence_Model(ISerializationContext context, Model semanticObjec * Operand returns Operand * * Constraint: - * (keyword='else'? expression=STRING block=Block) + * (keyword='else'? expression=STRING? block=Block) */ protected void sequence_Operand(ISerializationContext context, Operand semanticObject) { genericSequencer.createSequence(context, semanticObject); @@ -425,6 +482,19 @@ protected void sequence_ParticipantDeactivation(ISerializationContext context, P } + /** + * Contexts: + * Element returns Reference + * Reference returns Reference + * + * Constraint: + * (keyword='ref' name=STRING over='over' timelines+=STRING+) + */ + protected void sequence_Reference(ISerializationContext context, Reference semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + /** * Contexts: * Participant returns Role diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/services/TextualScenarioGrammarAccess.java b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/services/TextualScenarioGrammarAccess.java index 397edcd0..b3261b45 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/services/TextualScenarioGrammarAccess.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/services/TextualScenarioGrammarAccess.java @@ -158,12 +158,13 @@ public class ElementElements extends AbstractParserRuleElementFinder { private final RuleCall cMessageParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cCombinedFragmentParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); private final RuleCall cStateFragmentParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cReferenceParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); //Element: - // Message | CombinedFragment | StateFragment; + // Message | CombinedFragment | StateFragment | Reference; @Override public ParserRule getRule() { return rule; } - //Message | CombinedFragment | StateFragment + //Message | CombinedFragment | StateFragment | Reference public Alternatives getAlternatives() { return cAlternatives; } //Message @@ -174,6 +175,9 @@ public class ElementElements extends AbstractParserRuleElementFinder { //StateFragment public RuleCall getStateFragmentParserRuleCall_2() { return cStateFragmentParserRuleCall_2; } + + //Reference + public RuleCall getReferenceParserRuleCall_3() { return cReferenceParserRuleCall_3; } } public class ActorElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.Actor"); @@ -370,12 +374,13 @@ public class MessageElements extends AbstractParserRuleElementFinder { private final RuleCall cSequenceMessageTypeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cArmTimerMessageParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); private final RuleCall cParticipantDeactivationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cLostFoundMessageParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); //Message: - // SequenceMessageType | ArmTimerMessage | ParticipantDeactivation; + // SequenceMessageType | ArmTimerMessage | ParticipantDeactivation | LostFoundMessage; @Override public ParserRule getRule() { return rule; } - //SequenceMessageType | ArmTimerMessage | ParticipantDeactivation + //SequenceMessageType | ArmTimerMessage | ParticipantDeactivation | LostFoundMessage public Alternatives getAlternatives() { return cAlternatives; } //SequenceMessageType @@ -386,6 +391,9 @@ public class MessageElements extends AbstractParserRuleElementFinder { //ParticipantDeactivation public RuleCall getParticipantDeactivationParserRuleCall_2() { return cParticipantDeactivationParserRuleCall_2; } + + //LostFoundMessage + public RuleCall getLostFoundMessageParserRuleCall_3() { return cLostFoundMessageParserRuleCall_3; } } public class SequenceMessageTypeElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.SequenceMessageType"); @@ -630,6 +638,119 @@ public class ArmTimerMessageElements extends AbstractParserRuleElementFinder { //STRING public RuleCall getNameSTRINGTerminalRuleCall_4_0() { return cNameSTRINGTerminalRuleCall_4_0; } } + public class LostFoundMessageElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.LostFoundMessage"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cLostMessageParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cFoundMessageParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //LostFoundMessage: + // LostMessage | FoundMessage; + @Override public ParserRule getRule() { return rule; } + + //LostMessage | FoundMessage + public Alternatives getAlternatives() { return cAlternatives; } + + //LostMessage + public RuleCall getLostMessageParserRuleCall_0() { return cLostMessageParserRuleCall_0; } + + //FoundMessage + public RuleCall getFoundMessageParserRuleCall_1() { return cFoundMessageParserRuleCall_1; } + } + public class LostMessageElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.LostMessage"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cSourceAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cSourceSTRINGTerminalRuleCall_0_0 = (RuleCall)cSourceAssignment_0.eContents().get(0); + private final Assignment cArrowAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final Keyword cArrowOKeyword_1_0 = (Keyword)cArrowAssignment_1.eContents().get(0); + private final Assignment cDoubleDotAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final Keyword cDoubleDotColonKeyword_2_0 = (Keyword)cDoubleDotAssignment_2.eContents().get(0); + private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cNameSTRINGTerminalRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0); + + //LostMessage: + // source=STRING arrow='->o' doubleDot=':' name=STRING; + @Override public ParserRule getRule() { return rule; } + + //source=STRING arrow='->o' doubleDot=':' name=STRING + public Group getGroup() { return cGroup; } + + //source=STRING + public Assignment getSourceAssignment_0() { return cSourceAssignment_0; } + + //STRING + public RuleCall getSourceSTRINGTerminalRuleCall_0_0() { return cSourceSTRINGTerminalRuleCall_0_0; } + + //arrow='->o' + public Assignment getArrowAssignment_1() { return cArrowAssignment_1; } + + //'->o' + public Keyword getArrowOKeyword_1_0() { return cArrowOKeyword_1_0; } + + //doubleDot=':' + public Assignment getDoubleDotAssignment_2() { return cDoubleDotAssignment_2; } + + //':' + public Keyword getDoubleDotColonKeyword_2_0() { return cDoubleDotColonKeyword_2_0; } + + //name=STRING + public Assignment getNameAssignment_3() { return cNameAssignment_3; } + + //STRING + public RuleCall getNameSTRINGTerminalRuleCall_3_0() { return cNameSTRINGTerminalRuleCall_3_0; } + } + public class FoundMessageElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.FoundMessage"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cArrowAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final Keyword cArrowOKeyword_0_0 = (Keyword)cArrowAssignment_0.eContents().get(0); + private final Assignment cTargetAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cTargetSTRINGTerminalRuleCall_1_0 = (RuleCall)cTargetAssignment_1.eContents().get(0); + private final Assignment cExecutionAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final Keyword cExecutionWithExecutionKeyword_2_0 = (Keyword)cExecutionAssignment_2.eContents().get(0); + private final Assignment cDoubleDotAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final Keyword cDoubleDotColonKeyword_3_0 = (Keyword)cDoubleDotAssignment_3.eContents().get(0); + private final Assignment cNameAssignment_4 = (Assignment)cGroup.eContents().get(4); + private final RuleCall cNameSTRINGTerminalRuleCall_4_0 = (RuleCall)cNameAssignment_4.eContents().get(0); + + //FoundMessage: + // arrow='o->' target=STRING execution='withExecution'? doubleDot=':' name=STRING; + @Override public ParserRule getRule() { return rule; } + + //arrow='o->' target=STRING execution='withExecution'? doubleDot=':' name=STRING + public Group getGroup() { return cGroup; } + + //arrow='o->' + public Assignment getArrowAssignment_0() { return cArrowAssignment_0; } + + //'o->' + public Keyword getArrowOKeyword_0_0() { return cArrowOKeyword_0_0; } + + //target=STRING + public Assignment getTargetAssignment_1() { return cTargetAssignment_1; } + + //STRING + public RuleCall getTargetSTRINGTerminalRuleCall_1_0() { return cTargetSTRINGTerminalRuleCall_1_0; } + + //execution='withExecution'? + public Assignment getExecutionAssignment_2() { return cExecutionAssignment_2; } + + //'withExecution' + public Keyword getExecutionWithExecutionKeyword_2_0() { return cExecutionWithExecutionKeyword_2_0; } + + //doubleDot=':' + public Assignment getDoubleDotAssignment_3() { return cDoubleDotAssignment_3; } + + //':' + public Keyword getDoubleDotColonKeyword_3_0() { return cDoubleDotColonKeyword_3_0; } + + //name=STRING + public Assignment getNameAssignment_4() { return cNameAssignment_4; } + + //STRING + public RuleCall getNameSTRINGTerminalRuleCall_4_0() { return cNameSTRINGTerminalRuleCall_4_0; } + } public class ParticipantDeactivationElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.ParticipantDeactivation"); private final Group cGroup = (Group)rule.eContents().get(1); @@ -686,11 +807,11 @@ public class CombinedFragmentElements extends AbstractParserRuleElementFinder { //CombinedFragment: // keyword=('alt' | 'loop' | 'par' | 'assert' | 'critical' | 'ignore' | 'neg' | 'opt' | 'seq' | 'strict' | 'unset') - // expression=STRING over='over' timelines+=STRING+ block=Block operands+=Operand*; + // expression=STRING? over='over' timelines+=STRING+ block=Block operands+=Operand*; @Override public ParserRule getRule() { return rule; } //keyword=('alt' | 'loop' | 'par' | 'assert' | 'critical' | 'ignore' | 'neg' | 'opt' | 'seq' | 'strict' | 'unset') - //expression=STRING over='over' timelines+=STRING+ block=Block operands+=Operand* + //expression=STRING? over='over' timelines+=STRING+ block=Block operands+=Operand* public Group getGroup() { return cGroup; } //keyword=('alt' | 'loop' | 'par' | 'assert' | 'critical' | 'ignore' | 'neg' | 'opt' | 'seq' | 'strict' | 'unset') @@ -732,7 +853,7 @@ public class CombinedFragmentElements extends AbstractParserRuleElementFinder { //'unset' public Keyword getKeywordUnsetKeyword_0_0_10() { return cKeywordUnsetKeyword_0_0_10; } - //expression=STRING + //expression=STRING? public Assignment getExpressionAssignment_1() { return cExpressionAssignment_1; } //STRING @@ -773,10 +894,10 @@ public class OperandElements extends AbstractParserRuleElementFinder { private final RuleCall cBlockBlockParserRuleCall_2_0 = (RuleCall)cBlockAssignment_2.eContents().get(0); //Operand: - // keyword='else'? expression=STRING block=Block; + // keyword='else'? expression=STRING? block=Block; @Override public ParserRule getRule() { return rule; } - //keyword='else'? expression=STRING block=Block + //keyword='else'? expression=STRING? block=Block public Group getGroup() { return cGroup; } //keyword='else'? @@ -785,7 +906,7 @@ public class OperandElements extends AbstractParserRuleElementFinder { //'else' public Keyword getKeywordElseKeyword_0_0() { return cKeywordElseKeyword_0_0; } - //expression=STRING + //expression=STRING? public Assignment getExpressionAssignment_1() { return cExpressionAssignment_1; } //STRING @@ -887,6 +1008,49 @@ public class StateFragmentElements extends AbstractParserRuleElementFinder { //STRING public RuleCall getNameSTRINGTerminalRuleCall_3_0() { return cNameSTRINGTerminalRuleCall_3_0; } } + public class ReferenceElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.polarsys.capella.scenario.editor.dsl.TextualScenario.Reference"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cKeywordAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final Keyword cKeywordRefKeyword_0_0 = (Keyword)cKeywordAssignment_0.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Assignment cOverAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final Keyword cOverOverKeyword_2_0 = (Keyword)cOverAssignment_2.eContents().get(0); + private final Assignment cTimelinesAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cTimelinesSTRINGTerminalRuleCall_3_0 = (RuleCall)cTimelinesAssignment_3.eContents().get(0); + + //Reference: + // keyword='ref' name=STRING over='over' timelines+=STRING+; + @Override public ParserRule getRule() { return rule; } + + //keyword='ref' name=STRING over='over' timelines+=STRING+ + public Group getGroup() { return cGroup; } + + //keyword='ref' + public Assignment getKeywordAssignment_0() { return cKeywordAssignment_0; } + + //'ref' + public Keyword getKeywordRefKeyword_0_0() { return cKeywordRefKeyword_0_0; } + + //name=STRING + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //STRING + public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; } + + //over='over' + public Assignment getOverAssignment_2() { return cOverAssignment_2; } + + //'over' + public Keyword getOverOverKeyword_2_0() { return cOverOverKeyword_2_0; } + + //timelines+=STRING+ + public Assignment getTimelinesAssignment_3() { return cTimelinesAssignment_3; } + + //STRING + public RuleCall getTimelinesSTRINGTerminalRuleCall_3_0() { return cTimelinesSTRINGTerminalRuleCall_3_0; } + } private final ModelElements pModel; @@ -907,11 +1071,15 @@ public class StateFragmentElements extends AbstractParserRuleElementFinder { private final CreateMessageElements pCreateMessage; private final DeleteMessageElements pDeleteMessage; private final ArmTimerMessageElements pArmTimerMessage; + private final LostFoundMessageElements pLostFoundMessage; + private final LostMessageElements pLostMessage; + private final FoundMessageElements pFoundMessage; private final ParticipantDeactivationElements pParticipantDeactivation; private final CombinedFragmentElements pCombinedFragment; private final OperandElements pOperand; private final BlockElements pBlock; private final StateFragmentElements pStateFragment; + private final ReferenceElements pReference; private final Grammar grammar; @@ -940,11 +1108,15 @@ public TextualScenarioGrammarAccess(GrammarProvider grammarProvider, this.pCreateMessage = new CreateMessageElements(); this.pDeleteMessage = new DeleteMessageElements(); this.pArmTimerMessage = new ArmTimerMessageElements(); + this.pLostFoundMessage = new LostFoundMessageElements(); + this.pLostMessage = new LostMessageElements(); + this.pFoundMessage = new FoundMessageElements(); this.pParticipantDeactivation = new ParticipantDeactivationElements(); this.pCombinedFragment = new CombinedFragmentElements(); this.pOperand = new OperandElements(); this.pBlock = new BlockElements(); this.pStateFragment = new StateFragmentElements(); + this.pReference = new ReferenceElements(); } protected Grammar internalFindGrammar(GrammarProvider grammarProvider) { @@ -1017,7 +1189,7 @@ public ParserRule getGenericFunctionRule() { } //Element: - // Message | CombinedFragment | StateFragment; + // Message | CombinedFragment | StateFragment | Reference; public ElementElements getElementAccess() { return pElement; } @@ -1097,7 +1269,7 @@ public ParserRule getRoleRule() { } //Message: - // SequenceMessageType | ArmTimerMessage | ParticipantDeactivation; + // SequenceMessageType | ArmTimerMessage | ParticipantDeactivation | LostFoundMessage; public MessageElements getMessageAccess() { return pMessage; } @@ -1156,6 +1328,36 @@ public ParserRule getArmTimerMessageRule() { return getArmTimerMessageAccess().getRule(); } + //LostFoundMessage: + // LostMessage | FoundMessage; + public LostFoundMessageElements getLostFoundMessageAccess() { + return pLostFoundMessage; + } + + public ParserRule getLostFoundMessageRule() { + return getLostFoundMessageAccess().getRule(); + } + + //LostMessage: + // source=STRING arrow='->o' doubleDot=':' name=STRING; + public LostMessageElements getLostMessageAccess() { + return pLostMessage; + } + + public ParserRule getLostMessageRule() { + return getLostMessageAccess().getRule(); + } + + //FoundMessage: + // arrow='o->' target=STRING execution='withExecution'? doubleDot=':' name=STRING; + public FoundMessageElements getFoundMessageAccess() { + return pFoundMessage; + } + + public ParserRule getFoundMessageRule() { + return getFoundMessageAccess().getRule(); + } + //ParticipantDeactivation: // keyword='deactivate' name=STRING; public ParticipantDeactivationElements getParticipantDeactivationAccess() { @@ -1168,7 +1370,7 @@ public ParserRule getParticipantDeactivationRule() { //CombinedFragment: // keyword=('alt' | 'loop' | 'par' | 'assert' | 'critical' | 'ignore' | 'neg' | 'opt' | 'seq' | 'strict' | 'unset') - // expression=STRING over='over' timelines+=STRING+ block=Block operands+=Operand*; + // expression=STRING? over='over' timelines+=STRING+ block=Block operands+=Operand*; public CombinedFragmentElements getCombinedFragmentAccess() { return pCombinedFragment; } @@ -1178,7 +1380,7 @@ public ParserRule getCombinedFragmentRule() { } //Operand: - // keyword='else'? expression=STRING block=Block; + // keyword='else'? expression=STRING? block=Block; public OperandElements getOperandAccess() { return pOperand; } @@ -1207,6 +1409,16 @@ public ParserRule getStateFragmentRule() { return getStateFragmentAccess().getRule(); } + //Reference: + // keyword='ref' name=STRING over='over' timelines+=STRING+; + public ReferenceElements getReferenceAccess() { + return pReference; + } + + public ParserRule getReferenceRule() { + return getReferenceAccess().getRule(); + } + //terminal ID: // '^'? ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '_' | '0'..'9')*; public TerminalRule getIDRule() { diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/FoundMessage.java b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/FoundMessage.java new file mode 100644 index 00000000..0b703730 --- /dev/null +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/FoundMessage.java @@ -0,0 +1,90 @@ +/******************************************************************************* + * Copyright (c) 2020 THALES GLOBAL SERVICES. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Thales - initial API and implementation + ******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package org.polarsys.capella.scenario.editor.dsl.textualScenario; + + +/** + * + * A representation of the model object 'Found Message'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage#getTarget Target}
  • + *
  • {@link org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage#getExecution Execution}
  • + *
+ * + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.TextualScenarioPackage#getFoundMessage() + * @model + * @generated + */ +public interface FoundMessage extends LostFoundMessage +{ + /** + * Returns the value of the 'Target' attribute. + * + *

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

+ * + * @return the value of the 'Target' attribute. + * @see #setTarget(String) + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.TextualScenarioPackage#getFoundMessage_Target() + * @model + * @generated + */ + String getTarget(); + + /** + * Sets the value of the '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage#getTarget Target}' attribute. + * + * + * @param value the new value of the 'Target' attribute. + * @see #getTarget() + * @generated + */ + void setTarget(String value); + + /** + * Returns the value of the 'Execution' attribute. + * + *

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

+ * + * @return the value of the 'Execution' attribute. + * @see #setExecution(String) + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.TextualScenarioPackage#getFoundMessage_Execution() + * @model + * @generated + */ + String getExecution(); + + /** + * Sets the value of the '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage#getExecution Execution}' attribute. + * + * + * @param value the new value of the 'Execution' attribute. + * @see #getExecution() + * @generated + */ + void setExecution(String value); + +} // FoundMessage diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/LostFoundMessage.java b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/LostFoundMessage.java new file mode 100644 index 00000000..b9f7c931 --- /dev/null +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/LostFoundMessage.java @@ -0,0 +1,90 @@ +/******************************************************************************* + * Copyright (c) 2020 THALES GLOBAL SERVICES. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Thales - initial API and implementation + ******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package org.polarsys.capella.scenario.editor.dsl.textualScenario; + + +/** + * + * A representation of the model object 'Lost Found Message'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.polarsys.capella.scenario.editor.dsl.textualScenario.LostFoundMessage#getArrow Arrow}
  • + *
  • {@link org.polarsys.capella.scenario.editor.dsl.textualScenario.LostFoundMessage#getDoubleDot Double Dot}
  • + *
+ * + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.TextualScenarioPackage#getLostFoundMessage() + * @model + * @generated + */ +public interface LostFoundMessage extends Message +{ + /** + * Returns the value of the 'Arrow' attribute. + * + *

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

+ * + * @return the value of the 'Arrow' attribute. + * @see #setArrow(String) + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.TextualScenarioPackage#getLostFoundMessage_Arrow() + * @model + * @generated + */ + String getArrow(); + + /** + * Sets the value of the '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.LostFoundMessage#getArrow Arrow}' attribute. + * + * + * @param value the new value of the 'Arrow' attribute. + * @see #getArrow() + * @generated + */ + void setArrow(String value); + + /** + * Returns the value of the 'Double Dot' attribute. + * + *

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

+ * + * @return the value of the 'Double Dot' attribute. + * @see #setDoubleDot(String) + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.TextualScenarioPackage#getLostFoundMessage_DoubleDot() + * @model + * @generated + */ + String getDoubleDot(); + + /** + * Sets the value of the '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.LostFoundMessage#getDoubleDot Double Dot}' attribute. + * + * + * @param value the new value of the 'Double Dot' attribute. + * @see #getDoubleDot() + * @generated + */ + void setDoubleDot(String value); + +} // LostFoundMessage diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/LostMessage.java b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/LostMessage.java new file mode 100644 index 00000000..41e8a1d4 --- /dev/null +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/LostMessage.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * Copyright (c) 2020 THALES GLOBAL SERVICES. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Thales - initial API and implementation + ******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package org.polarsys.capella.scenario.editor.dsl.textualScenario; + + +/** + * + * A representation of the model object 'Lost Message'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage#getSource Source}
  • + *
+ * + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.TextualScenarioPackage#getLostMessage() + * @model + * @generated + */ +public interface LostMessage extends LostFoundMessage +{ + /** + * Returns the value of the 'Source' attribute. + * + *

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

+ * + * @return the value of the 'Source' attribute. + * @see #setSource(String) + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.TextualScenarioPackage#getLostMessage_Source() + * @model + * @generated + */ + String getSource(); + + /** + * Sets the value of the '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage#getSource Source}' attribute. + * + * + * @param value the new value of the 'Source' attribute. + * @see #getSource() + * @generated + */ + void setSource(String value); + +} // LostMessage diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/Reference.java b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/Reference.java new file mode 100644 index 00000000..a9113561 --- /dev/null +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/Reference.java @@ -0,0 +1,135 @@ +/******************************************************************************* + * Copyright (c) 2020 THALES GLOBAL SERVICES. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Thales - initial API and implementation + ******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package org.polarsys.capella.scenario.editor.dsl.textualScenario; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Reference'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference#getKeyword Keyword}
  • + *
  • {@link org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference#getName Name}
  • + *
  • {@link org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference#getOver Over}
  • + *
  • {@link org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference#getTimelines Timelines}
  • + *
+ * + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.TextualScenarioPackage#getReference() + * @model + * @generated + */ +public interface Reference extends Element +{ + /** + * Returns the value of the 'Keyword' attribute. + * + *

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

+ * + * @return the value of the 'Keyword' attribute. + * @see #setKeyword(String) + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.TextualScenarioPackage#getReference_Keyword() + * @model + * @generated + */ + String getKeyword(); + + /** + * Sets the value of the '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference#getKeyword Keyword}' attribute. + * + * + * @param value the new value of the 'Keyword' attribute. + * @see #getKeyword() + * @generated + */ + void setKeyword(String value); + + /** + * 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 org.polarsys.capella.scenario.editor.dsl.textualScenario.TextualScenarioPackage#getReference_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Over' attribute. + * + *

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

+ * + * @return the value of the 'Over' attribute. + * @see #setOver(String) + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.TextualScenarioPackage#getReference_Over() + * @model + * @generated + */ + String getOver(); + + /** + * Sets the value of the '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference#getOver Over}' attribute. + * + * + * @param value the new value of the 'Over' attribute. + * @see #getOver() + * @generated + */ + void setOver(String value); + + /** + * Returns the value of the 'Timelines' attribute list. + * The list contents are of type {@link java.lang.String}. + * + *

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

+ * + * @return the value of the 'Timelines' attribute list. + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.TextualScenarioPackage#getReference_Timelines() + * @model unique="false" + * @generated + */ + EList getTimelines(); + +} // Reference diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/TextualScenarioFactory.java b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/TextualScenarioFactory.java index 6a6a40e2..b8318cbe 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/TextualScenarioFactory.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/TextualScenarioFactory.java @@ -197,6 +197,33 @@ public interface TextualScenarioFactory extends EFactory */ ArmTimerMessage createArmTimerMessage(); + /** + * Returns a new object of class 'Lost Found Message'. + * + * + * @return a new object of class 'Lost Found Message'. + * @generated + */ + LostFoundMessage createLostFoundMessage(); + + /** + * Returns a new object of class 'Lost Message'. + * + * + * @return a new object of class 'Lost Message'. + * @generated + */ + LostMessage createLostMessage(); + + /** + * Returns a new object of class 'Found Message'. + * + * + * @return a new object of class 'Found Message'. + * @generated + */ + FoundMessage createFoundMessage(); + /** * Returns a new object of class 'Participant Deactivation'. * @@ -242,6 +269,15 @@ public interface TextualScenarioFactory extends EFactory */ StateFragment createStateFragment(); + /** + * Returns a new object of class 'Reference'. + * + * + * @return a new object of class 'Reference'. + * @generated + */ + Reference createReference(); + /** * Returns the package supported by this factory. * diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/TextualScenarioPackage.java b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/TextualScenarioPackage.java index fcdba5b9..b0f7154c 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/TextualScenarioPackage.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/TextualScenarioPackage.java @@ -879,6 +879,171 @@ public interface TextualScenarioPackage extends EPackage */ int ARM_TIMER_MESSAGE_FEATURE_COUNT = MESSAGE_FEATURE_COUNT + 4; + /** + * The meta object id for the '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.LostFoundMessageImpl Lost Found Message}' class. + * + * + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.LostFoundMessageImpl + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.TextualScenarioPackageImpl#getLostFoundMessage() + * @generated + */ + int LOST_FOUND_MESSAGE = 18; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LOST_FOUND_MESSAGE__NAME = MESSAGE__NAME; + + /** + * The feature id for the 'Arrow' attribute. + * + * + * @generated + * @ordered + */ + int LOST_FOUND_MESSAGE__ARROW = MESSAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Double Dot' attribute. + * + * + * @generated + * @ordered + */ + int LOST_FOUND_MESSAGE__DOUBLE_DOT = MESSAGE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Lost Found Message' class. + * + * + * @generated + * @ordered + */ + int LOST_FOUND_MESSAGE_FEATURE_COUNT = MESSAGE_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.LostMessageImpl Lost Message}' class. + * + * + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.LostMessageImpl + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.TextualScenarioPackageImpl#getLostMessage() + * @generated + */ + int LOST_MESSAGE = 19; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LOST_MESSAGE__NAME = LOST_FOUND_MESSAGE__NAME; + + /** + * The feature id for the 'Arrow' attribute. + * + * + * @generated + * @ordered + */ + int LOST_MESSAGE__ARROW = LOST_FOUND_MESSAGE__ARROW; + + /** + * The feature id for the 'Double Dot' attribute. + * + * + * @generated + * @ordered + */ + int LOST_MESSAGE__DOUBLE_DOT = LOST_FOUND_MESSAGE__DOUBLE_DOT; + + /** + * The feature id for the 'Source' attribute. + * + * + * @generated + * @ordered + */ + int LOST_MESSAGE__SOURCE = LOST_FOUND_MESSAGE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Lost Message' class. + * + * + * @generated + * @ordered + */ + int LOST_MESSAGE_FEATURE_COUNT = LOST_FOUND_MESSAGE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.FoundMessageImpl Found Message}' class. + * + * + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.FoundMessageImpl + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.TextualScenarioPackageImpl#getFoundMessage() + * @generated + */ + int FOUND_MESSAGE = 20; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FOUND_MESSAGE__NAME = LOST_FOUND_MESSAGE__NAME; + + /** + * The feature id for the 'Arrow' attribute. + * + * + * @generated + * @ordered + */ + int FOUND_MESSAGE__ARROW = LOST_FOUND_MESSAGE__ARROW; + + /** + * The feature id for the 'Double Dot' attribute. + * + * + * @generated + * @ordered + */ + int FOUND_MESSAGE__DOUBLE_DOT = LOST_FOUND_MESSAGE__DOUBLE_DOT; + + /** + * The feature id for the 'Target' attribute. + * + * + * @generated + * @ordered + */ + int FOUND_MESSAGE__TARGET = LOST_FOUND_MESSAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Execution' attribute. + * + * + * @generated + * @ordered + */ + int FOUND_MESSAGE__EXECUTION = LOST_FOUND_MESSAGE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Found Message' class. + * + * + * @generated + * @ordered + */ + int FOUND_MESSAGE_FEATURE_COUNT = LOST_FOUND_MESSAGE_FEATURE_COUNT + 2; + /** * The meta object id for the '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.ParticipantDeactivationImpl Participant Deactivation}' class. * @@ -887,7 +1052,7 @@ public interface TextualScenarioPackage extends EPackage * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.TextualScenarioPackageImpl#getParticipantDeactivation() * @generated */ - int PARTICIPANT_DEACTIVATION = 18; + int PARTICIPANT_DEACTIVATION = 21; /** * The feature id for the 'Name' attribute. @@ -924,7 +1089,7 @@ public interface TextualScenarioPackage extends EPackage * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.TextualScenarioPackageImpl#getCombinedFragment() * @generated */ - int COMBINED_FRAGMENT = 19; + int COMBINED_FRAGMENT = 22; /** * The feature id for the 'Keyword' attribute. @@ -997,7 +1162,7 @@ public interface TextualScenarioPackage extends EPackage * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.TextualScenarioPackageImpl#getOperand() * @generated */ - int OPERAND = 20; + int OPERAND = 23; /** * The feature id for the 'Keyword' attribute. @@ -1043,7 +1208,7 @@ public interface TextualScenarioPackage extends EPackage * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.TextualScenarioPackageImpl#getBlock() * @generated */ - int BLOCK = 21; + int BLOCK = 24; /** * The feature id for the 'Begin' attribute. @@ -1089,7 +1254,7 @@ public interface TextualScenarioPackage extends EPackage * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.TextualScenarioPackageImpl#getStateFragment() * @generated */ - int STATE_FRAGMENT = 22; + int STATE_FRAGMENT = 25; /** * The feature id for the 'On' attribute. @@ -1136,6 +1301,61 @@ public interface TextualScenarioPackage extends EPackage */ int STATE_FRAGMENT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 4; + /** + * The meta object id for the '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.ReferenceImpl Reference}' class. + * + * + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.ReferenceImpl + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.TextualScenarioPackageImpl#getReference() + * @generated + */ + int REFERENCE = 26; + + /** + * The feature id for the 'Keyword' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE__KEYWORD = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE__NAME = ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Over' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE__OVER = ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Timelines' attribute list. + * + * + * @generated + * @ordered + */ + int REFERENCE__TIMELINES = ELEMENT_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Reference' class. + * + * + * @generated + * @ordered + */ + int REFERENCE_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 4; + /** * Returns the meta object for class '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.Model Model}'. @@ -1504,6 +1724,91 @@ public interface TextualScenarioPackage extends EPackage */ EAttribute getArmTimerMessage_DoubleDot(); + /** + * Returns the meta object for class '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.LostFoundMessage Lost Found Message}'. + * + * + * @return the meta object for class 'Lost Found Message'. + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.LostFoundMessage + * @generated + */ + EClass getLostFoundMessage(); + + /** + * Returns the meta object for the attribute '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.LostFoundMessage#getArrow Arrow}'. + * + * + * @return the meta object for the attribute 'Arrow'. + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.LostFoundMessage#getArrow() + * @see #getLostFoundMessage() + * @generated + */ + EAttribute getLostFoundMessage_Arrow(); + + /** + * Returns the meta object for the attribute '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.LostFoundMessage#getDoubleDot Double Dot}'. + * + * + * @return the meta object for the attribute 'Double Dot'. + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.LostFoundMessage#getDoubleDot() + * @see #getLostFoundMessage() + * @generated + */ + EAttribute getLostFoundMessage_DoubleDot(); + + /** + * Returns the meta object for class '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage Lost Message}'. + * + * + * @return the meta object for class 'Lost Message'. + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage + * @generated + */ + EClass getLostMessage(); + + /** + * Returns the meta object for the attribute '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage#getSource Source}'. + * + * + * @return the meta object for the attribute 'Source'. + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage#getSource() + * @see #getLostMessage() + * @generated + */ + EAttribute getLostMessage_Source(); + + /** + * Returns the meta object for class '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage Found Message}'. + * + * + * @return the meta object for class 'Found Message'. + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage + * @generated + */ + EClass getFoundMessage(); + + /** + * Returns the meta object for the attribute '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage#getTarget Target}'. + * + * + * @return the meta object for the attribute 'Target'. + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage#getTarget() + * @see #getFoundMessage() + * @generated + */ + EAttribute getFoundMessage_Target(); + + /** + * Returns the meta object for the attribute '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage#getExecution Execution}'. + * + * + * @return the meta object for the attribute 'Execution'. + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage#getExecution() + * @see #getFoundMessage() + * @generated + */ + EAttribute getFoundMessage_Execution(); + /** * Returns the meta object for class '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.ParticipantDeactivation Participant Deactivation}'. * @@ -1741,6 +2046,60 @@ public interface TextualScenarioPackage extends EPackage */ EAttribute getStateFragment_Name(); + /** + * Returns the meta object for class '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference Reference}'. + * + * + * @return the meta object for class 'Reference'. + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference + * @generated + */ + EClass getReference(); + + /** + * Returns the meta object for the attribute '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference#getKeyword Keyword}'. + * + * + * @return the meta object for the attribute 'Keyword'. + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference#getKeyword() + * @see #getReference() + * @generated + */ + EAttribute getReference_Keyword(); + + /** + * Returns the meta object for the attribute '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference#getName() + * @see #getReference() + * @generated + */ + EAttribute getReference_Name(); + + /** + * Returns the meta object for the attribute '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference#getOver Over}'. + * + * + * @return the meta object for the attribute 'Over'. + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference#getOver() + * @see #getReference() + * @generated + */ + EAttribute getReference_Over(); + + /** + * Returns the meta object for the attribute list '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference#getTimelines Timelines}'. + * + * + * @return the meta object for the attribute list 'Timelines'. + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference#getTimelines() + * @see #getReference() + * @generated + */ + EAttribute getReference_Timelines(); + /** * Returns the factory that creates the instances of the model. * @@ -2080,6 +2439,76 @@ interface Literals */ EAttribute ARM_TIMER_MESSAGE__DOUBLE_DOT = eINSTANCE.getArmTimerMessage_DoubleDot(); + /** + * The meta object literal for the '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.LostFoundMessageImpl Lost Found Message}' class. + * + * + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.LostFoundMessageImpl + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.TextualScenarioPackageImpl#getLostFoundMessage() + * @generated + */ + EClass LOST_FOUND_MESSAGE = eINSTANCE.getLostFoundMessage(); + + /** + * The meta object literal for the 'Arrow' attribute feature. + * + * + * @generated + */ + EAttribute LOST_FOUND_MESSAGE__ARROW = eINSTANCE.getLostFoundMessage_Arrow(); + + /** + * The meta object literal for the 'Double Dot' attribute feature. + * + * + * @generated + */ + EAttribute LOST_FOUND_MESSAGE__DOUBLE_DOT = eINSTANCE.getLostFoundMessage_DoubleDot(); + + /** + * The meta object literal for the '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.LostMessageImpl Lost Message}' class. + * + * + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.LostMessageImpl + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.TextualScenarioPackageImpl#getLostMessage() + * @generated + */ + EClass LOST_MESSAGE = eINSTANCE.getLostMessage(); + + /** + * The meta object literal for the 'Source' attribute feature. + * + * + * @generated + */ + EAttribute LOST_MESSAGE__SOURCE = eINSTANCE.getLostMessage_Source(); + + /** + * The meta object literal for the '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.FoundMessageImpl Found Message}' class. + * + * + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.FoundMessageImpl + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.TextualScenarioPackageImpl#getFoundMessage() + * @generated + */ + EClass FOUND_MESSAGE = eINSTANCE.getFoundMessage(); + + /** + * The meta object literal for the 'Target' attribute feature. + * + * + * @generated + */ + EAttribute FOUND_MESSAGE__TARGET = eINSTANCE.getFoundMessage_Target(); + + /** + * The meta object literal for the 'Execution' attribute feature. + * + * + * @generated + */ + EAttribute FOUND_MESSAGE__EXECUTION = eINSTANCE.getFoundMessage_Execution(); + /** * The meta object literal for the '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.ParticipantDeactivationImpl Participant Deactivation}' class. * @@ -2266,6 +2695,48 @@ interface Literals */ EAttribute STATE_FRAGMENT__NAME = eINSTANCE.getStateFragment_Name(); + /** + * The meta object literal for the '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.ReferenceImpl Reference}' class. + * + * + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.ReferenceImpl + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.TextualScenarioPackageImpl#getReference() + * @generated + */ + EClass REFERENCE = eINSTANCE.getReference(); + + /** + * The meta object literal for the 'Keyword' attribute feature. + * + * + * @generated + */ + EAttribute REFERENCE__KEYWORD = eINSTANCE.getReference_Keyword(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute REFERENCE__NAME = eINSTANCE.getReference_Name(); + + /** + * The meta object literal for the 'Over' attribute feature. + * + * + * @generated + */ + EAttribute REFERENCE__OVER = eINSTANCE.getReference_Over(); + + /** + * The meta object literal for the 'Timelines' attribute list feature. + * + * + * @generated + */ + EAttribute REFERENCE__TIMELINES = eINSTANCE.getReference_Timelines(); + } } //TextualScenarioPackage diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/FoundMessageImpl.java b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/FoundMessageImpl.java new file mode 100644 index 00000000..bd265e32 --- /dev/null +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/FoundMessageImpl.java @@ -0,0 +1,245 @@ +/******************************************************************************* + * Copyright (c) 2020 THALES GLOBAL SERVICES. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Thales - initial API and implementation + ******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package org.polarsys.capella.scenario.editor.dsl.textualScenario.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.TextualScenarioPackage; + +/** + * + * An implementation of the model object 'Found Message'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.FoundMessageImpl#getTarget Target}
  • + *
  • {@link org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.FoundMessageImpl#getExecution Execution}
  • + *
+ * + * @generated + */ +public class FoundMessageImpl extends LostFoundMessageImpl implements FoundMessage +{ + /** + * The default value of the '{@link #getTarget() Target}' attribute. + * + * + * @see #getTarget() + * @generated + * @ordered + */ + protected static final String TARGET_EDEFAULT = null; + + /** + * The cached value of the '{@link #getTarget() Target}' attribute. + * + * + * @see #getTarget() + * @generated + * @ordered + */ + protected String target = TARGET_EDEFAULT; + + /** + * The default value of the '{@link #getExecution() Execution}' attribute. + * + * + * @see #getExecution() + * @generated + * @ordered + */ + protected static final String EXECUTION_EDEFAULT = null; + + /** + * The cached value of the '{@link #getExecution() Execution}' attribute. + * + * + * @see #getExecution() + * @generated + * @ordered + */ + protected String execution = EXECUTION_EDEFAULT; + + /** + * + * + * @generated + */ + protected FoundMessageImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return TextualScenarioPackage.Literals.FOUND_MESSAGE; + } + + /** + * + * + * @generated + */ + public String getTarget() + { + return target; + } + + /** + * + * + * @generated + */ + public void setTarget(String newTarget) + { + String oldTarget = target; + target = newTarget; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, TextualScenarioPackage.FOUND_MESSAGE__TARGET, oldTarget, target)); + } + + /** + * + * + * @generated + */ + public String getExecution() + { + return execution; + } + + /** + * + * + * @generated + */ + public void setExecution(String newExecution) + { + String oldExecution = execution; + execution = newExecution; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, TextualScenarioPackage.FOUND_MESSAGE__EXECUTION, oldExecution, execution)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case TextualScenarioPackage.FOUND_MESSAGE__TARGET: + return getTarget(); + case TextualScenarioPackage.FOUND_MESSAGE__EXECUTION: + return getExecution(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case TextualScenarioPackage.FOUND_MESSAGE__TARGET: + setTarget((String)newValue); + return; + case TextualScenarioPackage.FOUND_MESSAGE__EXECUTION: + setExecution((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case TextualScenarioPackage.FOUND_MESSAGE__TARGET: + setTarget(TARGET_EDEFAULT); + return; + case TextualScenarioPackage.FOUND_MESSAGE__EXECUTION: + setExecution(EXECUTION_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case TextualScenarioPackage.FOUND_MESSAGE__TARGET: + return TARGET_EDEFAULT == null ? target != null : !TARGET_EDEFAULT.equals(target); + case TextualScenarioPackage.FOUND_MESSAGE__EXECUTION: + return EXECUTION_EDEFAULT == null ? execution != null : !EXECUTION_EDEFAULT.equals(execution); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (target: "); + result.append(target); + result.append(", execution: "); + result.append(execution); + result.append(')'); + return result.toString(); + } + +} //FoundMessageImpl diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/LostFoundMessageImpl.java b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/LostFoundMessageImpl.java new file mode 100644 index 00000000..ce48dc34 --- /dev/null +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/LostFoundMessageImpl.java @@ -0,0 +1,245 @@ +/******************************************************************************* + * Copyright (c) 2020 THALES GLOBAL SERVICES. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Thales - initial API and implementation + ******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package org.polarsys.capella.scenario.editor.dsl.textualScenario.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.polarsys.capella.scenario.editor.dsl.textualScenario.LostFoundMessage; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.TextualScenarioPackage; + +/** + * + * An implementation of the model object 'Lost Found Message'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.LostFoundMessageImpl#getArrow Arrow}
  • + *
  • {@link org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.LostFoundMessageImpl#getDoubleDot Double Dot}
  • + *
+ * + * @generated + */ +public class LostFoundMessageImpl extends MessageImpl implements LostFoundMessage +{ + /** + * The default value of the '{@link #getArrow() Arrow}' attribute. + * + * + * @see #getArrow() + * @generated + * @ordered + */ + protected static final String ARROW_EDEFAULT = null; + + /** + * The cached value of the '{@link #getArrow() Arrow}' attribute. + * + * + * @see #getArrow() + * @generated + * @ordered + */ + protected String arrow = ARROW_EDEFAULT; + + /** + * The default value of the '{@link #getDoubleDot() Double Dot}' attribute. + * + * + * @see #getDoubleDot() + * @generated + * @ordered + */ + protected static final String DOUBLE_DOT_EDEFAULT = null; + + /** + * The cached value of the '{@link #getDoubleDot() Double Dot}' attribute. + * + * + * @see #getDoubleDot() + * @generated + * @ordered + */ + protected String doubleDot = DOUBLE_DOT_EDEFAULT; + + /** + * + * + * @generated + */ + protected LostFoundMessageImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return TextualScenarioPackage.Literals.LOST_FOUND_MESSAGE; + } + + /** + * + * + * @generated + */ + public String getArrow() + { + return arrow; + } + + /** + * + * + * @generated + */ + public void setArrow(String newArrow) + { + String oldArrow = arrow; + arrow = newArrow; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, TextualScenarioPackage.LOST_FOUND_MESSAGE__ARROW, oldArrow, arrow)); + } + + /** + * + * + * @generated + */ + public String getDoubleDot() + { + return doubleDot; + } + + /** + * + * + * @generated + */ + public void setDoubleDot(String newDoubleDot) + { + String oldDoubleDot = doubleDot; + doubleDot = newDoubleDot; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, TextualScenarioPackage.LOST_FOUND_MESSAGE__DOUBLE_DOT, oldDoubleDot, doubleDot)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case TextualScenarioPackage.LOST_FOUND_MESSAGE__ARROW: + return getArrow(); + case TextualScenarioPackage.LOST_FOUND_MESSAGE__DOUBLE_DOT: + return getDoubleDot(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case TextualScenarioPackage.LOST_FOUND_MESSAGE__ARROW: + setArrow((String)newValue); + return; + case TextualScenarioPackage.LOST_FOUND_MESSAGE__DOUBLE_DOT: + setDoubleDot((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case TextualScenarioPackage.LOST_FOUND_MESSAGE__ARROW: + setArrow(ARROW_EDEFAULT); + return; + case TextualScenarioPackage.LOST_FOUND_MESSAGE__DOUBLE_DOT: + setDoubleDot(DOUBLE_DOT_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case TextualScenarioPackage.LOST_FOUND_MESSAGE__ARROW: + return ARROW_EDEFAULT == null ? arrow != null : !ARROW_EDEFAULT.equals(arrow); + case TextualScenarioPackage.LOST_FOUND_MESSAGE__DOUBLE_DOT: + return DOUBLE_DOT_EDEFAULT == null ? doubleDot != null : !DOUBLE_DOT_EDEFAULT.equals(doubleDot); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (arrow: "); + result.append(arrow); + result.append(", doubleDot: "); + result.append(doubleDot); + result.append(')'); + return result.toString(); + } + +} //LostFoundMessageImpl diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/LostMessageImpl.java b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/LostMessageImpl.java new file mode 100644 index 00000000..ca210568 --- /dev/null +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/LostMessageImpl.java @@ -0,0 +1,189 @@ +/******************************************************************************* + * Copyright (c) 2020 THALES GLOBAL SERVICES. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Thales - initial API and implementation + ******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package org.polarsys.capella.scenario.editor.dsl.textualScenario.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.TextualScenarioPackage; + +/** + * + * An implementation of the model object 'Lost Message'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.LostMessageImpl#getSource Source}
  • + *
+ * + * @generated + */ +public class LostMessageImpl extends LostFoundMessageImpl implements LostMessage +{ + /** + * The default value of the '{@link #getSource() Source}' attribute. + * + * + * @see #getSource() + * @generated + * @ordered + */ + protected static final String SOURCE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getSource() Source}' attribute. + * + * + * @see #getSource() + * @generated + * @ordered + */ + protected String source = SOURCE_EDEFAULT; + + /** + * + * + * @generated + */ + protected LostMessageImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return TextualScenarioPackage.Literals.LOST_MESSAGE; + } + + /** + * + * + * @generated + */ + public String getSource() + { + return source; + } + + /** + * + * + * @generated + */ + public void setSource(String newSource) + { + String oldSource = source; + source = newSource; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, TextualScenarioPackage.LOST_MESSAGE__SOURCE, oldSource, source)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case TextualScenarioPackage.LOST_MESSAGE__SOURCE: + return getSource(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case TextualScenarioPackage.LOST_MESSAGE__SOURCE: + setSource((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case TextualScenarioPackage.LOST_MESSAGE__SOURCE: + setSource(SOURCE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case TextualScenarioPackage.LOST_MESSAGE__SOURCE: + return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (source: "); + result.append(source); + result.append(')'); + return result.toString(); + } + +} //LostMessageImpl diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/ReferenceImpl.java b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/ReferenceImpl.java new file mode 100644 index 00000000..ea26bd54 --- /dev/null +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/ReferenceImpl.java @@ -0,0 +1,346 @@ +/******************************************************************************* + * Copyright (c) 2020 THALES GLOBAL SERVICES. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Thales - initial API and implementation + ******************************************************************************/ +/** + * generated by Xtext 2.10.0 + */ +package org.polarsys.capella.scenario.editor.dsl.textualScenario.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.util.EDataTypeEList; + +import org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.TextualScenarioPackage; + +/** + * + * An implementation of the model object 'Reference'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.ReferenceImpl#getKeyword Keyword}
  • + *
  • {@link org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.ReferenceImpl#getName Name}
  • + *
  • {@link org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.ReferenceImpl#getOver Over}
  • + *
  • {@link org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.ReferenceImpl#getTimelines Timelines}
  • + *
+ * + * @generated + */ +public class ReferenceImpl extends ElementImpl implements Reference +{ + /** + * The default value of the '{@link #getKeyword() Keyword}' attribute. + * + * + * @see #getKeyword() + * @generated + * @ordered + */ + protected static final String KEYWORD_EDEFAULT = null; + + /** + * The cached value of the '{@link #getKeyword() Keyword}' attribute. + * + * + * @see #getKeyword() + * @generated + * @ordered + */ + protected String keyword = KEYWORD_EDEFAULT; + + /** + * 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 #getOver() Over}' attribute. + * + * + * @see #getOver() + * @generated + * @ordered + */ + protected static final String OVER_EDEFAULT = null; + + /** + * The cached value of the '{@link #getOver() Over}' attribute. + * + * + * @see #getOver() + * @generated + * @ordered + */ + protected String over = OVER_EDEFAULT; + + /** + * The cached value of the '{@link #getTimelines() Timelines}' attribute list. + * + * + * @see #getTimelines() + * @generated + * @ordered + */ + protected EList timelines; + + /** + * + * + * @generated + */ + protected ReferenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return TextualScenarioPackage.Literals.REFERENCE; + } + + /** + * + * + * @generated + */ + public String getKeyword() + { + return keyword; + } + + /** + * + * + * @generated + */ + public void setKeyword(String newKeyword) + { + String oldKeyword = keyword; + keyword = newKeyword; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, TextualScenarioPackage.REFERENCE__KEYWORD, oldKeyword, keyword)); + } + + /** + * + * + * @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, TextualScenarioPackage.REFERENCE__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + public String getOver() + { + return over; + } + + /** + * + * + * @generated + */ + public void setOver(String newOver) + { + String oldOver = over; + over = newOver; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, TextualScenarioPackage.REFERENCE__OVER, oldOver, over)); + } + + /** + * + * + * @generated + */ + public EList getTimelines() + { + if (timelines == null) + { + timelines = new EDataTypeEList(String.class, this, TextualScenarioPackage.REFERENCE__TIMELINES); + } + return timelines; + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case TextualScenarioPackage.REFERENCE__KEYWORD: + return getKeyword(); + case TextualScenarioPackage.REFERENCE__NAME: + return getName(); + case TextualScenarioPackage.REFERENCE__OVER: + return getOver(); + case TextualScenarioPackage.REFERENCE__TIMELINES: + return getTimelines(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case TextualScenarioPackage.REFERENCE__KEYWORD: + setKeyword((String)newValue); + return; + case TextualScenarioPackage.REFERENCE__NAME: + setName((String)newValue); + return; + case TextualScenarioPackage.REFERENCE__OVER: + setOver((String)newValue); + return; + case TextualScenarioPackage.REFERENCE__TIMELINES: + getTimelines().clear(); + getTimelines().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case TextualScenarioPackage.REFERENCE__KEYWORD: + setKeyword(KEYWORD_EDEFAULT); + return; + case TextualScenarioPackage.REFERENCE__NAME: + setName(NAME_EDEFAULT); + return; + case TextualScenarioPackage.REFERENCE__OVER: + setOver(OVER_EDEFAULT); + return; + case TextualScenarioPackage.REFERENCE__TIMELINES: + getTimelines().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case TextualScenarioPackage.REFERENCE__KEYWORD: + return KEYWORD_EDEFAULT == null ? keyword != null : !KEYWORD_EDEFAULT.equals(keyword); + case TextualScenarioPackage.REFERENCE__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case TextualScenarioPackage.REFERENCE__OVER: + return OVER_EDEFAULT == null ? over != null : !OVER_EDEFAULT.equals(over); + case TextualScenarioPackage.REFERENCE__TIMELINES: + return timelines != null && !timelines.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (keyword: "); + result.append(keyword); + result.append(", name: "); + result.append(name); + result.append(", over: "); + result.append(over); + result.append(", timelines: "); + result.append(timelines); + result.append(')'); + return result.toString(); + } + +} //ReferenceImpl diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/TextualScenarioFactoryImpl.java b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/TextualScenarioFactoryImpl.java index 1a49280f..fd7f4b9c 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/TextualScenarioFactoryImpl.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/TextualScenarioFactoryImpl.java @@ -95,11 +95,15 @@ public EObject create(EClass eClass) case TextualScenarioPackage.CREATE_MESSAGE: return createCreateMessage(); case TextualScenarioPackage.DELETE_MESSAGE: return createDeleteMessage(); case TextualScenarioPackage.ARM_TIMER_MESSAGE: return createArmTimerMessage(); + case TextualScenarioPackage.LOST_FOUND_MESSAGE: return createLostFoundMessage(); + case TextualScenarioPackage.LOST_MESSAGE: return createLostMessage(); + case TextualScenarioPackage.FOUND_MESSAGE: return createFoundMessage(); case TextualScenarioPackage.PARTICIPANT_DEACTIVATION: return createParticipantDeactivation(); case TextualScenarioPackage.COMBINED_FRAGMENT: return createCombinedFragment(); case TextualScenarioPackage.OPERAND: return createOperand(); case TextualScenarioPackage.BLOCK: return createBlock(); case TextualScenarioPackage.STATE_FRAGMENT: return createStateFragment(); + case TextualScenarioPackage.REFERENCE: return createReference(); default: throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); } @@ -303,6 +307,39 @@ public ArmTimerMessage createArmTimerMessage() return armTimerMessage; } + /** + * + * + * @generated + */ + public LostFoundMessage createLostFoundMessage() + { + LostFoundMessageImpl lostFoundMessage = new LostFoundMessageImpl(); + return lostFoundMessage; + } + + /** + * + * + * @generated + */ + public LostMessage createLostMessage() + { + LostMessageImpl lostMessage = new LostMessageImpl(); + return lostMessage; + } + + /** + * + * + * @generated + */ + public FoundMessage createFoundMessage() + { + FoundMessageImpl foundMessage = new FoundMessageImpl(); + return foundMessage; + } + /** * * @@ -358,6 +395,17 @@ public StateFragment createStateFragment() return stateFragment; } + /** + * + * + * @generated + */ + public Reference createReference() + { + ReferenceImpl reference = new ReferenceImpl(); + return reference; + } + /** * * diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/TextualScenarioPackageImpl.java b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/TextualScenarioPackageImpl.java index 2b89b7e3..d6cbc6ca 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/TextualScenarioPackageImpl.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/impl/TextualScenarioPackageImpl.java @@ -33,14 +33,18 @@ import org.polarsys.capella.scenario.editor.dsl.textualScenario.DeleteMessage; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Element; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Entity; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Function; import org.polarsys.capella.scenario.editor.dsl.textualScenario.GenericComponent; import org.polarsys.capella.scenario.editor.dsl.textualScenario.GenericFunction; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.LostFoundMessage; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Message; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Model; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Operand; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Participant; import org.polarsys.capella.scenario.editor.dsl.textualScenario.ParticipantDeactivation; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Role; import org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessage; import org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessageType; @@ -182,6 +186,27 @@ public class TextualScenarioPackageImpl extends EPackageImpl implements TextualS */ private EClass armTimerMessageEClass = null; + /** + * + * + * @generated + */ + private EClass lostFoundMessageEClass = null; + + /** + * + * + * @generated + */ + private EClass lostMessageEClass = null; + + /** + * + * + * @generated + */ + private EClass foundMessageEClass = null; + /** * * @@ -217,6 +242,13 @@ public class TextualScenarioPackageImpl extends EPackageImpl implements TextualS */ private EClass stateFragmentEClass = null; + /** + * + * + * @generated + */ + private EClass referenceEClass = null; + /** * Creates an instance of the model Package, registered with * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package @@ -630,6 +662,86 @@ public EAttribute getArmTimerMessage_DoubleDot() return (EAttribute)armTimerMessageEClass.getEStructuralFeatures().get(3); } + /** + * + * + * @generated + */ + public EClass getLostFoundMessage() + { + return lostFoundMessageEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getLostFoundMessage_Arrow() + { + return (EAttribute)lostFoundMessageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getLostFoundMessage_DoubleDot() + { + return (EAttribute)lostFoundMessageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getLostMessage() + { + return lostMessageEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getLostMessage_Source() + { + return (EAttribute)lostMessageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getFoundMessage() + { + return foundMessageEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getFoundMessage_Target() + { + return (EAttribute)foundMessageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getFoundMessage_Execution() + { + return (EAttribute)foundMessageEClass.getEStructuralFeatures().get(1); + } + /** * * @@ -850,6 +962,56 @@ public EAttribute getStateFragment_Name() return (EAttribute)stateFragmentEClass.getEStructuralFeatures().get(3); } + /** + * + * + * @generated + */ + public EClass getReference() + { + return referenceEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getReference_Keyword() + { + return (EAttribute)referenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getReference_Name() + { + return (EAttribute)referenceEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EAttribute getReference_Over() + { + return (EAttribute)referenceEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EAttribute getReference_Timelines() + { + return (EAttribute)referenceEClass.getEStructuralFeatures().get(3); + } + /** * * @@ -933,6 +1095,17 @@ public void createPackageContents() createEAttribute(armTimerMessageEClass, ARM_TIMER_MESSAGE__EXECUTION); createEAttribute(armTimerMessageEClass, ARM_TIMER_MESSAGE__DOUBLE_DOT); + lostFoundMessageEClass = createEClass(LOST_FOUND_MESSAGE); + createEAttribute(lostFoundMessageEClass, LOST_FOUND_MESSAGE__ARROW); + createEAttribute(lostFoundMessageEClass, LOST_FOUND_MESSAGE__DOUBLE_DOT); + + lostMessageEClass = createEClass(LOST_MESSAGE); + createEAttribute(lostMessageEClass, LOST_MESSAGE__SOURCE); + + foundMessageEClass = createEClass(FOUND_MESSAGE); + createEAttribute(foundMessageEClass, FOUND_MESSAGE__TARGET); + createEAttribute(foundMessageEClass, FOUND_MESSAGE__EXECUTION); + participantDeactivationEClass = createEClass(PARTICIPANT_DEACTIVATION); createEAttribute(participantDeactivationEClass, PARTICIPANT_DEACTIVATION__KEYWORD); @@ -959,6 +1132,12 @@ public void createPackageContents() createEAttribute(stateFragmentEClass, STATE_FRAGMENT__TIMELINE); createEAttribute(stateFragmentEClass, STATE_FRAGMENT__KEYWORD); createEAttribute(stateFragmentEClass, STATE_FRAGMENT__NAME); + + referenceEClass = createEClass(REFERENCE); + createEAttribute(referenceEClass, REFERENCE__KEYWORD); + createEAttribute(referenceEClass, REFERENCE__NAME); + createEAttribute(referenceEClass, REFERENCE__OVER); + createEAttribute(referenceEClass, REFERENCE__TIMELINES); } /** @@ -1005,9 +1184,13 @@ public void initializePackageContents() createMessageEClass.getESuperTypes().add(this.getSequenceMessageType()); deleteMessageEClass.getESuperTypes().add(this.getSequenceMessageType()); armTimerMessageEClass.getESuperTypes().add(this.getMessage()); + lostFoundMessageEClass.getESuperTypes().add(this.getMessage()); + lostMessageEClass.getESuperTypes().add(this.getLostFoundMessage()); + foundMessageEClass.getESuperTypes().add(this.getLostFoundMessage()); participantDeactivationEClass.getESuperTypes().add(this.getMessage()); combinedFragmentEClass.getESuperTypes().add(this.getElement()); stateFragmentEClass.getESuperTypes().add(this.getElement()); + referenceEClass.getESuperTypes().add(this.getElement()); // Initialize classes and features; add operations and parameters initEClass(modelEClass, Model.class, "Model", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); @@ -1063,6 +1246,17 @@ public void initializePackageContents() initEAttribute(getArmTimerMessage_Execution(), ecorePackage.getEString(), "execution", null, 0, 1, ArmTimerMessage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getArmTimerMessage_DoubleDot(), ecorePackage.getEString(), "doubleDot", null, 0, 1, ArmTimerMessage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(lostFoundMessageEClass, LostFoundMessage.class, "LostFoundMessage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getLostFoundMessage_Arrow(), ecorePackage.getEString(), "arrow", null, 0, 1, LostFoundMessage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getLostFoundMessage_DoubleDot(), ecorePackage.getEString(), "doubleDot", null, 0, 1, LostFoundMessage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(lostMessageEClass, LostMessage.class, "LostMessage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getLostMessage_Source(), ecorePackage.getEString(), "source", null, 0, 1, LostMessage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(foundMessageEClass, FoundMessage.class, "FoundMessage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getFoundMessage_Target(), ecorePackage.getEString(), "target", null, 0, 1, FoundMessage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getFoundMessage_Execution(), ecorePackage.getEString(), "execution", null, 0, 1, FoundMessage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(participantDeactivationEClass, ParticipantDeactivation.class, "ParticipantDeactivation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getParticipantDeactivation_Keyword(), ecorePackage.getEString(), "keyword", null, 0, 1, ParticipantDeactivation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); @@ -1090,6 +1284,12 @@ public void initializePackageContents() initEAttribute(getStateFragment_Keyword(), ecorePackage.getEString(), "keyword", null, 0, 1, StateFragment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getStateFragment_Name(), ecorePackage.getEString(), "name", null, 0, 1, StateFragment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(referenceEClass, Reference.class, "Reference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getReference_Keyword(), ecorePackage.getEString(), "keyword", null, 0, 1, Reference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getReference_Name(), ecorePackage.getEString(), "name", null, 0, 1, Reference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getReference_Over(), ecorePackage.getEString(), "over", null, 0, 1, Reference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getReference_Timelines(), ecorePackage.getEString(), "timelines", null, 0, -1, Reference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + // Create resource createResource(eNS_URI); } diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/util/TextualScenarioAdapterFactory.java b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/util/TextualScenarioAdapterFactory.java index 5299a6a9..6da5e1f8 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/util/TextualScenarioAdapterFactory.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/util/TextualScenarioAdapterFactory.java @@ -178,6 +178,21 @@ public Adapter caseArmTimerMessage(ArmTimerMessage object) return createArmTimerMessageAdapter(); } @Override + public Adapter caseLostFoundMessage(LostFoundMessage object) + { + return createLostFoundMessageAdapter(); + } + @Override + public Adapter caseLostMessage(LostMessage object) + { + return createLostMessageAdapter(); + } + @Override + public Adapter caseFoundMessage(FoundMessage object) + { + return createFoundMessageAdapter(); + } + @Override public Adapter caseParticipantDeactivation(ParticipantDeactivation object) { return createParticipantDeactivationAdapter(); @@ -203,6 +218,11 @@ public Adapter caseStateFragment(StateFragment object) return createStateFragmentAdapter(); } @Override + public Adapter caseReference(Reference object) + { + return createReferenceAdapter(); + } + @Override public Adapter defaultCase(EObject object) { return createEObjectAdapter(); @@ -494,6 +514,51 @@ public Adapter createArmTimerMessageAdapter() return null; } + /** + * Creates a new adapter for an object of class '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.LostFoundMessage Lost Found Message}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.LostFoundMessage + * @generated + */ + public Adapter createLostFoundMessageAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage Lost Message}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage + * @generated + */ + public Adapter createLostMessageAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage Found Message}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage + * @generated + */ + public Adapter createFoundMessageAdapter() + { + return null; + } + /** * Creates a new adapter for an object of class '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.ParticipantDeactivation Participant Deactivation}'. * @@ -569,6 +634,21 @@ public Adapter createStateFragmentAdapter() return null; } + /** + * Creates a new adapter for an object of class '{@link org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference Reference}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference + * @generated + */ + public Adapter createReferenceAdapter() + { + return null; + } + /** * Creates a new adapter for the default case. * diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/util/TextualScenarioSwitch.java b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/util/TextualScenarioSwitch.java index 5dfad6b6..e9fbab51 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/util/TextualScenarioSwitch.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src-gen/org/polarsys/capella/scenario/editor/dsl/textualScenario/util/TextualScenarioSwitch.java @@ -241,6 +241,35 @@ protected T doSwitch(int classifierID, EObject theEObject) if (result == null) result = defaultCase(theEObject); return result; } + case TextualScenarioPackage.LOST_FOUND_MESSAGE: + { + LostFoundMessage lostFoundMessage = (LostFoundMessage)theEObject; + T result = caseLostFoundMessage(lostFoundMessage); + if (result == null) result = caseMessage(lostFoundMessage); + if (result == null) result = caseElement(lostFoundMessage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case TextualScenarioPackage.LOST_MESSAGE: + { + LostMessage lostMessage = (LostMessage)theEObject; + T result = caseLostMessage(lostMessage); + if (result == null) result = caseLostFoundMessage(lostMessage); + if (result == null) result = caseMessage(lostMessage); + if (result == null) result = caseElement(lostMessage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case TextualScenarioPackage.FOUND_MESSAGE: + { + FoundMessage foundMessage = (FoundMessage)theEObject; + T result = caseFoundMessage(foundMessage); + if (result == null) result = caseLostFoundMessage(foundMessage); + if (result == null) result = caseMessage(foundMessage); + if (result == null) result = caseElement(foundMessage); + if (result == null) result = defaultCase(theEObject); + return result; + } case TextualScenarioPackage.PARTICIPANT_DEACTIVATION: { ParticipantDeactivation participantDeactivation = (ParticipantDeactivation)theEObject; @@ -280,6 +309,14 @@ protected T doSwitch(int classifierID, EObject theEObject) if (result == null) result = defaultCase(theEObject); return result; } + case TextualScenarioPackage.REFERENCE: + { + Reference reference = (Reference)theEObject; + T result = caseReference(reference); + if (result == null) result = caseElement(reference); + if (result == null) result = defaultCase(theEObject); + return result; + } default: return defaultCase(theEObject); } } @@ -572,6 +609,54 @@ public T caseArmTimerMessage(ArmTimerMessage object) return null; } + /** + * Returns the result of interpreting the object as an instance of 'Lost Found Message'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Lost Found Message'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLostFoundMessage(LostFoundMessage object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Lost Message'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Lost Message'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLostMessage(LostMessage object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Found Message'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Found Message'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFoundMessage(FoundMessage object) + { + return null; + } + /** * Returns the result of interpreting the object as an instance of 'Participant Deactivation'. * @@ -652,6 +737,22 @@ public T caseStateFragment(StateFragment object) return null; } + /** + * Returns the result of interpreting the object as an instance of 'Reference'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Reference'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseReference(Reference object) + { + return null; + } + /** * Returns the result of interpreting the object as an instance of 'EObject'. * diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src/org/polarsys/capella/scenario/editor/dsl/TextualScenario.xtext b/plugins/org.polarsys.capella.scenario.editor.dsl/src/org/polarsys/capella/scenario/editor/dsl/TextualScenario.xtext index 1841698f..e6a633be 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/src/org/polarsys/capella/scenario/editor/dsl/TextualScenario.xtext +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src/org/polarsys/capella/scenario/editor/dsl/TextualScenario.xtext @@ -32,7 +32,7 @@ GenericFunction: ; Element: - Message | CombinedFragment | StateFragment + Message | CombinedFragment | StateFragment | Reference ; Actor: @@ -64,7 +64,7 @@ Role: ; Message: - SequenceMessageType | ArmTimerMessage | ParticipantDeactivation + SequenceMessageType | ArmTimerMessage | ParticipantDeactivation | LostFoundMessage ; SequenceMessageType: @@ -87,17 +87,29 @@ ArmTimerMessage: arrow = "->>" participant=STRING (execution = 'withExecution')? doubleDot = ':' name=STRING ; +LostFoundMessage: + LostMessage | FoundMessage +; + +LostMessage: + source=STRING arrow = '->o' doubleDot = ':' name=STRING +; + +FoundMessage: + arrow = 'o->' target=STRING (execution = 'withExecution')? doubleDot = ':' name=STRING +; + ParticipantDeactivation: keyword = 'deactivate' name=STRING ; CombinedFragment: keyword = ('alt'|'loop'|'par'|'assert'|'critical'|'ignore'|'neg'|'opt'|'seq'|'strict'|'unset') - expression=STRING over='over' (timelines+=STRING)+ block=Block (operands+=Operand)* + (expression=STRING)? over='over' (timelines+=STRING)+ block=Block (operands+=Operand)* ; Operand: - keyword='else'? expression=STRING block=Block + keyword='else'? (expression=STRING)? block=Block ; Block: @@ -106,4 +118,8 @@ Block: StateFragment: on='on' timeline=STRING keyword=('state' | 'mode' | 'function') name=STRING +; + +Reference: + keyword = 'ref' name=STRING over = 'over' (timelines+=STRING)+ ; \ No newline at end of file diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src/org/polarsys/capella/scenario/editor/dsl/formatting2/TextualScenarioFormatter.xtend b/plugins/org.polarsys.capella.scenario.editor.dsl/src/org/polarsys/capella/scenario/editor/dsl/formatting2/TextualScenarioFormatter.xtend index 0acf2f2b..44cc7f82 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/src/org/polarsys/capella/scenario/editor/dsl/formatting2/TextualScenarioFormatter.xtend +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src/org/polarsys/capella/scenario/editor/dsl/formatting2/TextualScenarioFormatter.xtend @@ -24,6 +24,7 @@ import org.polarsys.capella.scenario.editor.dsl.textualScenario.Block import org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment import org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment import org.polarsys.capella.scenario.editor.dsl.textualScenario.Operand +import org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference class TextualScenarioFormatter extends AbstractFormatter2 { @@ -75,4 +76,9 @@ class TextualScenarioFormatter extends AbstractFormatter2 { def dispatch void format(StateFragment stateFragment, extension IFormattableDocument document) { stateFragment.regionFor.feature(TextualScenarioPackage.Literals.STATE_FRAGMENT__NAME).append[newLine] } + + def dispatch void format(Reference reference, extension IFormattableDocument document) { + val features = reference.regionFor.features(TextualScenarioPackage.Literals.REFERENCE__TIMELINES) + features.get(features.size - 1).append[newLine] + } } diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src/org/polarsys/capella/scenario/editor/dsl/helpers/TextualScenarioHelper.xtend b/plugins/org.polarsys.capella.scenario.editor.dsl/src/org/polarsys/capella/scenario/editor/dsl/helpers/TextualScenarioHelper.xtend index 68702b14..ec967199 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/src/org/polarsys/capella/scenario/editor/dsl/helpers/TextualScenarioHelper.xtend +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src/org/polarsys/capella/scenario/editor/dsl/helpers/TextualScenarioHelper.xtend @@ -24,11 +24,13 @@ import org.polarsys.capella.core.data.fa.ComponentExchange import org.polarsys.capella.core.data.fa.FunctionalExchange import org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment import org.polarsys.capella.scenario.editor.dsl.textualScenario.Model -import org.polarsys.capella.scenario.editor.dsl.textualScenario.Operand import org.polarsys.capella.scenario.editor.dsl.textualScenario.Block import org.polarsys.capella.scenario.editor.dsl.textualScenario.Element import org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessageType import java.util.Set +import org.polarsys.capella.scenario.editor.dsl.textualScenario.Message +import org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage +import org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage /** * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#content-assist @@ -47,8 +49,8 @@ class TextualScenarioHelper { if(EmbeddedEditorInstanceHelper.isFEScenario()) return TYPE_FE for (element : elements) { - if (element instanceof SequenceMessage) { - var message = element as SequenceMessage + if (element instanceof Message) { + var message = element as Message return getMessageExchangeType(message) } if (element instanceof CombinedFragment) { @@ -62,8 +64,11 @@ class TextualScenarioHelper { /* * we return CE or FE or null in case we allow both or other type */ - def static getMessageExchangeType(SequenceMessage message) { - var exchangesAvailable = EmbeddedEditorInstanceHelper.getExchangeMessages(message.getSource, message.getTarget) + def static getMessageExchangeType(Message message) { + + var exchangesAvailable = EmbeddedEditorInstanceHelper.getExchangeMessages(getSourceOfMessage(message), + getTargetOfMessage(message) + ) var allowedTypes = newHashSet as Set for(exchange : exchangesAvailable) { if(message.name !== null && message.name.equals(CapellaElementExt.getName(exchange))) { @@ -82,9 +87,10 @@ class TextualScenarioHelper { /* * we return a list of available exchanges CE or FE */ - def static Set getAllMessageExchangeType(SequenceMessage message) { - var exchangesAvailable = EmbeddedEditorInstanceHelper.getExchangeMessages(message.getSource, message.getTarget) + def static Set getAllMessageExchangeType(Message message) { var allowedTypes = newHashSet as Set + var exchangesAvailable = EmbeddedEditorInstanceHelper.getExchangeMessages(getSourceOfMessage(message), + getTargetOfMessage(message)) for(exchange : exchangesAvailable) { if(message.name !== null && message.name.equals(CapellaElementExt.getName(exchange))) { var type = getExchangeType(exchange) @@ -104,12 +110,28 @@ class TextualScenarioHelper { return null } - def static participantsDefinedBefore(EObject element, Model rootModel) { - if(element instanceof Model) - return (element as Model).participants - else { - return rootModel.participants - } + def private static String getSourceOfMessage(Message message) { + var source = null as String + if(message instanceof SequenceMessage) { + source = (message as SequenceMessage).source + } else if(message instanceof LostMessage) { + source = (message as LostMessage).source + } + return source + } + + def private static String getTargetOfMessage(Message message) { + var target = null as String + if(message instanceof SequenceMessage) { + target = (message as SequenceMessage).target + } else if(message instanceof FoundMessage) { + target = (message as FoundMessage).target + } + return target + } + + def static participantsDefinedBefore(Model rootModel) { + return rootModel.participants } def static participantsDefinedBeforeNames(EObject element) { @@ -117,7 +139,7 @@ class TextualScenarioHelper { var container = getModelContainer(element) if (container instanceof Model) { var model = container as Model - var participants = participantsDefinedBefore(element, model) + var participants = participantsDefinedBefore(model) for (participant : participants) { participantsNames.add(participant.name) } diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/src/org/polarsys/capella/scenario/editor/dsl/validation/TextualScenarioValidator.xtend b/plugins/org.polarsys.capella.scenario.editor.dsl/src/org/polarsys/capella/scenario/editor/dsl/validation/TextualScenarioValidator.xtend index 72f2547d..38a410df 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/src/org/polarsys/capella/scenario/editor/dsl/validation/TextualScenarioValidator.xtend +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/src/org/polarsys/capella/scenario/editor/dsl/validation/TextualScenarioValidator.xtend @@ -35,6 +35,15 @@ import java.util.HashSet import org.eclipse.emf.ecore.EAttribute import java.util.List import java.util.Set +import org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference +import java.util.HashMap +import java.util.LinkedList +import org.polarsys.capella.scenario.editor.dsl.textualScenario.Element +import org.eclipse.emf.ecore.EReference +import org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage +import org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage +import org.polarsys.capella.scenario.editor.dsl.textualScenario.Message +import org.polarsys.capella.scenario.editor.dsl.textualScenario.LostFoundMessage /** * This class contains custom validation rules. @@ -98,11 +107,20 @@ class TextualScenarioValidator extends AbstractTextualScenarioValidator { } } + @Check + def checkSequenceMessagesExchangeType(SequenceMessage sequenceMessage) { + checkMessagesExchangeType(sequenceMessage) + } + + @Check + def checkSequenceMessagesExchangeType(LostFoundMessage lostFoundMessage) { + checkMessagesExchangeType(lostFoundMessage) + } + /* * check that a CE (component exchange) and an FE (functional exchange) are not used in the same place */ - @Check - def checkMessagesExchangeType(SequenceMessage message) { + def checkMessagesExchangeType(Message message) { if (EmbeddedEditorInstanceHelper.isESScenario()) { var model = TextualScenarioHelper.getModelContainer(message) if (model instanceof Model) { @@ -139,83 +157,21 @@ class TextualScenarioValidator extends AbstractTextualScenarioValidator { } } - /* - * Do not allow duplicated messages between name source, target - * ex: not allowed: "A1" -> "A2" : "MSG1", "A1" -> "A2" : "MSG1" - * ex: allowed: "A1" -> "A2" : "MSG1", "A2" -> "A3" : "MSG1" - */ - - @Check - def checkDuplicatedSequenceMessageNames(SequenceMessage message) { - var model = TextualScenarioHelper.getModelContainer(message) - if(model instanceof Model) - checkDuplicated(message, model as Model, newHashSet) - } - - @Check - def checkDuplicatedArmTimerMessageNames(ArmTimerMessage message) { - var model = TextualScenarioHelper.getModelContainer(message) - if(model instanceof Model) - checkDuplicated(message, model as Model, newHashSet) - } - - def boolean checkDuplicated(EObject elementToCheck, EObject model, HashSet names) { - var elements = TextualScenarioHelper.getElements(model) - for (element : elements) { - - if (element instanceof SequenceMessageType || element instanceof ArmTimerMessage || - element instanceof CombinedFragment) { - if (!names.add(getElementMapKey(element)) && element.equals(elementToCheck)) { - if (element instanceof SequenceMessageType) { - var source = (element as SequenceMessageType).source - var target = (element as SequenceMessageType).target - error( - 'The same exchange is already used in text editor between \"' + source + "\" and \"" + - target + "\"!", TextualScenarioPackage.Literals.MESSAGE__NAME) - } else if (element instanceof ArmTimerMessage) { - error('The same exchange is already used in text editor on timeline \"' + - (element as ArmTimerMessage).participant + "\"!", - TextualScenarioPackage.Literals.MESSAGE__NAME) - } else if (element instanceof CombinedFragment) { - error(String.format( - "The same " + element.keyword + " with expression \" " + element.expression + - "\" and timelines " + element.timelines + " is already used in text editor!" - ), TextualScenarioPackage.Literals.COMBINED_FRAGMENT__EXPRESSION) - } - return true - } - } - - if (element instanceof CombinedFragment) { - if (checkDuplicated(elementToCheck, element, names) == true) { - return true - } - } - } - return false - } - @Check def checkDeactivateMessagesModel(Model model) { - checkDeactivateMessages(model) - } - - @Check - def checkDeactivateMessagesBlock(Block block) { - checkDeactivateMessages(block) + checkDeactivateMessages(model, newLinkedList, model.elements) } - /* * Checks on deactivation keyword * If we encounter a deactivation on a target, check that we have a corresponding sequence message that can be deactivated */ - def checkDeactivateMessages(EObject model) { + def void checkDeactivateMessages(EObject container, + LinkedList messageTargets, + List elements) { var index = 0 // a message shall occur before a deactivation // keep this array with the targets of each encountered message to check that the message happens before deactivation - var messageTargets = newLinkedList - var elements = TextualScenarioHelper.getElements(model) for (obj : elements) { if (obj instanceof SequenceMessage && (obj as SequenceMessage).execution !== null) { // add the already encountered messages to the list @@ -227,34 +183,64 @@ class TextualScenarioValidator extends AbstractTextualScenarioValidator { messageTargets.add((obj as ArmTimerMessage).participant) } + if (obj instanceof FoundMessage && (obj as FoundMessage).execution !== null) { + // add the already encountered messages to the list + messageTargets.add((obj as FoundMessage).target) + } + + if (obj instanceof CombinedFragment) { + var cf = obj as CombinedFragment + checkDeactivateMessages(cf.block, + messageTargets, + cf.block.blockElements + ) + cf.operands.forEach[operand | + checkDeactivateMessages(operand.block, + messageTargets, + operand.block.blockElements + ) + ] + } if (obj instanceof ParticipantDeactivation) { - var deactivation = obj as ParticipantDeactivation - - // if we already encountered a message with target ad deactivation.name, - // we will remove the message from the messages list, because this message is matched with a deactivation - var removed = messageTargets.remove(deactivation.name) - if (!removed) { - // if the deactivation is not matched in a previous message, display an error - if (model instanceof Model) { - error( - 'Deactivation keyword not expected!', - TextualScenarioPackage.Literals.MODEL__ELEMENTS, - index - ) - } else if (model instanceof Block) { - error( - 'Deactivation keyword not expected!', - TextualScenarioPackage.Literals.BLOCK__BLOCK_ELEMENTS, - index - ) - } + var refFeature = TextualScenarioPackage.Literals.MODEL__ELEMENTS + if (container instanceof Block) { + refFeature = TextualScenarioPackage.Literals.BLOCK__BLOCK_ELEMENTS } + showErrorDeactivateMessages( + obj as ParticipantDeactivation, + container, + messageTargets, + refFeature, + index + ) } index++ } } - + + def showErrorDeactivateMessages( + ParticipantDeactivation deactivation, + EObject container, + LinkedList messageTargets, + EReference refFeature, + int index + ) { + // if we already encountered a message with target ad deactivation.name, + // we will remove the message from the messages list, because this message is matched with a deactivation + var indexOfTarget = messageTargets.lastIndexOf(deactivation.name) + if (indexOfTarget < 0) { + error( + 'Deactivation keyword not expected!', + container, + refFeature, + index + ) + } else { + messageTargets.remove(indexOfTarget) + } + } + /* * check that the messages we define are valid * if the message is inside a combined fragment, the messages must be between the defined timelines of the combined fragment @@ -344,6 +330,35 @@ class TextualScenarioValidator extends AbstractTextualScenarioValidator { } } + @Check + def checkLostMessage(LostMessage message) { + // check lost message could be used in opened diagram + if (!EmbeddedEditorInstanceHelper.isESScenario()) { + error("Lost message can not be used in this diagram!", + TextualScenarioPackage.Literals.LOST_FOUND_MESSAGE__ARROW) + } + + // check timeline exist + if (!TextualScenarioHelper.participantsDefinedBeforeNames(message).contains(message.source)) { + error("Timeline not defined in text editor!", + TextualScenarioPackage.Literals.LOST_MESSAGE__SOURCE) + } + } + + @Check + def checkFoundMessage(FoundMessage message) { + // check found message could be used in opened diagram + if (!EmbeddedEditorInstanceHelper.isESScenario()) { + error("Found message can not be used in this diagram!", + TextualScenarioPackage.Literals.LOST_FOUND_MESSAGE__ARROW) + } + + // check timeline exist + if (!TextualScenarioHelper.participantsDefinedBeforeNames(message).contains(message.target)) { + error("Timeline not defined in text editor!", + TextualScenarioPackage.Literals.FOUND_MESSAGE__TARGET) + } + } def checkSameSourceAndTarget(SequenceMessageType message) { if (message.source.equals(message.target)) { @@ -354,13 +369,6 @@ class TextualScenarioValidator extends AbstractTextualScenarioValidator { } } - @Check - def checkDuplicatedCombinedFragment(CombinedFragment combinedFragment) { - var model = TextualScenarioHelper.getModelContainer(combinedFragment) - if(model instanceof Model) - checkDuplicated(combinedFragment, model, newHashSet) - } - /* * check if a timeline involved in a combined fragment was used after a delete message was already defined * on the previous lines on the same timeline @@ -400,6 +408,30 @@ class TextualScenarioValidator extends AbstractTextualScenarioValidator { checkElementAfterDelete(model as Model, armTimer, armTimer.participant, TextualScenarioPackage.Literals.ARM_TIMER_MESSAGE__PARTICIPANT, 0) } + + /* + * check if a participant involved in a lost message was used after a delete message was already defined + * on the previous lines on the same timeline + */ + @Check + def checkParticipantUsedAfterLostMessage(LostMessage message) { + var model = TextualScenarioHelper.getModelContainer(message) + if (model instanceof Model) + checkElementAfterDelete(model as Model, message, message.source, + TextualScenarioPackage.Literals.LOST_MESSAGE__SOURCE, 0) + } + + /* + * check if a participant involved in a lost message was used after a delete message was already defined + * on the previous lines on the same timeline + */ + @Check + def checkParticipantUsedAfterFoundMessage(FoundMessage message) { + var model = TextualScenarioHelper.getModelContainer(message) + if (model instanceof Model) + checkElementAfterDelete(model as Model, message, message.target, + TextualScenarioPackage.Literals.FOUND_MESSAGE__TARGET, 0) + } /* * check if a sequence message source element was used after a delete message was already defined @@ -491,6 +523,18 @@ class TextualScenarioValidator extends AbstractTextualScenarioValidator { return false } } + + if (element instanceof LostMessage) { + if ((element as LostMessage).source.equals(target)) { + return false + } + } + + if (element instanceof FoundMessage) { + if ((element as FoundMessage).target.equals(target)) { + return false + } + } if (element instanceof CombinedFragment) { if ((element as CombinedFragment).timelines.contains(target)) { @@ -507,6 +551,12 @@ class TextualScenarioValidator extends AbstractTextualScenarioValidator { return false } } + + if (element instanceof Reference) { + if ((element as Reference).timelines.contains(target)) { + return false; + } + } } return true } @@ -550,67 +600,110 @@ class TextualScenarioValidator extends AbstractTextualScenarioValidator { */ @Check def checkWithExecutionHasDeactivateModel(Model model) { - checkWithExecutionHasDeactivate(model) + var messageWithExecutionTargets = newLinkedList + var messageWithExecutionTargetsIndex = newLinkedList + var messageWithExecutionTargetsContainer = newLinkedList + checkWithExecutionHasDeactivate(model, + messageWithExecutionTargets, + messageWithExecutionTargetsIndex, + messageWithExecutionTargetsContainer, + model.elements + ) + + showErrorWithExecutionHasDeactivate(messageWithExecutionTargets, messageWithExecutionTargetsIndex, messageWithExecutionTargetsContainer) } - @Check - def checkWithExecutionHasDeactivateBlock(Block block) { - checkWithExecutionHasDeactivate(block) + def void showErrorWithExecutionHasDeactivate( + LinkedList messageWithExecutionTargets, + LinkedList messageWithExecutionTargetsIndex, + LinkedList messageWithExecutionTargetsContainer + ) { + // if not all withExecution messages were matched with a deactivation, show an error + // use the index list to know on which message to display the error + for (var i = 0; i < messageWithExecutionTargets.size; i++) { + var container = messageWithExecutionTargetsContainer.get(i) + if (container instanceof Model) { + error( + 'Deactivation keyword expected for a withExecution message!', + container, + TextualScenarioPackage.Literals.MODEL__ELEMENTS, + messageWithExecutionTargetsIndex.get(i) + ) + } else if (container instanceof Block) { + error( + 'Deactivation keyword expected for a withExecution message!', + container, + TextualScenarioPackage.Literals.BLOCK__BLOCK_ELEMENTS, + messageWithExecutionTargets.get(i) + ) + } + } } - def checkWithExecutionHasDeactivate(EObject model) { + def void checkWithExecutionHasDeactivate(EObject container, + LinkedList messageWithExecutionTargets, + LinkedList messageWithExecutionTargetsIndex, + LinkedList messageWithExecutionTargetsContainer, + List elements + ) { // keep a list with the target of the messages that contains the withExecution keyword // keep also a list with the index on which withExecution message is found, to know on which line to show an error - var messageWithExecutionTargets = newLinkedList - var messageWithExecutionTargetsIndex = newLinkedList var index = 0 - var elements = TextualScenarioHelper.getElements(model) for (obj : elements) { if (obj instanceof SequenceMessage && (obj as SequenceMessage).execution !== null) { // add the SequenceMessage with execution to a list messageWithExecutionTargets.add((obj as SequenceMessage).target) messageWithExecutionTargetsIndex.add(index) + messageWithExecutionTargetsContainer.add(container) } if (obj instanceof ArmTimerMessage && (obj as ArmTimerMessage).execution !== null) { messageWithExecutionTargets.add((obj as ArmTimerMessage).participant) messageWithExecutionTargetsIndex.add(index) + messageWithExecutionTargetsContainer.add(container) + } + + if (obj instanceof FoundMessage && (obj as FoundMessage).execution !== null) { + messageWithExecutionTargets.add((obj as FoundMessage).target) + messageWithExecutionTargetsIndex.add(index) + messageWithExecutionTargetsContainer.add(container) + } + + if (obj instanceof CombinedFragment) { + var cf = obj as CombinedFragment + checkWithExecutionHasDeactivate(cf.block, messageWithExecutionTargets, + messageWithExecutionTargetsIndex, + messageWithExecutionTargetsContainer, + cf.block.blockElements + ) + cf.operands.forEach[operand | + checkWithExecutionHasDeactivate(operand.block, + messageWithExecutionTargets, + messageWithExecutionTargetsIndex, + messageWithExecutionTargetsContainer, + operand.block.blockElements + ) + ] } if (obj instanceof ParticipantDeactivation) { var targetName = (obj as ParticipantDeactivation).name - var indexOfTarget = messageWithExecutionTargets.indexOf(targetName) + var indexOfTarget = messageWithExecutionTargets.lastIndexOf(targetName) if (indexOfTarget >= 0) { messageWithExecutionTargets.remove(indexOfTarget) messageWithExecutionTargetsIndex.remove(indexOfTarget) + messageWithExecutionTargetsContainer.remove(indexOfTarget) } } index++ } - // if not all withExecution messages were matched with a deactivation, show an error - // use the index list to know on which message to display the error - for (var i = 0; i < messageWithExecutionTargets.size; i++) { - if (model instanceof Model) { - error( - 'Deactivation keyword expected for a withExecution message!', - TextualScenarioPackage.Literals.MODEL__ELEMENTS, - messageWithExecutionTargetsIndex.get(i) - ) - } else { - error( - 'Deactivation keyword expected for a withExecution message!', - TextualScenarioPackage.Literals.BLOCK__BLOCK_ELEMENTS, - messageWithExecutionTargets.get(i) - ) - } - } } /* * Expression shall not be empty */ - @Check + // @Check def checkCombinedFragmentEmptyExpression(CombinedFragment combinedFragment) { if (combinedFragment.expression === null || combinedFragment.expression.isEmpty) { error( @@ -623,7 +716,7 @@ class TextualScenarioValidator extends AbstractTextualScenarioValidator { /* * Expression shall not be empty */ - @Check +// @Check def checkOperandEmptyExpression(Operand operand) { if (operand.expression === null || operand.expression.isEmpty) { error( @@ -692,7 +785,7 @@ class TextualScenarioValidator extends AbstractTextualScenarioValidator { def checkContainedCombinedFragment(CombinedFragment combinedFragment) { var container = TextualScenarioHelper.getDirectContainer(combinedFragment) if (container instanceof CombinedFragment) { - var upperContainer = getContainerCombinedFragmentTimelines(combinedFragment, container) + var upperContainer = getContainerCombinedFragmentTimelines(combinedFragment.timelines, container) if (upperContainer !== null && upperContainer instanceof CombinedFragment) { error( 'Timelines covered by this ' + combinedFragment.keyword + @@ -704,15 +797,70 @@ class TextualScenarioValidator extends AbstractTextualScenarioValidator { } } - def EObject getContainerCombinedFragmentTimelines(CombinedFragment combinedFragment, CombinedFragment container) { + @Check + def checkReference(Reference reference) { + // check duplicated timelines + var hashMap = new HashMap() + var index = 0; + for (timeline : reference.timelines) { + if (hashMap.get(timeline) == null) { + hashMap.put(timeline, 1) + } else { + error('Duplicated timeline!', + TextualScenarioPackage.Literals.REFERENCE__TIMELINES, index) + } + index++ + } + + // check valid timeline (participant exists in xtext) + var participantsDefined = TextualScenarioHelper.participantsDefinedBeforeNames(reference); + index = 0 + for (timeline : reference.timelines) { + if (!participantsDefined.contains(timeline)) { + error('Timeline not defined in text editor!', + TextualScenarioPackage.Literals.REFERENCE__TIMELINES, index) + } + index++ + } + + // check reference exists + if (!EmbeddedEditorInstanceHelper.referencedScenariosName.contains(reference.name)) { + error('Referenced scenario does not exist!', + TextualScenarioPackage.Literals.REFERENCE__NAME) + } + + // check that timelines are a subset of combined fragment timelines + var container = TextualScenarioHelper.getDirectContainer(reference) + if (container instanceof CombinedFragment) { + var upperContainer = getContainerCombinedFragmentTimelines(reference.timelines, container) + if (upperContainer !== null && upperContainer instanceof CombinedFragment) { + error( + 'Timelines covered by this reference must be a subset of the parent covered timelines ' + + (upperContainer as CombinedFragment).timelines + "!", + TextualScenarioPackage.Literals.REFERENCE__TIMELINES + ) + } + } + // check timeline used after delete message + var model = TextualScenarioHelper.getModelContainer(reference) + if (model instanceof Model) { + index = 0 + for (timeline : reference.timelines) { + checkElementAfterDelete(model as Model, reference, timeline, + TextualScenarioPackage.Literals.REFERENCE__TIMELINES, index++) + } + } + } + + def EObject getContainerCombinedFragmentTimelines(List timelines, CombinedFragment container) { // timeline must be a subset of the parent timeline - if (innerCombinedFragment(combinedFragment, container) && - !isASubset(combinedFragment.timelines, (container as CombinedFragment).timelines)) { + if (innerCombinedFragment(timelines, container) && + !isASubset(timelines, (container as CombinedFragment).timelines)) { return container } else { var upperContainer = TextualScenarioHelper.getDirectContainer(container) if (upperContainer instanceof CombinedFragment) { - return getContainerCombinedFragmentTimelines(combinedFragment, upperContainer as CombinedFragment); + return getContainerCombinedFragmentTimelines(timelines, upperContainer as CombinedFragment); } } return null @@ -747,10 +895,10 @@ class TextualScenarioValidator extends AbstractTextualScenarioValidator { * we consider that it is a inner combined fragment if it has some same timelines as the parent * added this due to the limitation that a paralel combined fragment in diagram, is represented inside the text */ - def boolean innerCombinedFragment(CombinedFragment combinedFragment, CombinedFragment container) { - for(timeline : combinedFragment.timelines) { - if(container.timelines.contains(timeline)) - return true + def boolean innerCombinedFragment(List timelines, CombinedFragment container) { + for (timeline : timelines) { + if (container.timelines.contains(timeline)) + return true } return false } diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/TextualScenarioRuntimeModule.java b/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/TextualScenarioRuntimeModule.java index cb37d92b..9086daed 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/TextualScenarioRuntimeModule.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/TextualScenarioRuntimeModule.java @@ -1,3 +1,15 @@ +/******************************************************************************* + * Copyright (c) 2020 THALES GLOBAL SERVICES. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Thales - initial API and implementation + ******************************************************************************/ /** * Copyright (c) 2020 THALES GLOBAL SERVICES. * diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/TextualScenarioStandaloneSetup.java b/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/TextualScenarioStandaloneSetup.java index 1d5873a9..2326eb1b 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/TextualScenarioStandaloneSetup.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/TextualScenarioStandaloneSetup.java @@ -32,7 +32,6 @@ @SuppressWarnings("all") public class TextualScenarioStandaloneSetup extends TextualScenarioStandaloneSetupGenerated { public static void doSetup() { - TextualScenarioStandaloneSetup _textualScenarioStandaloneSetup = new TextualScenarioStandaloneSetup(); - _textualScenarioStandaloneSetup.createInjectorAndDoEMFRegistration(); + new TextualScenarioStandaloneSetup().createInjectorAndDoEMFRegistration(); } } diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/formatting2/TextualScenarioFormatter.java b/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/formatting2/TextualScenarioFormatter.java index 55520208..6de60683 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/formatting2/TextualScenarioFormatter.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/formatting2/TextualScenarioFormatter.java @@ -26,14 +26,13 @@ import com.google.inject.Inject; import java.util.Arrays; +import java.util.List; import java.util.function.Consumer; -import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.formatting2.AbstractFormatter2; import org.eclipse.xtext.formatting2.IFormattableDocument; import org.eclipse.xtext.formatting2.IHiddenRegionFormatter; import org.eclipse.xtext.formatting2.regionaccess.ISemanticRegion; -import org.eclipse.xtext.formatting2.regionaccess.ISemanticRegionsFinder; import org.eclipse.xtext.resource.XtextResource; import org.eclipse.xtext.xbase.lib.Extension; import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; @@ -45,6 +44,7 @@ import org.polarsys.capella.scenario.editor.dsl.textualScenario.Model; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Operand; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Participant; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference; import org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment; import org.polarsys.capella.scenario.editor.dsl.textualScenario.TextualScenarioPackage; @@ -55,10 +55,8 @@ public class TextualScenarioFormatter extends AbstractFormatter2 { private TextualScenarioGrammarAccess _textualScenarioGrammarAccess; protected void _format(final Model model, @Extension final IFormattableDocument document) { - ISemanticRegionsFinder _regionFor = this.textRegionExtensions.regionFor(model); - final ISemanticRegion begin = _regionFor.feature(TextualScenarioPackage.Literals.MODEL__BEGIN); - ISemanticRegionsFinder _regionFor_1 = this.textRegionExtensions.regionFor(model); - final ISemanticRegion end = _regionFor_1.feature(TextualScenarioPackage.Literals.MODEL__END); + final ISemanticRegion begin = this.textRegionExtensions.regionFor(model).feature(TextualScenarioPackage.Literals.MODEL__BEGIN); + final ISemanticRegion end = this.textRegionExtensions.regionFor(model).feature(TextualScenarioPackage.Literals.MODEL__END); final Procedure1 _function = (IHiddenRegionFormatter it) -> { it.noSpace(); }; @@ -71,46 +69,37 @@ protected void _format(final Model model, @Extension final IFormattableDocument it.indent(); }; document.interior(begin, end, _function_2); - EList _participants = model.getParticipants(); final Consumer _function_3 = (Participant element) -> { document.format(element); }; - _participants.forEach(_function_3); - EList _elements = model.getElements(); + model.getParticipants().forEach(_function_3); final Consumer _function_4 = (Element element) -> { document.format(element); }; - _elements.forEach(_function_4); + model.getElements().forEach(_function_4); } protected void _format(final Message message, @Extension final IFormattableDocument document) { - ISemanticRegionsFinder _regionFor = this.textRegionExtensions.regionFor(message); - ISemanticRegion _feature = _regionFor.feature(TextualScenarioPackage.Literals.MESSAGE__NAME); final Procedure1 _function = (IHiddenRegionFormatter it) -> { it.newLine(); }; - document.append(_feature, _function); + document.append(this.textRegionExtensions.regionFor(message).feature(TextualScenarioPackage.Literals.MESSAGE__NAME), _function); } protected void _format(final Participant participant, @Extension final IFormattableDocument document) { - ISemanticRegionsFinder _regionFor = this.textRegionExtensions.regionFor(participant); - final ISemanticRegion p = _regionFor.feature(TextualScenarioPackage.Literals.PARTICIPANT__NAME); - ISemanticRegionsFinder _regionFor_1 = this.textRegionExtensions.regionFor(participant); - ISemanticRegion _feature = _regionFor_1.feature(TextualScenarioPackage.Literals.PARTICIPANT__NAME); + final ISemanticRegion p = this.textRegionExtensions.regionFor(participant).feature(TextualScenarioPackage.Literals.PARTICIPANT__NAME); final Procedure1 _function = (IHiddenRegionFormatter it) -> { it.newLine(); }; - document.append(_feature, _function); + document.append(this.textRegionExtensions.regionFor(participant).feature(TextualScenarioPackage.Literals.PARTICIPANT__NAME), _function); } protected void _format(final CombinedFragment fragment, @Extension final IFormattableDocument document) { - Block _block = fragment.getBlock(); - this.format(_block, document); - EList _operands = fragment.getOperands(); + this.format(fragment.getBlock(), document); final Consumer _function = (Operand element) -> { document.format(element); }; - _operands.forEach(_function); + fragment.getOperands().forEach(_function); final Procedure1 _function_1 = (IHiddenRegionFormatter it) -> { it.newLine(); }; @@ -118,15 +107,12 @@ protected void _format(final CombinedFragment fragment, @Extension final IFormat } protected void _format(final Operand operand, @Extension final IFormattableDocument document) { - Block _block = operand.getBlock(); - this.format(_block, document); + this.format(operand.getBlock(), document); } protected void _format(final Block block, @Extension final IFormattableDocument document) { - ISemanticRegionsFinder _regionFor = this.textRegionExtensions.regionFor(block); - final ISemanticRegion begin = _regionFor.feature(TextualScenarioPackage.Literals.BLOCK__BEGIN); - ISemanticRegionsFinder _regionFor_1 = this.textRegionExtensions.regionFor(block); - final ISemanticRegion end = _regionFor_1.feature(TextualScenarioPackage.Literals.BLOCK__END); + final ISemanticRegion begin = this.textRegionExtensions.regionFor(block).feature(TextualScenarioPackage.Literals.BLOCK__BEGIN); + final ISemanticRegion end = this.textRegionExtensions.regionFor(block).feature(TextualScenarioPackage.Literals.BLOCK__END); final Procedure1 _function = (IHiddenRegionFormatter it) -> { it.newLine(); }; @@ -135,20 +121,27 @@ protected void _format(final Block block, @Extension final IFormattableDocument it.indent(); }; document.interior(begin, end, _function_1); - EList _blockElements = block.getBlockElements(); final Consumer _function_2 = (Element element) -> { document.format(element); }; - _blockElements.forEach(_function_2); + block.getBlockElements().forEach(_function_2); } protected void _format(final StateFragment stateFragment, @Extension final IFormattableDocument document) { - ISemanticRegionsFinder _regionFor = this.textRegionExtensions.regionFor(stateFragment); - ISemanticRegion _feature = _regionFor.feature(TextualScenarioPackage.Literals.STATE_FRAGMENT__NAME); final Procedure1 _function = (IHiddenRegionFormatter it) -> { it.newLine(); }; - document.append(_feature, _function); + document.append(this.textRegionExtensions.regionFor(stateFragment).feature(TextualScenarioPackage.Literals.STATE_FRAGMENT__NAME), _function); + } + + protected void _format(final Reference reference, @Extension final IFormattableDocument document) { + final List features = this.textRegionExtensions.regionFor(reference).features(TextualScenarioPackage.Literals.REFERENCE__TIMELINES); + int _size = features.size(); + int _minus = (_size - 1); + final Procedure1 _function = (IHiddenRegionFormatter it) -> { + it.newLine(); + }; + document.append(features.get(_minus), _function); } public void format(final Object fragment, final IFormattableDocument document) { @@ -161,6 +154,9 @@ public void format(final Object fragment, final IFormattableDocument document) { } else if (fragment instanceof Message) { _format((Message)fragment, document); return; + } else if (fragment instanceof Reference) { + _format((Reference)fragment, document); + return; } else if (fragment instanceof StateFragment) { _format((StateFragment)fragment, document); return; diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/helpers/TextualScenarioHelper.java b/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/helpers/TextualScenarioHelper.java index 3f0b60fa..3c74bcac 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/helpers/TextualScenarioHelper.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/helpers/TextualScenarioHelper.java @@ -1,3 +1,15 @@ +/******************************************************************************* + * Copyright (c) 2020 THALES GLOBAL SERVICES. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Thales - initial API and implementation + ******************************************************************************/ /** * Copyright (c) 2020 THALES GLOBAL SERVICES. * @@ -27,6 +39,9 @@ import org.polarsys.capella.scenario.editor.dsl.textualScenario.Block; import org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Element; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.Message; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Model; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Operand; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Participant; @@ -59,8 +74,8 @@ public static Object getScenarioAllowedExchangesType(final EList elemen } for (final Element element : elements) { { - if ((element instanceof SequenceMessage)) { - SequenceMessage message = ((SequenceMessage) element); + if ((element instanceof Message)) { + Message message = ((Message) element); return TextualScenarioHelper.getMessageExchangeType(message); } if ((element instanceof CombinedFragment)) { @@ -76,8 +91,9 @@ public static Object getScenarioAllowedExchangesType(final EList elemen /** * we return CE or FE or null in case we allow both or other type */ - public static Object getMessageExchangeType(final SequenceMessage message) { - List exchangesAvailable = EmbeddedEditorInstanceHelper.getExchangeMessages(message.getSource(), message.getTarget()); + public static Object getMessageExchangeType(final Message message) { + List exchangesAvailable = EmbeddedEditorInstanceHelper.getExchangeMessages(TextualScenarioHelper.getSourceOfMessage(message), + TextualScenarioHelper.getTargetOfMessage(message)); HashSet _newHashSet = CollectionLiterals.newHashSet(); Set allowedTypes = ((Set) _newHashSet); for (final AbstractEventOperation exchange : exchangesAvailable) { @@ -100,10 +116,11 @@ public static Object getMessageExchangeType(final SequenceMessage message) { /** * we return a list of available exchanges CE or FE */ - public static Set getAllMessageExchangeType(final SequenceMessage message) { - List exchangesAvailable = EmbeddedEditorInstanceHelper.getExchangeMessages(message.getSource(), message.getTarget()); + public static Set getAllMessageExchangeType(final Message message) { HashSet _newHashSet = CollectionLiterals.newHashSet(); Set allowedTypes = ((Set) _newHashSet); + List exchangesAvailable = EmbeddedEditorInstanceHelper.getExchangeMessages(TextualScenarioHelper.getSourceOfMessage(message), + TextualScenarioHelper.getTargetOfMessage(message)); for (final AbstractEventOperation exchange : exchangesAvailable) { if (((message.getName() != null) && message.getName().equals(CapellaElementExt.getName(exchange)))) { String type = TextualScenarioHelper.getExchangeType(exchange); @@ -126,12 +143,32 @@ public static String getExchangeType(final EObject exchangeElement) { return null; } - public static EList participantsDefinedBefore(final EObject element, final Model rootModel) { - if ((element instanceof Model)) { - return ((Model) element).getParticipants(); + private static String getSourceOfMessage(final Message message) { + String source = ((String) null); + if ((message instanceof SequenceMessage)) { + source = ((SequenceMessage) message).getSource(); } else { - return rootModel.getParticipants(); + if ((message instanceof LostMessage)) { + source = ((LostMessage) message).getSource(); + } } + return source; + } + + private static String getTargetOfMessage(final Message message) { + String target = ((String) null); + if ((message instanceof SequenceMessage)) { + target = ((SequenceMessage) message).getTarget(); + } else { + if ((message instanceof FoundMessage)) { + target = ((FoundMessage) message).getTarget(); + } + } + return target; + } + + public static EList participantsDefinedBefore(final Model rootModel) { + return rootModel.getParticipants(); } public static ArrayList participantsDefinedBeforeNames(final EObject element) { @@ -139,7 +176,7 @@ public static ArrayList participantsDefinedBeforeNames(final EObject ele EObject container = TextualScenarioHelper.getModelContainer(element); if ((container instanceof Model)) { Model model = ((Model) container); - EList participants = TextualScenarioHelper.participantsDefinedBefore(element, model); + EList participants = TextualScenarioHelper.participantsDefinedBefore(model); for (final Participant participant : participants) { participantsNames.add(participant.getName()); } diff --git a/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/validation/TextualScenarioValidator.java b/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/validation/TextualScenarioValidator.java index 2f430554..25f816cf 100644 --- a/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/validation/TextualScenarioValidator.java +++ b/plugins/org.polarsys.capella.scenario.editor.dsl/xtend-gen/org/polarsys/capella/scenario/editor/dsl/validation/TextualScenarioValidator.java @@ -1,3 +1,15 @@ +/******************************************************************************* + * Copyright (c) 2020 THALES GLOBAL SERVICES. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Thales - initial API and implementation + ******************************************************************************/ /** * Copyright (c) 2020 THALES GLOBAL SERVICES. * @@ -14,13 +26,16 @@ import com.google.common.base.Objects; import java.util.ArrayList; +import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Set; +import java.util.function.Consumer; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EReference; import org.eclipse.xtext.validation.Check; import org.eclipse.xtext.xbase.lib.CollectionLiterals; import org.eclipse.xtext.xbase.lib.IterableExtensions; @@ -31,11 +46,16 @@ import org.polarsys.capella.scenario.editor.dsl.textualScenario.CreateMessage; import org.polarsys.capella.scenario.editor.dsl.textualScenario.DeleteMessage; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Element; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Function; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.LostFoundMessage; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.Message; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Model; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Operand; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Participant; import org.polarsys.capella.scenario.editor.dsl.textualScenario.ParticipantDeactivation; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference; import org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessage; import org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessageType; import org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment; @@ -124,11 +144,20 @@ public void checkParticipantsInvolvedExist(final SequenceMessageType message) { } } + @Check + public void checkSequenceMessagesExchangeType(final SequenceMessage sequenceMessage) { + this.checkMessagesExchangeType(sequenceMessage); + } + + @Check + public void checkSequenceMessagesExchangeType(final LostFoundMessage lostFoundMessage) { + this.checkMessagesExchangeType(lostFoundMessage); + } + /** * check that a CE (component exchange) and an FE (functional exchange) are not used in the same place */ - @Check - public void checkMessagesExchangeType(final SequenceMessage message) { + public void checkMessagesExchangeType(final Message message) { boolean _isESScenario = EmbeddedEditorInstanceHelper.isESScenario(); if (_isESScenario) { EObject model = TextualScenarioHelper.getModelContainer(message); @@ -169,108 +198,17 @@ public void checkDuplicatedParticipantsNames(final Model model) { } } - /** - * Do not allow duplicated messages between name source, target - * ex: not allowed: "A1" -> "A2" : "MSG1", "A1" -> "A2" : "MSG1" - * ex: allowed: "A1" -> "A2" : "MSG1", "A2" -> "A3" : "MSG1" - */ - @Check - public boolean checkDuplicatedSequenceMessageNames(final SequenceMessage message) { - boolean _xblockexpression = false; - { - EObject model = TextualScenarioHelper.getModelContainer(message); - boolean _xifexpression = false; - if ((model instanceof Model)) { - _xifexpression = this.checkDuplicated(message, ((Model) model), CollectionLiterals.newHashSet()); - } - _xblockexpression = _xifexpression; - } - return _xblockexpression; - } - - @Check - public boolean checkDuplicatedArmTimerMessageNames(final ArmTimerMessage message) { - boolean _xblockexpression = false; - { - EObject model = TextualScenarioHelper.getModelContainer(message); - boolean _xifexpression = false; - if ((model instanceof Model)) { - _xifexpression = this.checkDuplicated(message, ((Model) model), CollectionLiterals.newHashSet()); - } - _xblockexpression = _xifexpression; - } - return _xblockexpression; - } - - public boolean checkDuplicated(final EObject elementToCheck, final EObject model, final HashSet names) { - List elements = TextualScenarioHelper.getElements(model); - for (final Element element : elements) { - { - if ((((element instanceof SequenceMessageType) || (element instanceof ArmTimerMessage)) || - (element instanceof CombinedFragment))) { - if (((!names.add(this.getElementMapKey(element))) && element.equals(elementToCheck))) { - if ((element instanceof SequenceMessageType)) { - String source = ((SequenceMessageType) element).getSource(); - String target = ((SequenceMessageType) element).getTarget(); - this.error( - (((("The same exchange is already used in text editor between \"" + source) + "\" and \"") + target) + "\"!"), TextualScenarioPackage.Literals.MESSAGE__NAME); - } else { - if ((element instanceof ArmTimerMessage)) { - String _participant = ((ArmTimerMessage) element).getParticipant(); - String _plus = ("The same exchange is already used in text editor on timeline \"" + _participant); - String _plus_1 = (_plus + "\"!"); - this.error(_plus_1, - TextualScenarioPackage.Literals.MESSAGE__NAME); - } else { - if ((element instanceof CombinedFragment)) { - String _keyword = ((CombinedFragment)element).getKeyword(); - String _plus_2 = ("The same " + _keyword); - String _plus_3 = (_plus_2 + " with expression \" "); - String _expression = ((CombinedFragment)element).getExpression(); - String _plus_4 = (_plus_3 + _expression); - String _plus_5 = (_plus_4 + - "\" and timelines "); - EList _timelines = ((CombinedFragment)element).getTimelines(); - String _plus_6 = (_plus_5 + _timelines); - String _plus_7 = (_plus_6 + " is already used in text editor!"); - this.error( - String.format(_plus_7), TextualScenarioPackage.Literals.COMBINED_FRAGMENT__EXPRESSION); - } - } - } - return true; - } - } - if ((element instanceof CombinedFragment)) { - boolean _checkDuplicated = this.checkDuplicated(elementToCheck, element, names); - boolean _equals = (_checkDuplicated == true); - if (_equals) { - return true; - } - } - } - } - return false; - } - @Check public void checkDeactivateMessagesModel(final Model model) { - this.checkDeactivateMessages(model); - } - - @Check - public void checkDeactivateMessagesBlock(final Block block) { - this.checkDeactivateMessages(block); + this.checkDeactivateMessages(model, CollectionLiterals.newLinkedList(), model.getElements()); } /** * Checks on deactivation keyword * If we encounter a deactivation on a target, check that we have a corresponding sequence message that can be deactivated */ - public void checkDeactivateMessages(final EObject model) { + public void checkDeactivateMessages(final EObject container, final LinkedList messageTargets, final List elements) { int index = 0; - LinkedList messageTargets = CollectionLiterals.newLinkedList(); - List elements = TextualScenarioHelper.getElements(model); for (final Element obj : elements) { { if (((obj instanceof SequenceMessage) && (((SequenceMessage) obj).getExecution() != null))) { @@ -279,28 +217,48 @@ public void checkDeactivateMessages(final EObject model) { if (((obj instanceof ArmTimerMessage) && (((ArmTimerMessage) obj).getExecution() != null))) { messageTargets.add(((ArmTimerMessage) obj).getParticipant()); } + if (((obj instanceof FoundMessage) && (((FoundMessage) obj).getExecution() != null))) { + messageTargets.add(((FoundMessage) obj).getTarget()); + } + if ((obj instanceof CombinedFragment)) { + CombinedFragment cf = ((CombinedFragment) obj); + this.checkDeactivateMessages(cf.getBlock(), messageTargets, + cf.getBlock().getBlockElements()); + final Consumer _function = (Operand operand) -> { + this.checkDeactivateMessages(operand.getBlock(), messageTargets, + operand.getBlock().getBlockElements()); + }; + cf.getOperands().forEach(_function); + } if ((obj instanceof ParticipantDeactivation)) { - ParticipantDeactivation deactivation = ((ParticipantDeactivation) obj); - boolean removed = messageTargets.remove(deactivation.getName()); - if ((!removed)) { - if ((model instanceof Model)) { - this.error( - "Deactivation keyword not expected!", - TextualScenarioPackage.Literals.MODEL__ELEMENTS, index); - } else { - if ((model instanceof Block)) { - this.error( - "Deactivation keyword not expected!", - TextualScenarioPackage.Literals.BLOCK__BLOCK_ELEMENTS, index); - } - } + EReference refFeature = TextualScenarioPackage.Literals.MODEL__ELEMENTS; + if ((container instanceof Block)) { + refFeature = TextualScenarioPackage.Literals.BLOCK__BLOCK_ELEMENTS; } + this.showErrorDeactivateMessages( + ((ParticipantDeactivation) obj), container, messageTargets, refFeature, index); } index++; } } } + public String showErrorDeactivateMessages(final ParticipantDeactivation deactivation, final EObject container, final LinkedList messageTargets, final EReference refFeature, final int index) { + String _xblockexpression = null; + { + int indexOfTarget = messageTargets.lastIndexOf(deactivation.getName()); + String _xifexpression = null; + if ((indexOfTarget < 0)) { + this.error( + "Deactivation keyword not expected!", container, refFeature, index); + } else { + _xifexpression = messageTargets.remove(indexOfTarget); + } + _xblockexpression = _xifexpression; + } + return _xblockexpression; + } + /** * check that the messages we define are valid * if the message is inside a combined fragment, the messages must be between the defined timelines of the combined fragment @@ -396,6 +354,38 @@ public void checkArmTimer(final ArmTimerMessage armTimer) { } } + @Check + public void checkLostMessage(final LostMessage message) { + boolean _isESScenario = EmbeddedEditorInstanceHelper.isESScenario(); + boolean _not = (!_isESScenario); + if (_not) { + this.error("Lost message can not be used in this diagram!", + TextualScenarioPackage.Literals.LOST_FOUND_MESSAGE__ARROW); + } + boolean _contains = TextualScenarioHelper.participantsDefinedBeforeNames(message).contains(message.getSource()); + boolean _not_1 = (!_contains); + if (_not_1) { + this.error("Timeline not defined in text editor!", + TextualScenarioPackage.Literals.LOST_MESSAGE__SOURCE); + } + } + + @Check + public void checkFoundMessage(final FoundMessage message) { + boolean _isESScenario = EmbeddedEditorInstanceHelper.isESScenario(); + boolean _not = (!_isESScenario); + if (_not) { + this.error("Found message can not be used in this diagram!", + TextualScenarioPackage.Literals.LOST_FOUND_MESSAGE__ARROW); + } + boolean _contains = TextualScenarioHelper.participantsDefinedBeforeNames(message).contains(message.getTarget()); + boolean _not_1 = (!_contains); + if (_not_1) { + this.error("Timeline not defined in text editor!", + TextualScenarioPackage.Literals.FOUND_MESSAGE__TARGET); + } + } + public void checkSameSourceAndTarget(final SequenceMessageType message) { boolean _equals = message.getSource().equals(message.getTarget()); if (_equals) { @@ -406,20 +396,6 @@ public void checkSameSourceAndTarget(final SequenceMessageType message) { } } - @Check - public boolean checkDuplicatedCombinedFragment(final CombinedFragment combinedFragment) { - boolean _xblockexpression = false; - { - EObject model = TextualScenarioHelper.getModelContainer(combinedFragment); - boolean _xifexpression = false; - if ((model instanceof Model)) { - _xifexpression = this.checkDuplicated(combinedFragment, model, CollectionLiterals.newHashSet()); - } - _xblockexpression = _xifexpression; - } - return _xblockexpression; - } - /** * check if a timeline involved in a combined fragment was used after a delete message was already defined * on the previous lines on the same timeline @@ -476,6 +452,44 @@ public boolean checkParticipantUsedAfterDeleteMessage(final ArmTimerMessage armT return _xblockexpression; } + /** + * check if a participant involved in a lost message was used after a delete message was already defined + * on the previous lines on the same timeline + */ + @Check + public boolean checkParticipantUsedAfterLostMessage(final LostMessage message) { + boolean _xblockexpression = false; + { + EObject model = TextualScenarioHelper.getModelContainer(message); + boolean _xifexpression = false; + if ((model instanceof Model)) { + _xifexpression = this.checkElementAfterDelete(((Model) model), message, message.getSource(), + TextualScenarioPackage.Literals.LOST_MESSAGE__SOURCE, 0); + } + _xblockexpression = _xifexpression; + } + return _xblockexpression; + } + + /** + * check if a participant involved in a lost message was used after a delete message was already defined + * on the previous lines on the same timeline + */ + @Check + public boolean checkParticipantUsedAfterFoundMessage(final FoundMessage message) { + boolean _xblockexpression = false; + { + EObject model = TextualScenarioHelper.getModelContainer(message); + boolean _xifexpression = false; + if ((model instanceof Model)) { + _xifexpression = this.checkElementAfterDelete(((Model) model), message, message.getTarget(), + TextualScenarioPackage.Literals.FOUND_MESSAGE__TARGET, 0); + } + _xblockexpression = _xifexpression; + } + return _xblockexpression; + } + /** * check if a sequence message source element was used after a delete message was already defined * on the previous lines on the same timeline @@ -577,6 +591,18 @@ public boolean checkCreateMessageValid(final EObject model, final CreateMessage return false; } } + if ((element instanceof LostMessage)) { + boolean _equals_2 = ((LostMessage) element).getSource().equals(target); + if (_equals_2) { + return false; + } + } + if ((element instanceof FoundMessage)) { + boolean _equals_3 = ((FoundMessage) element).getTarget().equals(target); + if (_equals_3) { + return false; + } + } if ((element instanceof CombinedFragment)) { boolean _contains = ((CombinedFragment) element).getTimelines().contains(target); if (_contains) { @@ -590,8 +616,14 @@ public boolean checkCreateMessageValid(final EObject model, final CreateMessage } } if ((element instanceof StateFragment)) { - boolean _equals_2 = ((StateFragment) element).getTimeline().equals(target); - if (_equals_2) { + boolean _equals_4 = ((StateFragment) element).getTimeline().equals(target); + if (_equals_4) { + return false; + } + } + if ((element instanceof Reference)) { + boolean _contains_1 = ((Reference) element).getTimelines().contains(target); + if (_contains_1) { return false; } } @@ -644,59 +676,81 @@ public void checkStateFragment(final StateFragment fragment) { */ @Check public void checkWithExecutionHasDeactivateModel(final Model model) { - this.checkWithExecutionHasDeactivate(model); + LinkedList messageWithExecutionTargets = CollectionLiterals.newLinkedList(); + LinkedList messageWithExecutionTargetsIndex = CollectionLiterals.newLinkedList(); + LinkedList messageWithExecutionTargetsContainer = CollectionLiterals.newLinkedList(); + this.checkWithExecutionHasDeactivate(model, messageWithExecutionTargets, messageWithExecutionTargetsIndex, messageWithExecutionTargetsContainer, + model.getElements()); + this.showErrorWithExecutionHasDeactivate(messageWithExecutionTargets, messageWithExecutionTargetsIndex, messageWithExecutionTargetsContainer); } - @Check - public void checkWithExecutionHasDeactivateBlock(final Block block) { - this.checkWithExecutionHasDeactivate(block); + public void showErrorWithExecutionHasDeactivate(final LinkedList messageWithExecutionTargets, final LinkedList messageWithExecutionTargetsIndex, final LinkedList messageWithExecutionTargetsContainer) { + for (int i = 0; (i < messageWithExecutionTargets.size()); i++) { + { + EObject container = messageWithExecutionTargetsContainer.get(i); + if ((container instanceof Model)) { + this.error( + "Deactivation keyword expected for a withExecution message!", container, + TextualScenarioPackage.Literals.MODEL__ELEMENTS, + (messageWithExecutionTargetsIndex.get(i)).intValue()); + } else { + if ((container instanceof Block)) { + this.error( + "Deactivation keyword expected for a withExecution message!", container, + TextualScenarioPackage.Literals.BLOCK__BLOCK_ELEMENTS, + messageWithExecutionTargets.get(i)); + } + } + } + } } - public void checkWithExecutionHasDeactivate(final EObject model) { - LinkedList messageWithExecutionTargets = CollectionLiterals.newLinkedList(); - LinkedList messageWithExecutionTargetsIndex = CollectionLiterals.newLinkedList(); + public void checkWithExecutionHasDeactivate(final EObject container, final LinkedList messageWithExecutionTargets, final LinkedList messageWithExecutionTargetsIndex, final LinkedList messageWithExecutionTargetsContainer, final List elements) { int index = 0; - List elements = TextualScenarioHelper.getElements(model); for (final Element obj : elements) { { if (((obj instanceof SequenceMessage) && (((SequenceMessage) obj).getExecution() != null))) { messageWithExecutionTargets.add(((SequenceMessage) obj).getTarget()); messageWithExecutionTargetsIndex.add(Integer.valueOf(index)); + messageWithExecutionTargetsContainer.add(container); } if (((obj instanceof ArmTimerMessage) && (((ArmTimerMessage) obj).getExecution() != null))) { messageWithExecutionTargets.add(((ArmTimerMessage) obj).getParticipant()); messageWithExecutionTargetsIndex.add(Integer.valueOf(index)); + messageWithExecutionTargetsContainer.add(container); + } + if (((obj instanceof FoundMessage) && (((FoundMessage) obj).getExecution() != null))) { + messageWithExecutionTargets.add(((FoundMessage) obj).getTarget()); + messageWithExecutionTargetsIndex.add(Integer.valueOf(index)); + messageWithExecutionTargetsContainer.add(container); + } + if ((obj instanceof CombinedFragment)) { + CombinedFragment cf = ((CombinedFragment) obj); + this.checkWithExecutionHasDeactivate(cf.getBlock(), messageWithExecutionTargets, messageWithExecutionTargetsIndex, messageWithExecutionTargetsContainer, + cf.getBlock().getBlockElements()); + final Consumer _function = (Operand operand) -> { + this.checkWithExecutionHasDeactivate(operand.getBlock(), messageWithExecutionTargets, messageWithExecutionTargetsIndex, messageWithExecutionTargetsContainer, + operand.getBlock().getBlockElements()); + }; + cf.getOperands().forEach(_function); } if ((obj instanceof ParticipantDeactivation)) { String targetName = ((ParticipantDeactivation) obj).getName(); - int indexOfTarget = messageWithExecutionTargets.indexOf(targetName); + int indexOfTarget = messageWithExecutionTargets.lastIndexOf(targetName); if ((indexOfTarget >= 0)) { messageWithExecutionTargets.remove(indexOfTarget); messageWithExecutionTargetsIndex.remove(indexOfTarget); + messageWithExecutionTargetsContainer.remove(indexOfTarget); } } index++; } } - for (int i = 0; (i < messageWithExecutionTargets.size()); i++) { - if ((model instanceof Model)) { - this.error( - "Deactivation keyword expected for a withExecution message!", - TextualScenarioPackage.Literals.MODEL__ELEMENTS, - (messageWithExecutionTargetsIndex.get(i)).intValue()); - } else { - this.error( - "Deactivation keyword expected for a withExecution message!", - TextualScenarioPackage.Literals.BLOCK__BLOCK_ELEMENTS, - messageWithExecutionTargets.get(i)); - } - } } /** * Expression shall not be empty */ - @Check public void checkCombinedFragmentEmptyExpression(final CombinedFragment combinedFragment) { if (((combinedFragment.getExpression() == null) || combinedFragment.getExpression().isEmpty())) { this.error( @@ -708,7 +762,6 @@ public void checkCombinedFragmentEmptyExpression(final CombinedFragment combined /** * Expression shall not be empty */ - @Check public void checkOperandEmptyExpression(final Operand operand) { if (((operand.getExpression() == null) || operand.getExpression().isEmpty())) { this.error( @@ -785,7 +838,7 @@ public void checkCombinedFragmentOnValidTimelines(final CombinedFragment combine public void checkContainedCombinedFragment(final CombinedFragment combinedFragment) { EObject container = TextualScenarioHelper.getDirectContainer(combinedFragment); if ((container instanceof CombinedFragment)) { - EObject upperContainer = this.getContainerCombinedFragmentTimelines(combinedFragment, ((CombinedFragment)container)); + EObject upperContainer = this.getContainerCombinedFragmentTimelines(combinedFragment.getTimelines(), ((CombinedFragment)container)); if (((upperContainer != null) && (upperContainer instanceof CombinedFragment))) { String _keyword = combinedFragment.getKeyword(); String _plus = ("Timelines covered by this " + _keyword); @@ -800,14 +853,75 @@ public void checkContainedCombinedFragment(final CombinedFragment combinedFragme } } - public EObject getContainerCombinedFragmentTimelines(final CombinedFragment combinedFragment, final CombinedFragment container) { - if ((this.innerCombinedFragment(combinedFragment, container) && - (!this.isASubset(combinedFragment.getTimelines(), ((CombinedFragment) container).getTimelines())))) { + @Check + public void checkReference(final Reference reference) { + HashMap hashMap = new HashMap(); + int index = 0; + EList _timelines = reference.getTimelines(); + for (final String timeline : _timelines) { + { + Integer _get = hashMap.get(timeline); + boolean _equals = Objects.equal(_get, null); + if (_equals) { + hashMap.put(timeline, Integer.valueOf(1)); + } else { + this.error("Duplicated timeline!", + TextualScenarioPackage.Literals.REFERENCE__TIMELINES, index); + } + index++; + } + } + ArrayList participantsDefined = TextualScenarioHelper.participantsDefinedBeforeNames(reference); + index = 0; + EList _timelines_1 = reference.getTimelines(); + for (final String timeline_1 : _timelines_1) { + { + boolean _contains = participantsDefined.contains(timeline_1); + boolean _not = (!_contains); + if (_not) { + this.error("Timeline not defined in text editor!", + TextualScenarioPackage.Literals.REFERENCE__TIMELINES, index); + } + index++; + } + } + boolean _contains = EmbeddedEditorInstanceHelper.getReferencedScenariosName().contains(reference.getName()); + boolean _not = (!_contains); + if (_not) { + this.error("Referenced scenario does not exist!", + TextualScenarioPackage.Literals.REFERENCE__NAME); + } + EObject container = TextualScenarioHelper.getDirectContainer(reference); + if ((container instanceof CombinedFragment)) { + EObject upperContainer = this.getContainerCombinedFragmentTimelines(reference.getTimelines(), ((CombinedFragment)container)); + if (((upperContainer != null) && (upperContainer instanceof CombinedFragment))) { + EList _timelines_2 = ((CombinedFragment) upperContainer).getTimelines(); + String _plus = ("Timelines covered by this reference must be a subset of the parent covered timelines " + _timelines_2); + String _plus_1 = (_plus + "!"); + this.error(_plus_1, + TextualScenarioPackage.Literals.REFERENCE__TIMELINES); + } + } + EObject model = TextualScenarioHelper.getModelContainer(reference); + if ((model instanceof Model)) { + index = 0; + EList _timelines_3 = reference.getTimelines(); + for (final String timeline_2 : _timelines_3) { + int _plusPlus = index++; + this.checkElementAfterDelete(((Model) model), reference, timeline_2, + TextualScenarioPackage.Literals.REFERENCE__TIMELINES, _plusPlus); + } + } + } + + public EObject getContainerCombinedFragmentTimelines(final List timelines, final CombinedFragment container) { + if ((this.innerCombinedFragment(timelines, container) && + (!this.isASubset(timelines, ((CombinedFragment) container).getTimelines())))) { return container; } else { EObject upperContainer = TextualScenarioHelper.getDirectContainer(container); if ((upperContainer instanceof CombinedFragment)) { - return this.getContainerCombinedFragmentTimelines(combinedFragment, ((CombinedFragment) upperContainer)); + return this.getContainerCombinedFragmentTimelines(timelines, ((CombinedFragment) upperContainer)); } } return null; @@ -848,9 +962,8 @@ public boolean isASublist(final List smallList, final List conta * we consider that it is a inner combined fragment if it has some same timelines as the parent * added this due to the limitation that a paralel combined fragment in diagram, is represented inside the text */ - public boolean innerCombinedFragment(final CombinedFragment combinedFragment, final CombinedFragment container) { - EList _timelines = combinedFragment.getTimelines(); - for (final String timeline : _timelines) { + public boolean innerCombinedFragment(final List timelines, final CombinedFragment container) { + for (final String timeline : timelines) { boolean _contains = container.getTimelines().contains(timeline); if (_contains) { return true; diff --git a/plugins/org.polarsys.capella.scenario.editor.embeddededitor/src/org/polarsys/capella/scenario/editor/embeddededitor/commands/DiagramToXtextCommands.java b/plugins/org.polarsys.capella.scenario.editor.embeddededitor/src/org/polarsys/capella/scenario/editor/embeddededitor/commands/DiagramToXtextCommands.java index 26651620..f1a13c2c 100644 --- a/plugins/org.polarsys.capella.scenario.editor.embeddededitor/src/org/polarsys/capella/scenario/editor/embeddededitor/commands/DiagramToXtextCommands.java +++ b/plugins/org.polarsys.capella.scenario.editor.embeddededitor/src/org/polarsys/capella/scenario/editor/embeddededitor/commands/DiagramToXtextCommands.java @@ -15,6 +15,7 @@ import java.util.ArrayDeque; import java.util.Deque; import java.util.List; +import java.util.stream.Collectors; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; @@ -39,12 +40,14 @@ import org.polarsys.capella.core.data.interaction.InteractionOperand; import org.polarsys.capella.core.data.interaction.InteractionOperatorKind; import org.polarsys.capella.core.data.interaction.InteractionState; +import org.polarsys.capella.core.data.interaction.InteractionUse; import org.polarsys.capella.core.data.interaction.MessageEnd; import org.polarsys.capella.core.data.interaction.MessageKind; import org.polarsys.capella.core.data.interaction.Scenario; import org.polarsys.capella.core.data.interaction.SequenceMessage; import org.polarsys.capella.core.data.interaction.TimeLapse; import org.polarsys.capella.core.data.interaction.StateFragment; +import org.polarsys.capella.core.data.interaction.AbstractFragment; import org.polarsys.capella.core.data.interaction.CombinedFragment; import org.polarsys.capella.core.data.oa.Entity; import org.polarsys.capella.core.data.oa.OperationalActivity; @@ -56,10 +59,14 @@ import org.polarsys.capella.scenario.editor.dsl.textualScenario.ArmTimerMessage; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Block; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Element; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.LostFoundMessage; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Model; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Operand; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Participant; import org.polarsys.capella.scenario.editor.dsl.textualScenario.ParticipantDeactivation; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessageType; import org.polarsys.capella.scenario.editor.dsl.textualScenario.TextualScenarioFactory; import org.polarsys.capella.scenario.editor.dsl.textualScenario.impl.TextualScenarioFactoryImpl; import org.polarsys.capella.scenario.editor.dsl.provider.TextualScenarioProvider; @@ -328,12 +335,12 @@ private static void generateElements(Model domainModel, Scenario scenario, Textu // The list of fragments contains both ends of each sequence message (sender and receiver) // and only one end of each execution (the one where execution ends). This means that we should skip // the receiving end for each message, so that we don't duplicate the generated xtext message. - Deque messagesToDeactivate = new ArrayDeque(); + Deque messagesToDeactivate = new ArrayDeque <>(); // we need to save the combined fragments and blocks on a stack because this // elements may contain other inner elements and we need to know when to close a combined fragment - Deque combinedFragments = new ArrayDeque(); - Deque blockOperands = new ArrayDeque(); + Deque combinedFragments = new ArrayDeque <>(); + Deque blockOperands = new ArrayDeque <>(); int i = 0; while (i < ends.length) { @@ -348,7 +355,15 @@ private static void generateElements(Model domainModel, Scenario scenario, Textu generateDeactivatioOnMessages((ExecutionEnd) ends[i], messagesToDeactivate, blockOperands, elements, factory); i++; } else if (ends[i] instanceof FragmentEnd) { - i = processCombinedFragments(ends, i, combinedFragments, blockOperands, elements, scenario, factory); + AbstractFragment abstractFragment = ((FragmentEnd) ends[i]).getAbstractFragment(); + if (abstractFragment instanceof CombinedFragment) { + i = processCombinedFragments(ends, i, combinedFragments, blockOperands, elements, scenario, factory); + } else if (abstractFragment instanceof InteractionUse) { + if (((FragmentEnd) ends[i]).getName().equals("start")) { + generateReference((InteractionUse) abstractFragment, factory, elements, blockOperands); + } + i++; + } } else if (ends[i] instanceof InteractionOperand) { generateOperandsOnCombinedFragment((InteractionOperand) ends[i], combinedFragments, blockOperands, factory); i++; @@ -573,15 +588,22 @@ private static int generateMessages(Object[] ends, int index, blockOperands.peek().getBlockElements().add((org.polarsys.capella.scenario.editor.dsl.textualScenario.Message) message); } - // skip the next MessageEnd (the receiving end), as it will generate the same xtext message - index = index + 2; + int step = 0; + if(message instanceof LostFoundMessage) { + index = index + 1; + step = 1; + } else { + // skip the next MessageEnd (the receiving end), as it will generate the same xtext message + index = index + 2; + step = 2; + } boolean isSimpleMessage = false; // check to see if this is a simple message (in this case, the next fragment will be its own execution end // or its own reply message) if (index < ends.length && ends[index] instanceof ExecutionEnd) { // check if end is its own execution end - SequenceMessage seqMessFromMessageEnd = ((MessageEnd) ends[index - 2]).getMessage(); + SequenceMessage seqMessFromMessageEnd = ((MessageEnd) ends[index - step]).getMessage(); SequenceMessage seqMessFromExecutionEnd = ExecutionEndExt.getMessage((ExecutionEnd) ends[index]); if (seqMessFromMessageEnd.equals(seqMessFromExecutionEnd)) { @@ -593,7 +615,7 @@ private static int generateMessages(Object[] ends, int index, } } else if (index < ends.length && ends[index] instanceof MessageEnd) { // check if end is its own reply message - SequenceMessage seqMessFromMessageEnd = ((MessageEnd) ends[index - 2]).getMessage(); + SequenceMessage seqMessFromMessageEnd = ((MessageEnd) ends[index - step]).getMessage(); SequenceMessage seqMessFromNextMessageEnd = ((MessageEnd) ends[index]).getMessage(); SequenceMessage replyMessage = seqMessFromNextMessageEnd != null && seqMessFromNextMessageEnd.getKind() == MessageKind.REPLY @@ -657,7 +679,8 @@ private static void addMessageToDeactivate( Deque messagesToDeactivate, EObject message) { if (message instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessage || - message instanceof ArmTimerMessage) { + message instanceof ArmTimerMessage || + message instanceof FoundMessage) { messagesToDeactivate.push((org.polarsys.capella.scenario.editor.dsl.textualScenario.Message) message); } } @@ -675,9 +698,14 @@ private static void setWithExecutionOnMessageToDeactivate( org.polarsys.capella.scenario.editor.dsl.textualScenario.Message currentSequenceMessage = messagesToDeactivate .pop(); if (currentSequenceMessage instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessage) { - ((org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessage) currentSequenceMessage).setExecution(DslConstants.WITH_EXECUTION); - } else { - ((org.polarsys.capella.scenario.editor.dsl.textualScenario.ArmTimerMessage) currentSequenceMessage).setExecution(DslConstants.WITH_EXECUTION); + ((org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessage) currentSequenceMessage) + .setExecution(DslConstants.WITH_EXECUTION); + } else if (currentSequenceMessage instanceof FoundMessage) { + ((org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage) currentSequenceMessage) + .setExecution(DslConstants.WITH_EXECUTION); + } else if (currentSequenceMessage instanceof ArmTimerMessage) { + ((org.polarsys.capella.scenario.editor.dsl.textualScenario.ArmTimerMessage) currentSequenceMessage) + .setExecution(DslConstants.WITH_EXECUTION); } } } @@ -746,51 +774,72 @@ private static ParticipantDeactivation createDeactivationMessage(TextualScenario * @return - EObject the xtext message object created in this method */ private static EObject createMessage(Object object, TextualScenarioFactory factory) { - EObject xtextSequenceMessage = null; + SequenceMessageType xtextSequenceMessage = null; MessageEnd end = (MessageEnd) object; SequenceMessage capellaSequenceMessage = end.getMessage(); switch (capellaSequenceMessage.getKind()) { + case REPLY: + break; + case TIMER: + org.polarsys.capella.scenario.editor.dsl.textualScenario.ArmTimerMessage xtextArmTimerMessage = factory.createArmTimerMessage(); + xtextArmTimerMessage.setArrow("->>"); + xtextArmTimerMessage.setName(capellaSequenceMessage.getName()); + xtextArmTimerMessage.setDoubleDot(":"); + if (capellaSequenceMessage.getSendingEnd() != null + && !capellaSequenceMessage.getSendingEnd().getCoveredInstanceRoles().isEmpty()) { + xtextArmTimerMessage.setParticipant(capellaSequenceMessage.getSendingEnd().getCoveredInstanceRoles().get(0).getName()); + } + return xtextArmTimerMessage; case CREATE: xtextSequenceMessage = factory.createCreateMessage(); - ((org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessageType) xtextSequenceMessage).setArrow("->+"); + xtextSequenceMessage.setArrow("->+"); break; case DELETE: xtextSequenceMessage = factory.createDeleteMessage(); - ((org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessageType) xtextSequenceMessage).setArrow("->x"); - break; - case REPLY: - break; - case TIMER: - xtextSequenceMessage = factory.createArmTimerMessage(); - ((org.polarsys.capella.scenario.editor.dsl.textualScenario.ArmTimerMessage) xtextSequenceMessage).setArrow("->>"); - ((org.polarsys.capella.scenario.editor.dsl.textualScenario.ArmTimerMessage) xtextSequenceMessage) - .setName(capellaSequenceMessage.getName()); - ((org.polarsys.capella.scenario.editor.dsl.textualScenario.ArmTimerMessage) xtextSequenceMessage).setDoubleDot(":"); - if (capellaSequenceMessage.getSendingEnd() != null - && !capellaSequenceMessage.getSendingEnd().getCoveredInstanceRoles().isEmpty()) - ((org.polarsys.capella.scenario.editor.dsl.textualScenario.ArmTimerMessage) xtextSequenceMessage) - .setParticipant(capellaSequenceMessage.getSendingEnd().getCoveredInstanceRoles().get(0).getName()); - return xtextSequenceMessage; + xtextSequenceMessage.setArrow("->x"); + break; case ASYNCHRONOUS_CALL: case SYNCHRONOUS_CALL: default: - xtextSequenceMessage = factory.createSequenceMessage(); - ((org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessageType) xtextSequenceMessage).setArrow("->"); + // case lost message + if(capellaSequenceMessage.getSendingEnd() != null && capellaSequenceMessage.getReceivingEnd() == null) { + org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage xtextLostMessage = factory.createLostMessage(); + xtextLostMessage.setArrow("->o"); + xtextLostMessage.setDoubleDot(":"); + xtextLostMessage.setName(capellaSequenceMessage.getName()); + if (!capellaSequenceMessage.getSendingEnd().getCoveredInstanceRoles().isEmpty()) { + xtextLostMessage.setSource(capellaSequenceMessage.getSendingEnd().getCoveredInstanceRoles().get(0).getName()); + } + return xtextLostMessage; + } + // case found message + else if(capellaSequenceMessage.getSendingEnd() == null && capellaSequenceMessage.getReceivingEnd() != null) { + org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage xtextFoundMessage = factory.createFoundMessage(); + xtextFoundMessage.setArrow("o->"); + xtextFoundMessage.setDoubleDot(":"); + xtextFoundMessage.setName(capellaSequenceMessage.getName()); + if (!capellaSequenceMessage.getReceivingEnd().getCoveredInstanceRoles().isEmpty()) { + xtextFoundMessage.setTarget(capellaSequenceMessage.getReceivingEnd().getCoveredInstanceRoles().get(0).getName()); + } + return xtextFoundMessage; + } else { + xtextSequenceMessage = factory.createSequenceMessage(); + xtextSequenceMessage.setArrow("->"); + } break; } if (xtextSequenceMessage != null) { - ((org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessageType) xtextSequenceMessage) - .setName(capellaSequenceMessage.getName()); + xtextSequenceMessage.setName(capellaSequenceMessage.getName()); if (capellaSequenceMessage.getSendingEnd() != null - && !capellaSequenceMessage.getSendingEnd().getCoveredInstanceRoles().isEmpty()) - ((org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessageType) xtextSequenceMessage) - .setSource(capellaSequenceMessage.getSendingEnd().getCoveredInstanceRoles().get(0).getName()); + && !capellaSequenceMessage.getSendingEnd().getCoveredInstanceRoles().isEmpty()) { + xtextSequenceMessage.setSource(capellaSequenceMessage.getSendingEnd().getCoveredInstanceRoles().get(0).getName()); + } if (capellaSequenceMessage.getReceivingEnd() != null - && !capellaSequenceMessage.getReceivingEnd().getCoveredInstanceRoles().isEmpty()) - ((org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessageType) xtextSequenceMessage) - .setTarget(capellaSequenceMessage.getReceivingEnd().getCoveredInstanceRoles().get(0).getName()); - ((org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessageType) xtextSequenceMessage).setDoubleDot(":"); + && !capellaSequenceMessage.getReceivingEnd().getCoveredInstanceRoles().isEmpty()) { + xtextSequenceMessage.setTarget(capellaSequenceMessage.getReceivingEnd().getCoveredInstanceRoles().get(0).getName()); + } + xtextSequenceMessage.setDoubleDot(":"); } return xtextSequenceMessage; } @@ -927,4 +976,50 @@ private static org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFra return xtextStateFragment; } + + /** + * process those ends in the ends array that are related to a reference + * + * @param abstractFragment + * - the InteractionState Capella object processed from the ends Interaction Fragments array + * @param blockOperands + * - the stack of currently encountered and unclosed operands (contained in a combined fragment) + * - we pass this stack when generating the xtext states because we may encounter a state object in an operand of a combined fragment + * @param elements + * - the elements (messages, combined fragments, states) that are directly in the model object (not the ones encountered in a combined fragment) + * @param factory + * - the Textual Scenario Factory that we use to create xtext objects and add them to the model + */ + private static void generateReference(InteractionUse abstractFragment, TextualScenarioFactory factory, EList elements, Deque blockOperands) { + EList coveredInstanceRoles = abstractFragment.getStart().getCoveredInstanceRoles(); + List timelines = coveredInstanceRoles.stream().map(x -> x.getName()).collect(Collectors.toList()); + String name = abstractFragment.getReferencedScenario().getName(); + + Reference xtextReference = createXtextReference(name, timelines, factory); + if (blockOperands.isEmpty()) { + elements.add(xtextReference); + } else { + blockOperands.peek().getBlockElements().add(xtextReference); + } + } + + /** + * Create a new Reference object and set the name, keyword, over and timelines + * + * @param factory + * - this is the factory to create StateFragment + * @param name + * - the state fragment from diagram + * @param timelinesNames + * - the names of the timelines + * @return - Reference the new created Reference + */ + private static Reference createXtextReference(String name, List timelinesNames, TextualScenarioFactory factory) { + Reference xtextReference = factory.createReference(); + xtextReference.setKeyword("ref"); + xtextReference.setOver("over"); + xtextReference.getTimelines().addAll(timelinesNames); + xtextReference.setName(name); + return xtextReference; + } } \ No newline at end of file diff --git a/plugins/org.polarsys.capella.scenario.editor.embeddededitor/src/org/polarsys/capella/scenario/editor/embeddededitor/commands/HelperCommands.java b/plugins/org.polarsys.capella.scenario.editor.embeddededitor/src/org/polarsys/capella/scenario/editor/embeddededitor/commands/HelperCommands.java index d1374d2d..939222fb 100644 --- a/plugins/org.polarsys.capella.scenario.editor.embeddededitor/src/org/polarsys/capella/scenario/editor/embeddededitor/commands/HelperCommands.java +++ b/plugins/org.polarsys.capella.scenario.editor.embeddededitor/src/org/polarsys/capella/scenario/editor/embeddededitor/commands/HelperCommands.java @@ -32,9 +32,9 @@ public static String getExpressionText(InteractionOperand operand) { Constraint guard = operand.getGuard(); if (guard != null) { OpaqueExpression expression = (OpaqueExpression) guard.getOwnedSpecification(); - return expression.getBodies().isEmpty() ? "" : expression.getBodies().get(0); + return expression.getBodies().isEmpty() ? null : expression.getBodies().get(0); } - return ""; + return null; } public static List getValidationIsuesTextResource(XtextResource resource) { diff --git a/plugins/org.polarsys.capella.scenario.editor.embeddededitor/src/org/polarsys/capella/scenario/editor/embeddededitor/commands/XtextToDiagramCommands.java b/plugins/org.polarsys.capella.scenario.editor.embeddededitor/src/org/polarsys/capella/scenario/editor/embeddededitor/commands/XtextToDiagramCommands.java index c8f1450e..167d6a4d 100644 --- a/plugins/org.polarsys.capella.scenario.editor.embeddededitor/src/org/polarsys/capella/scenario/editor/embeddededitor/commands/XtextToDiagramCommands.java +++ b/plugins/org.polarsys.capella.scenario.editor.embeddededitor/src/org/polarsys/capella/scenario/editor/embeddededitor/commands/XtextToDiagramCommands.java @@ -19,6 +19,7 @@ import java.util.Deque; import java.util.Iterator; import java.util.List; +import java.util.Set; import java.util.stream.Collectors; import org.eclipse.emf.common.command.Command; @@ -30,13 +31,12 @@ import org.eclipse.gmf.runtime.notation.Diagram; import org.eclipse.sirius.diagram.DDiagram; import org.eclipse.sirius.diagram.sequence.SequenceDDiagram; -import org.eclipse.sirius.diagram.sequence.business.internal.layout.flag.SequenceEventAbsoluteBoundsFlagger; import org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeGraphicalOrderingOperation; import org.eclipse.sirius.diagram.sequence.business.internal.refresh.RefreshLayoutCommand; -import org.eclipse.sirius.diagram.ui.business.internal.operation.AbstractModelChangeOperation; import org.eclipse.sirius.viewpoint.description.AnnotationEntry; import org.eclipse.xtext.resource.XtextResource; import org.eclipse.xtext.validation.Issue; +import org.polarsys.capella.common.helpers.EObjectExt; import org.polarsys.capella.common.menu.dynamic.CreationHelper; import org.polarsys.capella.core.data.capellacommon.AbstractState; import org.polarsys.capella.core.data.capellacore.CapellacoreFactory; @@ -49,6 +49,7 @@ import org.polarsys.capella.core.data.information.AbstractInstance; import org.polarsys.capella.core.data.information.datavalue.DatavalueFactory; import org.polarsys.capella.core.data.information.datavalue.OpaqueExpression; +import org.polarsys.capella.core.data.interaction.AbstractFragment; import org.polarsys.capella.core.data.interaction.CombinedFragment; import org.polarsys.capella.core.data.interaction.Event; import org.polarsys.capella.core.data.interaction.EventReceiptOperation; @@ -62,7 +63,9 @@ import org.polarsys.capella.core.data.interaction.InteractionFragment; import org.polarsys.capella.core.data.interaction.InteractionOperand; import org.polarsys.capella.core.data.interaction.InteractionOperatorKind; +import org.polarsys.capella.core.data.interaction.InteractionPackage; import org.polarsys.capella.core.data.interaction.InteractionState; +import org.polarsys.capella.core.data.interaction.InteractionUse; import org.polarsys.capella.core.data.interaction.MessageEnd; import org.polarsys.capella.core.data.interaction.MessageKind; import org.polarsys.capella.core.data.interaction.Scenario; @@ -82,12 +85,17 @@ import org.polarsys.capella.scenario.editor.dsl.textualScenario.Model; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Participant; import org.polarsys.capella.scenario.editor.dsl.textualScenario.ParticipantDeactivation; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference; import org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessageType; +import org.polarsys.capella.scenario.editor.dsl.helpers.TextualScenarioHelper; import org.polarsys.capella.scenario.editor.dsl.provider.TextualScenarioProvider; import org.polarsys.capella.scenario.editor.embeddededitor.views.EmbeddedEditorView; import org.polarsys.capella.scenario.editor.helper.DslConstants; import org.polarsys.capella.scenario.editor.helper.EmbeddedEditorInstanceHelper; import org.polarsys.capella.scenario.editor.dsl.textualScenario.Element; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.LostFoundMessage; +import org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage; public class XtextToDiagramCommands { public static void process(Scenario scenario, EmbeddedEditorView embeddedEditorViewPart) { @@ -104,15 +112,16 @@ public static void process(Scenario scenario, EmbeddedEditorView embeddedEditorV // get participants EList participants = domainModel.getParticipants(); - // get messages - EList messages = domainModel.getElements(); - + // get elements + EList elements = domainModel.getElements(); + doEditingOnParticipants(scenario, participants); - doEditingOnElements(scenario, messages); + doEditingOnElements(scenario, elements); // do refresh - when the messages associated with the removed actors are deleted too, // a refresh is needed to update also the editor + // EmbeddedEditorView eeView = XtextEditorHelper.getActiveEmbeddedEditorView(); // Scenario scenarioDiagram = EmbeddedEditorInstance.getAssociatedScenarioDiagram(); // DiagramToXtextCommands.process(scenarioDiagram, eeView); @@ -134,7 +143,7 @@ public static void process(Scenario scenario, EmbeddedEditorView embeddedEditorV * @param participants * List of participants defined in the xtext editor * @param messages - * + * */ private static void doEditingOnParticipants(Scenario scenario, EList participants) { // Make sure your element is attached to a resource, otherwise this will return null @@ -151,7 +160,8 @@ protected void doExecute() { String instanceName = ((Participant) participant).getName(); // if the participant doesn't exist, create it - if (instanceRoles.stream().filter(ir -> ir.getName().equals(instanceName)).collect(Collectors.toList()).isEmpty()) { + if (instanceRoles.stream().filter(ir -> ir.getName().equals(instanceName)).collect(Collectors.toList()) + .isEmpty()) { instanceRole = InteractionFactory.eINSTANCE.createInstanceRole(); instanceRole.setName(instanceName); @@ -181,19 +191,17 @@ protected void doExecute() { } /** - * Remove all instance roles that are in the diagram, but not in the editor. - * Remove all related elements. + * Remove all instance roles that are in the diagram, but not in the editor. Remove all related elements. * * @param scenario * The scenario diagram * @param participants * Participants from editor */ - private static void removeParticipantsFromDiagram(Scenario scenario, - EList participants) { + private static void removeParticipantsFromDiagram(Scenario scenario, EList participants) { List irToRemove = new ArrayList<>(); EList instanceRoles = scenario.getOwnedInstanceRoles(); - + for (InstanceRole ir : instanceRoles) { List participantsName = participants.stream().map(x -> x.getName()).collect(Collectors.toList()); if (!participantsName.contains(ir.getName())) { @@ -254,14 +262,16 @@ private static boolean reorderParticipants(List instanceRoles, ELi * The participant that has just been deleted */ private static void removeParticipantRelatedMessages(Scenario scenario, String participantName) { - List messagesToBeDeleted = new ArrayList(); - EList messages = scenario.getOwnedMessages(); - + List messagesToBeDeleted = new ArrayList(); + EList messages = scenario.getOwnedMessages(); + for (SequenceMessage message : messages) { - if (message.getSendingEnd().getCoveredInstanceRoles().get(0).getName().equals(participantName) || - message.getReceivingEnd().getCoveredInstanceRoles().get(0).getName().equals(participantName)) { - messagesToBeDeleted.add(message); - } + if ((message.getSendingEnd() != null && !message.getSendingEnd().getCoveredInstanceRoles().isEmpty() + && message.getSendingEnd().getCoveredInstanceRoles().get(0).getName().equals(participantName)) + || (message.getReceivingEnd() != null && !message.getReceivingEnd().getCoveredInstanceRoles().isEmpty() + && message.getReceivingEnd().getCoveredInstanceRoles().get(0).getName().equals(participantName))) { + messagesToBeDeleted.add(message); + } } for (SequenceMessage message : messagesToBeDeleted) { removeMessageFromScenario(scenario, message); @@ -278,13 +288,13 @@ private static void removeParticipantRelatedMessages(Scenario scenario, String p */ protected static void removeParticipantRelatedStateFragments(Scenario scenario, String participantName) { List stateFragmentsToBeDeleted = scenario.getOwnedTimeLapses().stream() - .filter(timelapse -> timelapse instanceof StateFragment + .filter(timelapse -> timelapse instanceof StateFragment && timelapse.getStart().getCoveredInstanceRoles().get(0).getName().equals(participantName)) .collect(Collectors.toList()); - + for (TimeLapse timeLapse : stateFragmentsToBeDeleted) { removeStateFragmentFromScenario(scenario, timeLapse); - } + } } /** @@ -300,12 +310,12 @@ private static void removeParticipantRelatedCombinedFragments(Scenario scenario, .filter(timelapse -> timelapse instanceof CombinedFragment && timelapse.getStart().getCoveredInstanceRoles().contains(instanceRole)) .collect(Collectors.toList()); - + for (TimeLapse timeLapse : combinedFragmentsToBeDeleted) { removeCombinedFragmentFromScenario(scenario, timeLapse); - } + } } - + /** * Synchronize graphical ordering in diagram */ @@ -316,7 +326,7 @@ private static void syncGraphicalOrdering() { Diagram diagram = null; for (AnnotationEntry annotationEntry : ownedAnnotationEntries) { if ((annotationEntry != null) && (annotationEntry.getData() instanceof Diagram)) { - diagram = (Diagram)annotationEntry.getData(); + diagram = (Diagram) annotationEntry.getData(); break; } } @@ -329,8 +339,8 @@ private static void syncGraphicalOrdering() { } /** - * Create and put in order all objects necessary to display the text scenario in the Capella diagram. - * This includes sequence messages, combined fragments, state fragments + * Create and put in order all objects necessary to display the text scenario in the Capella diagram. This includes + * sequence messages, combined fragments, state fragments * * @param scenario * The scenario diagram @@ -344,23 +354,28 @@ private static void doEditingOnElements(Scenario scenario, EList elemen @Override protected void doExecute() { - // remove messages and state fragments that appear in diagram and do not appear in text - cleanUpMessages(scenario, elements); - cleanUpStateFragments(scenario, elements); - cleanUpCombinedFragments(scenario, elements); - - editElements(scenario, elements); + // remove messages, state fragments, combined fragment & references that appear in diagram and do not appear in text + cleanUp(scenario, elements); + + // This list will store Capella messages that have already been matched with an xtext message + List processedCapellaMessages = new ArrayList<>(); + // This list will store Capella combined fragments that have already been matched with an xtext combined fragment + ArrayList processedCapellaCombinedFragments = new ArrayList<>(); + // This list will store Capella state fragments that have already been matched with an xtext state fragments + ArrayList processedStateFragments = new ArrayList <>(); + // This list will store Capella references that have already been matched with an xtext reference + ArrayList processedReferences = new ArrayList<>(); + editElements(scenario, elements, processedCapellaMessages, processedCapellaCombinedFragments, processedStateFragments, processedReferences); // Reorder scenario, this means reordering the interaction fragments and sequence messages lists reorderCapellaScenario(scenario, elements); - + // refresh visual editor syncGraphicalOrdering(); } /** - * Reorder interaction fragments and messages (their start, end and execution end) according to the xtext - * scenario + * Reorder interaction fragments and messages (their start, end and execution end) according to the xtext scenario * * @param scenario * The scenario diagram @@ -373,10 +388,14 @@ private void reorderCapellaScenario(Scenario scenario, EList elements) List interactionFragments = new ArrayList<>(); List executionEndsToProcess = new ArrayList<>(); + // this list will store Capella messages that are already matched with xtext messages + List processedCapellaMessages = new ArrayList<>(); + // this list will store Capella combined fragments that are already matched with xtext combined fragments + ArrayList processedCapellaCombinedFragments = new ArrayList<>(); reorderCapellaFragments(scenario, elements, capellaSequenceMessages, interactionFragments, - executionEndsToProcess); + executionEndsToProcess, processedCapellaMessages, processedCapellaCombinedFragments); - // Replace sequence message list and interaction fragments list in the real scenario + // Replace sequence message list and interaction fragments list in the real scenario // with the newly computed lists scenario.getOwnedInteractionFragments().clear(); scenario.getOwnedInteractionFragments().addAll(interactionFragments); @@ -386,32 +405,35 @@ private void reorderCapellaScenario(Scenario scenario, EList elements) } /** - * Reorder interaction fragments and messages (their start, end and execution end) according to the xtext - * scenario + * Reorder interaction fragments and messages (their start, end and execution end) according to the xtext scenario * * @param scenario * The scenario diagram * @param elements * The list of elements in editor + * @param processedCapellaMessages + * @param processedCapellaCombinedFragments */ private void reorderCapellaFragments(Scenario scenario, EList elements, List capellaSequenceMessages, List interactionFragments, - List executionEndsToProcess) { + List executionEndsToProcess, List processedCapellaMessages, + ArrayList processedCapellaCombinedFragments) { for (Iterator iterator = elements.iterator(); iterator.hasNext();) { EObject elementFromXtext = iterator.next(); if (elementFromXtext instanceof ParticipantDeactivation) { - reorderCapellaDeactivationMessages((ParticipantDeactivation) elementFromXtext, - interactionFragments, capellaSequenceMessages, executionEndsToProcess); + reorderCapellaDeactivationMessages((ParticipantDeactivation) elementFromXtext, interactionFragments, + capellaSequenceMessages, executionEndsToProcess); } else if (elementFromXtext instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.Message) { reorderCapellaSequenceMessages(scenario, (org.polarsys.capella.scenario.editor.dsl.textualScenario.Message) elementFromXtext, - interactionFragments, capellaSequenceMessages, executionEndsToProcess); + interactionFragments, capellaSequenceMessages, executionEndsToProcess, processedCapellaMessages); } else if (elementFromXtext instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment) { - org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment textCombinedFragment = (org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment) elementFromXtext; + org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment textCombinedFragment = + (org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment) elementFromXtext; CombinedFragment capellaCombinedFragment = getCorrespondingCapellaCombinedFragment(scenario, - textCombinedFragment); + textCombinedFragment, processedCapellaCombinedFragments); if (capellaCombinedFragment != null) { // start the Combined Fragment Block interactionFragments.add(capellaCombinedFragment.getStart()); @@ -422,7 +444,8 @@ private void reorderCapellaFragments(Scenario scenario, EList elements, // add content in the first operand of the Combined Fragment Block interactionFragments.add(orderedCapellaOperands.get(0)); reorderCapellaFragments(scenario, textCombinedFragment.getBlock().getBlockElements(), - capellaSequenceMessages, interactionFragments, executionEndsToProcess); + capellaSequenceMessages, interactionFragments, executionEndsToProcess, processedCapellaMessages, + processedCapellaCombinedFragments); // reorder the other operands EList textOperands = textCombinedFragment.getOperands(); @@ -431,20 +454,26 @@ private void reorderCapellaFragments(Scenario scenario, EList elements, // add content in the first operand of the Combined Fragment Block interactionFragments.add(operand); reorderCapellaFragments(scenario, textOperands.get(i).getBlock().getBlockElements(), - capellaSequenceMessages, interactionFragments, executionEndsToProcess); + capellaSequenceMessages, interactionFragments, executionEndsToProcess, processedCapellaMessages, + processedCapellaCombinedFragments); } // finish the Combined Fragment Block interactionFragments.add(capellaCombinedFragment.getFinish()); } } else if (elementFromXtext instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment) { - StateFragment stateFragment = getCorrespondingCapellaStateFragment(scenario, interactionFragments, (org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment) elementFromXtext); if (stateFragment != null) { interactionFragments.add(stateFragment.getStart()); interactionFragments.add(stateFragment.getFinish()); } + } else if (elementFromXtext instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference) { + InteractionUse reference = getCorrespondingCapellaReference(scenario, (Reference) elementFromXtext, interactionFragments); + if (reference != null) { + interactionFragments.add(reference.getStart()); + interactionFragments.add(reference.getFinish()); + } } } } @@ -468,8 +497,7 @@ private void reorderCapellaFragments(Scenario scenario, EList elements, * interaction fragments. */ private void reorderCapellaDeactivationMessages(ParticipantDeactivation participantDeactivationMessage, - List interactionFragments, - List capellaSequenceMessages, + List interactionFragments, List capellaSequenceMessages, List executionEndsToProcess) { // This is a ParticipantDeactivationMessage, so the execution on the corresponding timeline finished. // We must move the interaction fragment representing the execution end on the correct position in the @@ -500,19 +528,25 @@ private void reorderCapellaDeactivationMessages(ParticipantDeactivation particip * @param executionEndsToProcess * List of execution ends that have to be processed (moved on the correct order in the list of * interaction fragments. + * @param processedCapellaMessages */ private void reorderCapellaSequenceMessages(Scenario scenario, Message elementFromXtext, List interactionFragments, List capellaSequenceMessages, - List executionEndsToProcess) { + List executionEndsToProcess, List processedCapellaMessages) { // This is a sequence message, it can be with execution and/or with return if (foundInstanceRolesOnMessageEnds(elementFromXtext)) { - SequenceMessage capellaSequenceMessage = getCorrespondingCapellaSequenceMessage(scenario, elementFromXtext); + SequenceMessage capellaSequenceMessage = getCorrespondingCapellaSequenceMessage(scenario, elementFromXtext, processedCapellaMessages); if (capellaSequenceMessage != null) { capellaSequenceMessages.add(capellaSequenceMessage); // insert message ends in interaction fragments list - interactionFragments.add(capellaSequenceMessage.getSendingEnd()); - interactionFragments.add(capellaSequenceMessage.getReceivingEnd()); + if(capellaSequenceMessage.getSendingEnd() != null) { + interactionFragments.add(capellaSequenceMessage.getSendingEnd()); + } + + if(capellaSequenceMessage.getReceivingEnd() != null) { + interactionFragments.add(capellaSequenceMessage.getReceivingEnd()); + } if (!(capellaSequenceMessage.getKind().equals(MessageKind.CREATE) || capellaSequenceMessage.getKind().equals(MessageKind.DELETE))) { @@ -521,7 +555,7 @@ private void reorderCapellaSequenceMessages(Scenario scenario, Message elementFr // For simple messages, execution end will be added here, if no return branch if (!hasExecution(elementFromXtext)) { if (!hasReturn(elementFromXtext)) { - if(execution != null) + if (execution != null) interactionFragments.add(execution.getFinish()); } else { // Simple message has return branch, add the return sequence message here @@ -537,7 +571,7 @@ private void reorderCapellaSequenceMessages(Scenario scenario, Message elementFr } else { // For withExecution messages, execution end will be added when deactivate message will be found. // At that point, the return message will be moved in order, too, if this is the case - if(execution != null) + if (execution != null) executionEndsToProcess.add(execution.getFinish()); } } @@ -553,120 +587,177 @@ private void reorderCapellaSequenceMessages(Scenario scenario, Message elementFr * @return true if instance roles found, false otherwise */ private boolean foundInstanceRolesOnMessageEnds(Message elementFromXtext) { - if (elementFromXtext instanceof SequenceMessageType) { - InstanceRole source = EmbeddedEditorInstanceHelper.getInstanceRole(((SequenceMessageType) elementFromXtext).getSource()); - InstanceRole target = EmbeddedEditorInstanceHelper.getInstanceRole(((SequenceMessageType) elementFromXtext).getTarget()); + if (elementFromXtext instanceof SequenceMessageType) { + InstanceRole source = EmbeddedEditorInstanceHelper + .getInstanceRole(((SequenceMessageType) elementFromXtext).getSource()); + InstanceRole target = EmbeddedEditorInstanceHelper + .getInstanceRole(((SequenceMessageType) elementFromXtext).getTarget()); return source != null && target != null; } if (elementFromXtext instanceof ArmTimerMessage) { - InstanceRole timeline = EmbeddedEditorInstanceHelper.getInstanceRole(((ArmTimerMessage) elementFromXtext).getParticipant()); + InstanceRole timeline = EmbeddedEditorInstanceHelper + .getInstanceRole(((ArmTimerMessage) elementFromXtext).getParticipant()); + return timeline != null; + } + if (elementFromXtext instanceof LostMessage) { + InstanceRole timeline = EmbeddedEditorInstanceHelper + .getInstanceRole(((LostMessage) elementFromXtext).getSource()); + return timeline != null; + } + if (elementFromXtext instanceof FoundMessage) { + InstanceRole timeline = EmbeddedEditorInstanceHelper + .getInstanceRole(((FoundMessage) elementFromXtext).getTarget()); return timeline != null; } return false; } - + }); } /** - * Create all objects necessary to display the text scenario in the Capella diagram. - * This includes sequence messages, combined fragments, state fragments + * Create all objects necessary to display the text scenario in the Capella diagram. This includes sequence messages, + * combined fragments, state fragments * * @param scenario * The scenario diagram * @param elements * The list of elements in editor + * @param processedCapellaMessages + * @param processedCapellaCombinedFragments */ - private static void editElements(Scenario scenario, EList elements) { - EList sequenceMessages = scenario.getOwnedMessages(); - List previousStateFragments = new ArrayList <>(); + private static void editElements(Scenario scenario, EList elements, + List processedCapellaMessages, ArrayList processedCapellaCombinedFragments, + ArrayList previousStateFragments, + ArrayList previousReferences) { + EList capellaSequenceMessages = scenario.getOwnedMessages(); + for (Iterator iterator = elements.iterator(); iterator.hasNext();) { EObject xtextElement = iterator.next(); if (xtextElement instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.Message && !(xtextElement instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.ParticipantDeactivation)) { // This is a sequence message, it can be with execution and/or with return - org.polarsys.capella.scenario.editor.dsl.textualScenario.Message seqMessage = + org.polarsys.capella.scenario.editor.dsl.textualScenario.Message xtextSeqMessage = (org.polarsys.capella.scenario.editor.dsl.textualScenario.Message) xtextElement; InstanceRole source = null; InstanceRole target = null; - if (seqMessage instanceof SequenceMessageType) { - source = EmbeddedEditorInstanceHelper.getInstanceRole(((SequenceMessageType) seqMessage).getSource()); - target = EmbeddedEditorInstanceHelper.getInstanceRole(((SequenceMessageType) seqMessage).getTarget()); - } else { - source = EmbeddedEditorInstanceHelper.getInstanceRole(((ArmTimerMessage) seqMessage).getParticipant()); + if (xtextSeqMessage instanceof SequenceMessageType) { + source = EmbeddedEditorInstanceHelper.getInstanceRole(((SequenceMessageType) xtextSeqMessage).getSource()); + target = EmbeddedEditorInstanceHelper.getInstanceRole(((SequenceMessageType) xtextSeqMessage).getTarget()); + } else if (xtextSeqMessage instanceof LostMessage) { + source = EmbeddedEditorInstanceHelper.getInstanceRole(((LostMessage) xtextSeqMessage).getSource()); + } else if (xtextSeqMessage instanceof FoundMessage) { + target = EmbeddedEditorInstanceHelper.getInstanceRole(((FoundMessage) xtextSeqMessage).getTarget()); + } else if (xtextSeqMessage instanceof ArmTimerMessage) { + source = EmbeddedEditorInstanceHelper.getInstanceRole(((ArmTimerMessage) xtextSeqMessage).getParticipant()); target = source; } - if (!foundMessageBySourceTargetAndName(sequenceMessages, seqMessage)) { - SequenceMessage sequenceMessage = createCapellaSequenceMessage(scenario, source, target, seqMessage); - sequenceMessages.add(sequenceMessage); + if (!foundMatchingCapellaMessage(capellaSequenceMessages, xtextSeqMessage, processedCapellaMessages)) { + SequenceMessage sequenceMessage = createCapellaSequenceMessage(scenario, source, target, xtextSeqMessage); + capellaSequenceMessages.add(sequenceMessage); + processedCapellaMessages.add(sequenceMessage); // if message has return branch, create corresponding Capella return message - if (hasReturn(seqMessage)) { + if (source != null && target != null && hasReturn(xtextSeqMessage)) { SequenceMessage opposingSequenceMessage = createCapellaSequenceMessage(scenario, target, source, - seqMessage, true); + xtextSeqMessage, true); Execution execution = getExecutionForSequenceMessage(scenario, sequenceMessage); - if(execution != null) + if (execution != null) execution.setFinish(opposingSequenceMessage.getSendingEnd()); - sequenceMessages.add(opposingSequenceMessage); + capellaSequenceMessages.add(opposingSequenceMessage); } } } else if (xtextElement instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment) { // Check if we need to create CombinedFragment CombinedFragment capellaFragment = getCorrespondingCapellaCombinedFragment(scenario, - (org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment) xtextElement); + (org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment) xtextElement, + processedCapellaCombinedFragments); if (capellaFragment == null) { InteractionFragment lastInteractionFragment = null; - if (!sequenceMessages.isEmpty()) { - SequenceMessage lastSequenceMessage = sequenceMessages.get(sequenceMessages.size() - 1); + if (!capellaSequenceMessages.isEmpty()) { + SequenceMessage lastSequenceMessage = capellaSequenceMessages.get(capellaSequenceMessages.size() - 1); lastInteractionFragment = lastSequenceMessage.getReceivingEnd(); } createCapellaCombinedFragmentBlock(scenario, (org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment) xtextElement, - lastInteractionFragment); + lastInteractionFragment, processedCapellaMessages, processedCapellaCombinedFragments, + previousStateFragments, previousReferences); } else { // combined fragment found, check its contents editElements(scenario, ((org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment) xtextElement).getBlock() - .getBlockElements()); + .getBlockElements(), + processedCapellaMessages, processedCapellaCombinedFragments, previousStateFragments, previousReferences); for (Operand operand : ((org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment) xtextElement) .getOperands()) { - editElements(scenario, operand.getBlock().getBlockElements()); + editElements(scenario, operand.getBlock().getBlockElements(), processedCapellaMessages, + processedCapellaCombinedFragments, previousStateFragments, previousReferences); } } } else if (xtextElement instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment) { - previousStateFragments.add(xtextElement); + previousStateFragments + .add((org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment) xtextElement); editStateFragment(scenario, (org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment) xtextElement, previousStateFragments); + } else if (xtextElement instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference) { + previousReferences.add((Reference) xtextElement); + editReference(scenario, (org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference) xtextElement, + previousReferences); } } } + + /** + * Clean up messages, state fragments, combined fragments and references that appear in diagram and do not appear in text + * + * @param scenario + * Scenario + * @param model + * Domain Model - xtext + */ + private static void cleanUp(Scenario scenario, List elements) { + List allXtextElements = getAllXtextElements(elements, new ArrayList<>()); + cleanUpMessages(scenario, allXtextElements); + cleanUpStateFragments(scenario, allXtextElements); + cleanUpCombinedFragments(scenario, allXtextElements); + cleanUpReferences(scenario, allXtextElements); + } /** - * Check to see if there is any message with the given source, target and name + * Check to see if there is any message matching the given xtext message, that was not yet processed * - * @param sequenceMessages + * @param capellaSequenceMessages * List of sequence messages to search into + * @param processedXtextMessages * @param source * Source instance role - * @param target + * @param target * Target instance role * @param messageName * Message name + * @param processedCapellaMessages + * List of Capella messages that have already been matched with xtext messages * @return true if a message with these attributes was found, false otherwise */ - private static boolean foundMessageBySourceTargetAndName(EList sequenceMessages, - org.polarsys.capella.scenario.editor.dsl.textualScenario.Message seqMessage) { - List msgsFilteredByNameTargetSource = sequenceMessages.stream() - .filter(x -> isSameMessage(seqMessage, x)) - + private static boolean foundMatchingCapellaMessage(EList capellaSequenceMessages, + org.polarsys.capella.scenario.editor.dsl.textualScenario.Message seqMessage, + List processedCapellaMessages) { + + // find matching Capella message that was not previously processed + List matchingMessages = capellaSequenceMessages.stream() + .filter(x -> !processedCapellaMessages.contains(x) && isSameMessage(seqMessage, x)) .collect(Collectors.toList()); - return !msgsFilteredByNameTargetSource.isEmpty(); + if (!matchingMessages.isEmpty()) { + processedCapellaMessages.add(matchingMessages.get(0)); + return true; + } + return false; } /** @@ -681,7 +772,7 @@ private static boolean hasReturn(Message elementFromXtext) { return ((org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessage) elementFromXtext).getReturn() != null; return false; } - + /** * Check to see if the given message has execution (withExecution keyword present) * @@ -700,18 +791,18 @@ protected static boolean hasExecution(Message elementFromXtext) { } /** - * Create/update a state fragment using the information in the xtext scenario + * Create/update a state fragment using the information in the xtext scenario * * @param scenario * The scenario diagram * @param xtextElement * The element representing the state fragment in the xtext scenario * @param previousEditorStateFragments - * The list of previously occurring matching state fragments + * The list of previously occurring matching state fragments */ private static void editStateFragment(Scenario scenario, org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment xtextElement, - List previousEditorStateFragments) { + List previousEditorStateFragments) { InstanceRole instanceRole = EmbeddedEditorInstanceHelper.getInstanceRole(xtextElement.getTimeline()); EList ownedTimeLapses = scenario.getOwnedTimeLapses(); @@ -747,7 +838,7 @@ private static void editStateFragment(Scenario scenario, } /** - * Return a list of state fragments with the given attributes (instance role and related element) + * Return a list of state fragments with the given attributes (instance role and related element) * * @param scenario * The scenario diagram @@ -761,8 +852,9 @@ private static void editStateFragment(Scenario scenario, * The element representing Capella abstract function or abstract state related with a state fragment * @return the list of state fragments with the given attributes */ - private static List getStateFragmentsWithGivenAttributes(Scenario scenario, InstanceRole instanceRole, - org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment xtextElement, EObject relatedElement) { + private static List getStateFragmentsWithGivenAttributes(Scenario scenario, + InstanceRole instanceRole, org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment xtextElement, + EObject relatedElement) { if (xtextElement.getKeyword().equals(DslConstants.FUNCTION)) return scenario.getOwnedTimeLapses().stream() @@ -794,8 +886,7 @@ private static EObject getRelatedElement(InstanceRole instanceRole, if (stateFragment.getKeyword().equals(DslConstants.FUNCTION)) { return getCorrespondingCapellaAbstractFunction(instanceRole, stateFragment.getName()); } - return getCorrespondingCapellaAbstractState(instanceRole, stateFragment.getName(), - stateFragment.getKeyword()); + return getCorrespondingCapellaAbstractState(instanceRole, stateFragment.getName(), stateFragment.getKeyword()); } /** @@ -833,7 +924,7 @@ private static StateFragment createStateFragment(InteractionState interactionSta * @param relatedElement * The related abstract function or abstract state for the given state fragment * @param instanceRole - * Timeline (instance role) for the interaction state + * Timeline (instance role) for the interaction state * @return the newly created interaction state */ private static InteractionState createInteractionState(String name, EObject relatedElement, InstanceRole instanceRole) { @@ -857,13 +948,12 @@ private static InteractionState createInteractionState(String name, EObject rela * @param scenario * The scenario diagram * @param instanceRole - * Timeline (instance role) for the interaction state + * Timeline (instance role) for the interaction state * @param name * Name of the abstract function * @return the corresponding Capella abstract function or null if no abstract function with the given attributes was found */ - private static AbstractFunction getCorrespondingCapellaAbstractFunction(InstanceRole instanceRole, - String name) { + private static AbstractFunction getCorrespondingCapellaAbstractFunction(InstanceRole instanceRole, String name) { List availableFunctions = EmbeddedEditorInstanceHelper.getAllocatedFunctions(instanceRole); for (AbstractFunction availableFunction : availableFunctions) { @@ -879,15 +969,14 @@ private static AbstractFunction getCorrespondingCapellaAbstractFunction(Instance * @param scenario * The scenario diagram * @param instanceRole - * Timeline (instance role) for the interaction state + * Timeline (instance role) for the interaction state * @param name * Name of the abstract state * @param keyword * STATE or MODE * @return the corresponding Capella abstract state or null if no abstract state with the given attributes was found */ - private static AbstractState getCorrespondingCapellaAbstractState(InstanceRole instanceRole, - String name, String keyword) { + private static AbstractState getCorrespondingCapellaAbstractState(InstanceRole instanceRole, String name, String keyword) { List availableStates; if (keyword.equals(DslConstants.STATE)) { @@ -909,7 +998,7 @@ private static AbstractState getCorrespondingCapellaAbstractState(InstanceRole i * @param scenario * The scenario diagram * @param sequenceMessage - * Capella sequence message + * Capella sequence message * @return the Execution object or null if no execution found */ private static Execution getExecutionForSequenceMessage(Scenario scenario, SequenceMessage sequenceMessage) { @@ -927,20 +1016,23 @@ private static Execution getExecutionForSequenceMessage(Scenario scenario, Seque } /** - * Return the corresponding Capella sequence message + * Return the corresponding Capella sequence message that was not already been matched * * @param scenario * The scenario diagram * @param elementFromXtext * The element representing the message in the xtext editor + * @param processedCapellaMessages + * List of Capella messages that were already matched with xtext messages * @return the corresponding Capella sequence message or null if no message found */ private static SequenceMessage getCorrespondingCapellaSequenceMessage(Scenario scenario, - Message elementFromXtext) { + Message elementFromXtext, List processedCapellaMessages) { EList sequenceMessages = scenario.getOwnedMessages(); for (SequenceMessage sm : sequenceMessages) { - if (isSameMessage(elementFromXtext, sm)) { + if (!processedCapellaMessages.contains(sm) && isSameMessage(elementFromXtext, sm)) { + processedCapellaMessages.add(sm); return sm; } } @@ -968,7 +1060,7 @@ private static InteractionOperand getCapellaInteractionOperand(Scenario scenario combinedFragmentOperands.removeAll(processedOperands); for (InteractionOperand operand : combinedFragmentOperands) { // go trough each text operand and check that - if (textOperandBlock.getExpression().equals(HelperCommands.getExpressionText(operand))) { + if (isSameExpression(HelperCommands.getExpressionText(operand), textOperandBlock.getExpression())) { processedOperands.add(operand); return operand; } @@ -995,7 +1087,7 @@ private static InteractionOperand getFirstCapellaInteractionOperand(Scenario sce for (InteractionOperand operand : combinedFragmentOperands) { // go trough each text operand and check that - if (textCombinedFragment.getExpression().equals(HelperCommands.getExpressionText(operand))) { + if (isSameExpression(HelperCommands.getExpressionText(operand), textCombinedFragment.getExpression())) { return operand; } } @@ -1016,16 +1108,16 @@ private static InteractionOperand getFirstCapellaInteractionOperand(Scenario sce private static List getOrderedCapellaInteractionOperands(Scenario scenario, org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment textCombinedFragment, CombinedFragment capellaCombinedFragment) { - List orderedOperands = new ArrayList<>( - 1 + textCombinedFragment.getOperands().size()); + List orderedOperands = new ArrayList<>(1 + textCombinedFragment.getOperands().size()); orderedOperands.add(getFirstCapellaInteractionOperand(scenario, textCombinedFragment, capellaCombinedFragment)); List processedOperands = new ArrayList<>(); processedOperands.add(orderedOperands.get(0)); - + for (Operand textOperandBlock : textCombinedFragment.getOperands()) { - orderedOperands.add(getCapellaInteractionOperand(scenario, textOperandBlock, capellaCombinedFragment, processedOperands)); + orderedOperands + .add(getCapellaInteractionOperand(scenario, textOperandBlock, capellaCombinedFragment, processedOperands)); } return orderedOperands; @@ -1051,14 +1143,16 @@ private static StateFragment getCorrespondingCapellaStateFragment(Scenario scena List filteredTimeLapses; if (stateFragment.getKeyword().equals(DslConstants.FUNCTION)) { filteredTimeLapses = scenario.getOwnedTimeLapses().stream() - .filter(x -> x instanceof StateFragment && ((StateFragment) x).getRelatedAbstractFunction() != null + .filter(x -> x instanceof StateFragment + && ((StateFragment) x).getRelatedAbstractFunction() != null && ((StateFragment) x).getRelatedAbstractFunction().getName().equals(stateFragment.getName()) && x.getStart().getCoveredInstanceRoles().get(0).equals(instanceRole) && !interactionFragments.contains(((StateFragment) x).getStart())) .collect(Collectors.toList()); } else { filteredTimeLapses = scenario.getOwnedTimeLapses().stream() - .filter(x -> x instanceof StateFragment && ((StateFragment) x).getRelatedAbstractState() != null + .filter(x -> x instanceof StateFragment + && ((StateFragment) x).getRelatedAbstractState() != null && ((StateFragment) x).getRelatedAbstractState().getName().equals(stateFragment.getName()) && x.getStart().getCoveredInstanceRoles().get(0).equals(instanceRole) && !interactionFragments.contains(((StateFragment) x).getStart())) @@ -1078,22 +1172,31 @@ private static StateFragment getCorrespondingCapellaStateFragment(Scenario scena * The scenario diagram * @param textCombinedFragment * The element representing the combined fragment in the xtext editor + * @param processedCapellaCombinedFragments * @return the corresponding Capella combined fragment or null if not found */ private static CombinedFragment getCorrespondingCapellaCombinedFragment(Scenario scenario, - org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment textCombinedFragment) { + org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment textCombinedFragment, + ArrayList processedCapellaCombinedFragments) { EList fragments = scenario.getOwnedInteractionFragments(); for (Iterator iterator = fragments.iterator(); iterator.hasNext();) { InteractionFragment element = iterator.next(); if (element instanceof FragmentEnd) { - CombinedFragment candidateCombinedFragment = (CombinedFragment) ((FragmentEnd) element).getAbstractFragment(); - if (candidateCombinedFragment.getOperator().toString().equalsIgnoreCase(textCombinedFragment.getKeyword())) { - //check timelines + AbstractFragment abstractFragment = ((FragmentEnd) element).getAbstractFragment(); + CombinedFragment candidateCombinedFragment = null; + if (abstractFragment instanceof CombinedFragment) { + candidateCombinedFragment = (CombinedFragment) abstractFragment; + } + if (candidateCombinedFragment != null + && !processedCapellaCombinedFragments.contains(candidateCombinedFragment) + && candidateCombinedFragment.getOperator().toString().equalsIgnoreCase(textCombinedFragment.getKeyword())) { + // check timelines if (haveSameTimelines(textCombinedFragment, candidateCombinedFragment)) { List capellaOperands = candidateCombinedFragment.getReferencedOperands(); if (capellaOperands.size() == textCombinedFragment.getOperands().size() + 1 && operandsHaveSameExpressions(textCombinedFragment, capellaOperands)) { + processedCapellaCombinedFragments.add(candidateCombinedFragment); return candidateCombinedFragment; } } @@ -1115,11 +1218,11 @@ && operandsHaveSameExpressions(textCombinedFragment, capellaOperands)) { private static boolean haveSameTimelines( org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment textCombinedFragment, CombinedFragment capellaCombinedFragment) { - - EList xtextTimelines = textCombinedFragment.getTimelines(); + + EList xtextTimelines = textCombinedFragment.getTimelines(); List capellaTimelines = capellaCombinedFragment.getStart().getCoveredInstanceRoles().stream() .map(role -> role.getName()).collect(Collectors.toList()); - + xtextTimelines.sort(Comparator.naturalOrder()); capellaTimelines.sort(Comparator.naturalOrder()); return xtextTimelines.equals(capellaTimelines); @@ -1137,21 +1240,23 @@ private static boolean haveSameTimelines( private static boolean operandsHaveSameExpressions( org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment textCombinedFragment, List capellaOperands) { - - //check expression on first operand + + // check expression on first operand InteractionOperand capellaOperand = capellaOperands.get(0); Operand xtextOperand; boolean operandsHaveSameExpressions = true; - if (!HelperCommands.getExpressionText(capellaOperand).equals(textCombinedFragment.getExpression())) { + + if (!isSameExpression(HelperCommands.getExpressionText(capellaOperand), textCombinedFragment.getExpression())) { operandsHaveSameExpressions = false; } - - //check expression on the rest of the operands + + // check expression on the rest of the operands int i = 1; while (i < capellaOperands.size() && operandsHaveSameExpressions) { capellaOperand = capellaOperands.get(i); xtextOperand = textCombinedFragment.getOperands().get(i - 1); - if (!HelperCommands.getExpressionText(capellaOperand).equals(xtextOperand.getExpression())) { + + if (!isSameExpression(HelperCommands.getExpressionText(capellaOperand), xtextOperand.getExpression())) { operandsHaveSameExpressions = false; } i++; @@ -1160,78 +1265,90 @@ private static boolean operandsHaveSameExpressions( } /** - * Remove all messages that are in the diagram, but not in the editor. - * Remove all related elements (execution, interaction fragments, etc) + * Remove all messages that are in the diagram, but not in the editor. Remove all related elements (execution, + * interaction fragments, etc) * * @param scenario * The scenario diagram * @param messages * List of messages in the xtext editor */ - private static void cleanUpMessages(Scenario scenario, EList messages) { + private static void cleanUpMessages(Scenario scenario, List messages) { // Delete all diagram messages that don't appear in the xtext scenario - EList sequenceMessages = scenario.getOwnedMessages(); - List allXtextSequenceMessages = getAllXtextSequenceMessages(messages); - List messagesToBeDeleted = sequenceMessages.stream() - .filter(capellaSequenceMessage -> capellaSequenceMessage.getKind() != MessageKind.REPLY - && !foundCapellaMessageInXText(capellaSequenceMessage, allXtextSequenceMessages)) - .collect(Collectors.toList()); - + List allXtextSequenceMessages = getAllXtextSequenceMessages(messages); + + List messagesToBeDeleted = getCapellaSequenceMessagesToBeDeleted(scenario, allXtextSequenceMessages); for (SequenceMessage sequenceMessage : messagesToBeDeleted) { // Remove message from Capella scenario, together with execution, interaction fragments and events related to this // message removeMessageFromScenario(scenario, sequenceMessage); } } + + private static List getCapellaSequenceMessagesToBeDeleted(Scenario scenario, + List allXtextSequenceMessages) { + // We mark for deletion all sequence messages in scenario that don't have corresponding xtext fragments + List capellaSequenceMessages = scenario.getOwnedMessages(); + + List processedXtextSequenceMessages = new ArrayList<>(); + List sequenceMessagesToBeDeleted = new ArrayList<>(); + + for (SequenceMessage capellaSequenceMessage : capellaSequenceMessages) { + if (capellaSequenceMessage.getKind() != MessageKind.REPLY + && !foundCapellaMessageInXText(capellaSequenceMessage, allXtextSequenceMessages, processedXtextSequenceMessages)) { + sequenceMessagesToBeDeleted.add(capellaSequenceMessage); + } + } + + return sequenceMessagesToBeDeleted; + } /** - * Remove all state fragments that are in the diagram, but not in the editor. - * Remove all related elements. + * Remove all state fragments that are in the diagram, but not in the editor. Remove all related elements. * * @param scenario * The scenario diagram * @param xTextElements * List of elements in the xtext editor */ - private static void cleanUpStateFragments(Scenario scenario, EList xTextElements) { + private static void cleanUpStateFragments(Scenario scenario, List xTextElements) { // Delete all diagram state fragments that don't appear in the xtext scenario - List allXtextStateFragments = xTextElements.stream() + List allXtextStateFragments = xTextElements.stream() .filter(element -> element instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment) .collect(Collectors.toList()); List stateFragmentsToBeDeleted = getCapellaStateFragmentsToBeDeleted(scenario, allXtextStateFragments); - + for (TimeLapse timeLapse : stateFragmentsToBeDeleted) { removeStateFragmentFromScenario(scenario, timeLapse); } } /** - * Remove all combined fragments that are in the diagram, but not in the editor. - * Remove all related elements. + * Remove all combined fragments that are in the diagram, but not in the editor. Remove all related elements. * * @param scenario * The scenario diagram * @param xTextElements * List of elements in the xtext editor */ - private static void cleanUpCombinedFragments(Scenario scenario, EList xTextElements) { + private static void cleanUpCombinedFragments(Scenario scenario, List xTextElements) { // Delete all diagram combined fragments that don't appear in the xtext scenario - List allXtextCombinedFragments = xTextElements.stream() + List allXtextCombinedFragments = xTextElements.stream() .filter(element -> element instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment) .collect(Collectors.toList()); - List combinedFragmentsToBeDeleted = getCapellaCombinedFragmentsToBeDeleted(scenario, allXtextCombinedFragments); - + List combinedFragmentsToBeDeleted = getCapellaCombinedFragmentsToBeDeleted(scenario, + allXtextCombinedFragments); + for (TimeLapse timeLapse : combinedFragmentsToBeDeleted) { removeCombinedFragmentFromScenario(scenario, timeLapse); } } /** - * Return the list of Capella combined fragments to be deleted (the ones that don't have corresponding - * xtext elements) + * Return the list of Capella combined fragments to be deleted (the ones that don't have corresponding xtext elements) * * @param scenario * The scenario diagram @@ -1244,17 +1361,16 @@ private static List getCapellaCombinedFragmentsToBeDeleted(Scenario s // We mark for deletion all combined fragments in scenario that don't have corresponding xtext fragments List capellaCombinedFragments = scenario.getOwnedTimeLapses().stream() .filter(timelapse -> timelapse instanceof CombinedFragment).collect(Collectors.toList()); - - List processedXtextCombinedFragments = - new ArrayList<>(); + + List processedXtextCombinedFragments = new ArrayList<>(); List combinedFragmentsToBeDeleted = new ArrayList<>(); - + for (TimeLapse timeLapse : capellaCombinedFragments) { if (!foundCapellaCombinedFragmentInXText(timeLapse, allXtextCombinedFragments, processedXtextCombinedFragments)) { combinedFragmentsToBeDeleted.add(timeLapse); } } - + return combinedFragmentsToBeDeleted; } @@ -1275,7 +1391,8 @@ private static boolean foundCapellaCombinedFragmentInXText(TimeLapse timeLapse, for (EObject xtextCombinedFragment : allXtextCombinedFragments) { if (!processedXtextCombinedFragments.contains(xtextCombinedFragment) && isSameCombinedFragment(xtextCombinedFragment, timeLapse)) { - processedXtextCombinedFragments.add((org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment) xtextCombinedFragment); + processedXtextCombinedFragments + .add((org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment) xtextCombinedFragment); return true; } } @@ -1289,6 +1406,7 @@ && isSameCombinedFragment(xtextCombinedFragment, timeLapse)) { * Capella combined fragment * @param timeLapse * Timelapse of a Capella combined fragment + * @param processedXtextCombinedFragments * @return true if the two combined fragments match, false otherwise */ private static boolean isSameCombinedFragment(EObject fragment, TimeLapse timeLapse) { @@ -1296,15 +1414,36 @@ private static boolean isSameCombinedFragment(EObject fragment, TimeLapse timeLa return false; } org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment xtextCombinedFragment = - (org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment) fragment; - CombinedFragment correspondingCapellaFragment = getCorrespondingCapellaCombinedFragment((Scenario) timeLapse.eContainer(), xtextCombinedFragment); - - return timeLapse.equals(correspondingCapellaFragment); + (org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment) fragment; + CombinedFragment correspondingCapellaFragment = (CombinedFragment) timeLapse; + if (correspondingCapellaFragment.getOperator().toString().equalsIgnoreCase(xtextCombinedFragment.getKeyword())) { + //check timelines + if (haveSameTimelines(xtextCombinedFragment, correspondingCapellaFragment)) { + List capellaOperands = correspondingCapellaFragment.getReferencedOperands(); + if (capellaOperands.size() == xtextCombinedFragment.getOperands().size() + 1 + && operandsHaveSameExpressions(xtextCombinedFragment, capellaOperands)) { + return true; + } + } + } + return false; } + public static CombinedFragment getCombinedFragment(TimeLapse timeLapse) { + List allocations = (List) EObjectExt.getReferencers(timeLapse, + InteractionPackage.Literals.TIME_LAPSE__START); + if ((allocations.size() == 1) && (allocations.get(0) instanceof CombinedFragment)) { + return (CombinedFragment) allocations.get(0); + } + allocations = (List) EObjectExt.getReferencers(timeLapse, InteractionPackage.Literals.TIME_LAPSE__FINISH); + if ((allocations.size() == 1) && (allocations.get(0) instanceof CombinedFragment)) { + return (CombinedFragment) allocations.get(0); + } + return null; + } + /** - * Return the list of Capella state fragments to be deleted (the ones that don't have corresponding - * xtext elements) + * Return the list of Capella state fragments to be deleted (the ones that don't have corresponding xtext elements) * * @param scenario * The scenario diagram @@ -1318,16 +1457,15 @@ private static List getCapellaStateFragmentsToBeDeleted(Scenario scen List capellaStateFragments = scenario.getOwnedTimeLapses().stream() .filter(timelapse -> timelapse instanceof StateFragment).collect(Collectors.toList()); - List processedXtextStateFragments = - new ArrayList<>(); + List processedXtextStateFragments = new ArrayList<>(); List stateFragmentsToBeDeleted = new ArrayList<>(); - + for (TimeLapse timeLapse : capellaStateFragments) { if (!foundCapellaStateFragmentInXText(timeLapse, allXtextStateFragments, processedXtextStateFragments)) { stateFragmentsToBeDeleted.add(timeLapse); } } - + return stateFragmentsToBeDeleted; } @@ -1362,12 +1500,15 @@ private static void removeMessageFromScenario(Scenario scenario, SequenceMessage scenario.getOwnedInteractionFragments().remove(executionEnd); // Remove events - Event eventSendOp = sendingEnd.getEvent(); - Event eventReveivOp = receivingEnd.getEvent(); - scenario.getOwnedEvents().remove(eventSendOp); - scenario.getOwnedEvents().remove(eventReveivOp); + if(sendingEnd != null) { + scenario.getOwnedEvents().remove(sendingEnd.getEvent()); + } + if(receivingEnd != null) { + scenario.getOwnedEvents().remove(receivingEnd.getEvent()); + } - if (sequenceMessage.getKind() != MessageKind.REPLY && !ScenarioExt.hasReply(sequenceMessage)) { + if (sendingEnd != null && receivingEnd != null && + sequenceMessage.getKind() != MessageKind.REPLY && !ScenarioExt.hasReply(sequenceMessage)) { // Remove execution event for normal sequence message Event executionEvent = executionEnd instanceof ExecutionEnd ? (Event) ExecutionEndExt.getOperation((ExecutionEnd) executionEnd) @@ -1378,7 +1519,7 @@ private static void removeMessageFromScenario(Scenario scenario, SequenceMessage // Remove sequence message scenario.getOwnedMessages().remove(sequenceMessage); } - + /** * Remove a state fragment from scenario. Remove all related elements. * @@ -1387,14 +1528,15 @@ private static void removeMessageFromScenario(Scenario scenario, SequenceMessage * @param timeLapse * The timelapse of the state fragment */ - private static void removeStateFragmentFromScenario(Scenario scenario, TimeLapse timeLapse) { + private static void removeStateFragmentFromScenario(Scenario scenario, TimeLapse timeLapse) { StateFragment stateFragment = (StateFragment) timeLapse; - + // Remove state fragment scenario.getOwnedTimeLapses().remove(timeLapse); - + // Remove interaction fragments - scenario.getOwnedInteractionFragments().removeAll(Arrays.asList(stateFragment.getStart(), stateFragment.getFinish())); + scenario.getOwnedInteractionFragments() + .removeAll(Arrays.asList(stateFragment.getStart(), stateFragment.getFinish())); } /** @@ -1407,13 +1549,14 @@ private static void removeStateFragmentFromScenario(Scenario scenario, TimeLapse */ private static void removeCombinedFragmentFromScenario(Scenario scenario, TimeLapse timeLapse) { CombinedFragment combinedFragment = (CombinedFragment) timeLapse; - + // Remove combined fragment scenario.getOwnedTimeLapses().remove(timeLapse); - + // Remove interaction fragments (start, finish, operands) - scenario.getOwnedInteractionFragments().removeAll(Arrays.asList(combinedFragment.getStart(), combinedFragment.getFinish(), - combinedFragment.getReferencedOperands())); + scenario.getOwnedInteractionFragments().removeAll(Arrays.asList(combinedFragment.getStart(), + combinedFragment.getFinish())); + scenario.getOwnedInteractionFragments().removeAll(combinedFragment.getReferencedOperands()); } /** @@ -1423,12 +1566,15 @@ private static void removeCombinedFragmentFromScenario(Scenario scenario, TimeLa * Capella sequence message * @param allXtextSequenceMessages * List of all sequence messages in the xtext scenario + * @param processedXtextSequenceMessages * @return true if a corresponding xtext message is found, false otherwise */ private static boolean foundCapellaMessageInXText(SequenceMessage capellaSequenceMessage, - List allXtextSequenceMessages) { - for (EObject message : allXtextSequenceMessages) { - if (isSameMessage(message, capellaSequenceMessage)) { + List allXtextSequenceMessages, List processedXtextSequenceMessages) { + for (Message message : allXtextSequenceMessages) { + if (!processedXtextSequenceMessages.contains(message) + && isSameMessage(message, capellaSequenceMessage)) { + processedXtextSequenceMessages.add(message); return true; } } @@ -1446,12 +1592,12 @@ private static boolean foundCapellaMessageInXText(SequenceMessage capellaSequenc * List of already considered xtext state fragments * @return true if a corresponding state fragment is found, false otherwise */ - private static boolean foundCapellaStateFragmentInXText(TimeLapse timelapse, - List allXtextStateFragments, List processedXtextStateFragments) { + private static boolean foundCapellaStateFragmentInXText(TimeLapse timelapse, List allXtextStateFragments, + List processedXtextStateFragments) { for (EObject stateFragment : allXtextStateFragments) { - if (!processedXtextStateFragments.contains(stateFragment) - && isSameStateFragment(stateFragment, timelapse)) { - processedXtextStateFragments.add((org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment) stateFragment); + if (!processedXtextStateFragments.contains(stateFragment) && isSameStateFragment(stateFragment, timelapse)) { + processedXtextStateFragments + .add((org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment) stateFragment); return true; } } @@ -1459,35 +1605,41 @@ && isSameStateFragment(stateFragment, timelapse)) { } /** - * Return the list of all xtext sequence messages. The search is done recursively when combined fragments are encountered - * - * @param textMessages - * List of messages in the xtext editor + * Return the list of all xtext sequence messages. + * @param elements + * List of elements in the xtext editor * @return the list of all xtext sequence messages */ - private static List getAllXtextSequenceMessages(EList textMessages) { - ArrayList xtextSequenceMessages = new ArrayList<>(); - for (Element element : textMessages) { + private static List getAllXtextSequenceMessages(List elements) { + List xtextSequenceMessages = new ArrayList<>(); + for (Element element : elements) { // SequenceMessage -> add it - if (element instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.Message) { - xtextSequenceMessages.add(element); + if (element instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessageType + || element instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.ArmTimerMessage + || element instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.LostFoundMessage) { + xtextSequenceMessages.add((Message) element); } - // CombinedFragment -> go inside and find all sequence messages at all levels + } + return xtextSequenceMessages; + } + + private static List getAllXtextElements(List elements, List allXtextElements) { + for (Element element : elements) { if (element instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment) { - org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment combinedFragmentElement = (org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment) element; - - // get sequence messages from the first operand (first block, actually) - xtextSequenceMessages - .addAll(getAllXtextSequenceMessages(combinedFragmentElement.getBlock().getBlockElements())); - - // get sequence messages from the rest of the operands + org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment combinedFragmentElement = + (org.polarsys.capella.scenario.editor.dsl.textualScenario.CombinedFragment) element; + allXtextElements.add(combinedFragmentElement); + allXtextElements + .addAll(getAllXtextElements(combinedFragmentElement.getBlock().getBlockElements(), allXtextElements)); for (EObject operand : combinedFragmentElement.getOperands()) { - xtextSequenceMessages.addAll(getAllXtextSequenceMessages(((Operand) operand).getBlock().getBlockElements())); + allXtextElements + .addAll(getAllXtextElements(((Operand) operand).getBlock().getBlockElements(), allXtextElements)); } + } else { + allXtextElements.add(element); } } - - return xtextSequenceMessages; + return allXtextElements; } /** @@ -1511,10 +1663,9 @@ private static boolean isSameMessage(EObject xtextElement, SequenceMessage seqMe MessageKind xtextMessageKind = null; String capellaMessageName = seqMessage.getName(); MessageKind capellaMessageKind = seqMessage.getKind(); - + if (xtextElement instanceof SequenceMessageType) { - org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessageType message = - (org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessageType) xtextElement; + org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessageType message = (org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessageType) xtextElement; sendingEnd = seqMessage.getSendingEnd(); receivingEnd = seqMessage.getReceivingEnd(); source = message.getSource(); @@ -1522,20 +1673,30 @@ private static boolean isSameMessage(EObject xtextElement, SequenceMessage seqMe xtextMessageName = message.getName(); xtextMessageKind = getSequenceMessageKind(message, false); } else if (xtextElement instanceof ArmTimerMessage) { - org.polarsys.capella.scenario.editor.dsl.textualScenario.ArmTimerMessage armTimerMessage = - (org.polarsys.capella.scenario.editor.dsl.textualScenario.ArmTimerMessage) xtextElement; + org.polarsys.capella.scenario.editor.dsl.textualScenario.ArmTimerMessage armTimerMessage = (org.polarsys.capella.scenario.editor.dsl.textualScenario.ArmTimerMessage) xtextElement; sendingEnd = seqMessage.getSendingEnd(); receivingEnd = seqMessage.getReceivingEnd(); source = armTimerMessage.getParticipant(); target = armTimerMessage.getParticipant(); xtextMessageName = armTimerMessage.getName(); xtextMessageKind = getSequenceMessageKind(armTimerMessage, false); + } else if (xtextElement instanceof LostMessage) { + org.polarsys.capella.scenario.editor.dsl.textualScenario.LostMessage lostMessage = (LostMessage) xtextElement; + sendingEnd = seqMessage.getSendingEnd(); + source = lostMessage.getSource(); + xtextMessageName = lostMessage.getName(); + xtextMessageKind = getSequenceMessageKind(lostMessage, false); + } else if (xtextElement instanceof FoundMessage) { + org.polarsys.capella.scenario.editor.dsl.textualScenario.FoundMessage foundMessage = (FoundMessage) xtextElement; + receivingEnd = seqMessage.getReceivingEnd(); + target = foundMessage.getTarget(); + xtextMessageName = foundMessage.getName(); + xtextMessageKind = getSequenceMessageKind(foundMessage, false); } - - return sendingEnd == null ? false : - isSameMessage(source, target, sendingEnd, receivingEnd, xtextMessageName, capellaMessageName, xtextMessageKind, capellaMessageKind); + + return isSameMessage(source, target, sendingEnd, receivingEnd, xtextMessageName, capellaMessageName, + xtextMessageKind, capellaMessageKind); } - /** * Check if the two messages match @@ -1560,15 +1721,23 @@ private static boolean isSameMessage(EObject xtextElement, SequenceMessage seqMe */ private static boolean isSameMessage(String source, String target, MessageEnd sendingEnd, MessageEnd receivingEnd, String messageName, String capellaMessageName, MessageKind xtextMessageKind, MessageKind capellaMessageKind) { - if (!sendingEnd.getCoveredInstanceRoles().isEmpty() + // if lost message, receiving end is null + if(sendingEnd != null && receivingEnd == null) { + return (!sendingEnd.getCoveredInstanceRoles().isEmpty() + && source.equals(sendingEnd.getCoveredInstanceRoles().get(0).getName()) + && messageName.equals(capellaMessageName) && xtextMessageKind.equals(capellaMessageKind)); + } + // if found message, sending end is null + if(sendingEnd == null && receivingEnd != null) { + return (!receivingEnd.getCoveredInstanceRoles().isEmpty() + && target.equals(receivingEnd.getCoveredInstanceRoles().get(0).getName()) + && messageName.equals(capellaMessageName) && xtextMessageKind.equals(capellaMessageKind)); + } + return (sendingEnd!= null && !sendingEnd.getCoveredInstanceRoles().isEmpty() && source.equals(sendingEnd.getCoveredInstanceRoles().get(0).getName()) && !receivingEnd.getCoveredInstanceRoles().isEmpty() && target.equals(receivingEnd.getCoveredInstanceRoles().get(0).getName()) - && messageName.equals(capellaMessageName) - && xtextMessageKind.equals(capellaMessageKind)) { - return true; - } - return false; + && messageName.equals(capellaMessageName) && xtextMessageKind.equals(capellaMessageKind)); } /** @@ -1584,11 +1753,11 @@ private static boolean isSameStateFragment(EObject fragment, TimeLapse timelapse if (!(fragment instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment)) { return false; } - org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment stateFragment = - (org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment) fragment; + org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment stateFragment = (org.polarsys.capella.scenario.editor.dsl.textualScenario.StateFragment) fragment; StateFragment capellaStateFragment = (StateFragment) timelapse; - - return (stateFragment.getTimeline().equals(capellaStateFragment.getStart().getCoveredInstanceRoles().get(0).getName()) + + return (stateFragment.getTimeline() + .equals(capellaStateFragment.getStart().getCoveredInstanceRoles().get(0).getName()) && stateFragment.getKeyword().equals(EmbeddedEditorInstanceHelper.getStateFragmentType(capellaStateFragment)) && stateFragment.getName().equals(EmbeddedEditorInstanceHelper.getStateFragmentName(capellaStateFragment))); } @@ -1627,41 +1796,51 @@ private static SequenceMessage createCapellaSequenceMessage(Scenario scenario, I * @return the newly created Capella sequence message */ private static SequenceMessage createCapellaSequenceMessage(Scenario scenario, InstanceRole source, - InstanceRole target, Message seqMessage, - boolean isReplyMessage) { + InstanceRole target, Message seqMessage, boolean isReplyMessage) { // create Capella SequenceMessage SequenceMessage sequenceMessage = InteractionFactory.eINSTANCE.createSequenceMessage(); sequenceMessage.setName(seqMessage.getName()); sequenceMessage.setKind(getSequenceMessageKind(seqMessage, isReplyMessage)); - // sending end - MessageEnd sendingEnd = InteractionFactory.eINSTANCE.createMessageEnd(); - sendingEnd.getCoveredInstanceRoles().add(source); - sequenceMessage.setSendingEnd(sendingEnd); - scenario.getOwnedInteractionFragments().add(sendingEnd); + // in case of found message, source is null + MessageEnd sendingEnd = null; + if (source != null) { + // sending end + sendingEnd = InteractionFactory.eINSTANCE.createMessageEnd(); + sendingEnd.getCoveredInstanceRoles().add(source); + sequenceMessage.setSendingEnd(sendingEnd); + scenario.getOwnedInteractionFragments().add(sendingEnd); + } - // receiving end - MessageEnd receivingEnd = InteractionFactory.eINSTANCE.createMessageEnd(); - receivingEnd.getCoveredInstanceRoles().add(target); - sequenceMessage.setReceivingEnd(receivingEnd); - scenario.getOwnedInteractionFragments().add(receivingEnd); + // in case of lost message, target is null + MessageEnd receivingEnd = null; + if (target != null) { + // receiving end + receivingEnd = InteractionFactory.eINSTANCE.createMessageEnd(); + receivingEnd.getCoveredInstanceRoles().add(target); + sequenceMessage.setReceivingEnd(receivingEnd); + scenario.getOwnedInteractionFragments().add(receivingEnd); + } // execution end - CREATE and DELETE messages don't have an execution - if (!isReplyMessage && - (seqMessage instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessage || - seqMessage instanceof ArmTimerMessage)) { + if (!isReplyMessage + && (seqMessage instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessage + || seqMessage instanceof ArmTimerMessage)) { ExecutionEnd executionEnd = InteractionFactory.eINSTANCE.createExecutionEnd(); if (!hasReturn(seqMessage)) { // do not add this execution end to the interaction fragments list, as we will add the sending end of the reply // message scenario.getOwnedInteractionFragments().add(executionEnd); } - executionEnd.getCoveredInstanceRoles().add(receivingEnd.getCoveredInstanceRoles().get(0)); + if(receivingEnd != null) + executionEnd.getCoveredInstanceRoles().add(receivingEnd.getCoveredInstanceRoles().get(0)); // execution Execution execution = InteractionFactory.eINSTANCE.createExecution(); execution.setFinish(executionEnd); - execution.setStart(receivingEnd); + if(receivingEnd != null) { + execution.setStart(receivingEnd); + } scenario.getOwnedTimeLapses().add(execution); // execution event @@ -1673,21 +1852,29 @@ private static SequenceMessage createCapellaSequenceMessage(Scenario scenario, I // EventSentOperation EventSentOperation eventSentOperation = InteractionFactory.eINSTANCE.createEventSentOperation(); scenario.getOwnedEvents().add(eventSentOperation); - sendingEnd.setEvent(eventSentOperation); + if(sendingEnd != null) { + sendingEnd.setEvent(eventSentOperation); + } // EventReceiptOperation EventReceiptOperation eventRecvOperation = InteractionFactory.eINSTANCE.createEventReceiptOperation(); scenario.getOwnedEvents().add(eventRecvOperation); - receivingEnd.setEvent(eventRecvOperation); + + if(receivingEnd != null) { + receivingEnd.setEvent(eventRecvOperation); + } // get operation by name from the list of available exchanges - List exchanges = null; + List exchanges; + String sourceName = source != null ? source.getName() : null; + String targetName = target != null ? target.getName() : null; if (isReplyMessage) { - exchanges = EmbeddedEditorInstanceHelper.getExchangeMessages(target.getName(), source.getName()); + exchanges = EmbeddedEditorInstanceHelper.getExchangeMessages(targetName, sourceName); } else { - exchanges = EmbeddedEditorInstanceHelper.getExchangeMessages(source.getName(), target.getName()); + exchanges = EmbeddedEditorInstanceHelper.getExchangeMessages(sourceName, targetName); } - + //todo_gec + if (EmbeddedEditorInstanceHelper.isInterfaceScenario()) { exchanges = exchanges.stream() .filter(ex -> ((ExchangeItemAllocation) ex).getAllocatedItem().getName().equals(seqMessage.getName())) @@ -1716,36 +1903,40 @@ private static SequenceMessage createCapellaSequenceMessage(Scenario scenario, I private static MessageKind getSequenceMessageKind(Message seqMessage, boolean isReplyMessage) { if (seqMessage instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessage) { return isReplyMessage ? MessageKind.REPLY - : ((org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessage) seqMessage).getReturn() != null ? - MessageKind.SYNCHRONOUS_CALL : MessageKind.ASYNCHRONOUS_CALL; + : ((org.polarsys.capella.scenario.editor.dsl.textualScenario.SequenceMessage) seqMessage).getReturn() != null + ? MessageKind.SYNCHRONOUS_CALL + : MessageKind.ASYNCHRONOUS_CALL; } if (seqMessage instanceof CreateMessage) { return MessageKind.CREATE; - } + } if (seqMessage instanceof DeleteMessage) { return MessageKind.DELETE; } if (seqMessage instanceof ArmTimerMessage) { return MessageKind.TIMER; } + if(seqMessage instanceof LostFoundMessage) { + return MessageKind.ASYNCHRONOUS_CALL; + } return MessageKind.UNSET; } /** - * Move the interaction fragment representing the execution end to the correct position in the interaction - * fragments list, according to the xtext scenario + * Move the interaction fragment representing the execution end to the correct position in the interaction fragments + * list, according to the xtext scenario * * @param fragments - * The new list of ordered interaction fragments that will be used to update the Capella diagram - * according to the xtext scenario + * The new list of ordered interaction fragments that will be used to update the Capella diagram according to + * the xtext scenario * @param instanceRole * Timeline in the deactivation message * @param executionEndsToProcess - * List of execution ends that have to be processed (moved on the correct order in the list of - * interaction fragments. + * List of execution ends that have to be processed (moved on the correct order in the list of interaction + * fragments. * @param sequenceMessages - * The new list of Capella sequence messages that will be used to update the Capella diagram - * according to the xtext scenario + * The new list of Capella sequence messages that will be used to update the Capella diagram according to the + * xtext scenario */ private static void doDeactivationSequenceMessageForReorder(List fragments, InstanceRole instanceRole, List executionEndsToProcess, @@ -1783,8 +1974,8 @@ private static void doDeactivationSequenceMessageForReorder(List processedCapellaMessages, ArrayList processedCapellaCombinedFragments, + ArrayList previousStateFragments, ArrayList previousReferences) { // generate CombinedFragment, FramentEnd, FragmentEnd, IntreationOperands from xtext combined fragment FragmentEnd start = InteractionFactory.eINSTANCE.createFragmentEnd(); @@ -1830,17 +2025,20 @@ private static void createCapellaCombinedFragmentBlock(Scenario scenario, else ScenarioExt.moveEndOnBeginingOfScenario(start); - CombinedFragment combinedFragment = createCombinedFragment(start, finish, InteractionOperatorKind.getByName(xtextCombinedFragment.getKeyword().toUpperCase())); + CombinedFragment combinedFragment = createCombinedFragment(start, finish, + InteractionOperatorKind.getByName(xtextCombinedFragment.getKeyword().toUpperCase())); scenario.getOwnedTimeLapses().add(combinedFragment); + processedCapellaCombinedFragments.add(combinedFragment); Block firstBlock = xtextCombinedFragment.getBlock(); if (firstBlock != null) { - InteractionOperand operand = createInteractionOperand(start.getCoveredInstanceRoles(), xtextCombinedFragment.getExpression()); + InteractionOperand operand = createInteractionOperand(start.getCoveredInstanceRoles(), + xtextCombinedFragment.getExpression()); combinedFragment.getReferencedOperands().add(operand); scenario.getOwnedInteractionFragments().add(operand); ScenarioExt.moveEndOnScenario(operand, start); - editElements(scenario, firstBlock.getBlockElements()); + editElements(scenario, firstBlock.getBlockElements(), processedCapellaMessages, processedCapellaCombinedFragments, previousStateFragments, previousReferences); InteractionOperand prevEnd = operand; for (Operand operandBlock : xtextCombinedFragment.getOperands()) { @@ -1851,7 +2049,7 @@ private static void createCapellaCombinedFragmentBlock(Scenario scenario, ScenarioExt.moveEndOnScenario(operand2, prevEnd); prevEnd = operand2; - editElements(scenario, operandBlock.getBlock().getBlockElements()); + editElements(scenario, operandBlock.getBlock().getBlockElements(), processedCapellaMessages, processedCapellaCombinedFragments, previousStateFragments, previousReferences); } } } @@ -1865,22 +2063,25 @@ private static void createCapellaCombinedFragmentBlock(Scenario scenario, * The expression for the operand * @return the newly created interaction operand */ - private static InteractionOperand createInteractionOperand(EList coveredInstanceRoles, String condition) { + private static InteractionOperand createInteractionOperand(EList coveredInstanceRoles, + String condition) { InteractionOperand operand = InteractionFactory.eINSTANCE.createInteractionOperand(); operand.setName("operand"); operand.getCoveredInstanceRoles().addAll(coveredInstanceRoles); - Constraint constraint = CapellacoreFactory.eINSTANCE.createConstraint(); - OpaqueExpression expression = DatavalueFactory.eINSTANCE.createOpaqueExpression(); + if (condition != null) { + Constraint constraint = CapellacoreFactory.eINSTANCE.createConstraint(); + OpaqueExpression expression = DatavalueFactory.eINSTANCE.createOpaqueExpression(); - constraint.setOwnedSpecification(expression); - operand.getOwnedConstraints().add(constraint); - CreationHelper.performContributionCommands(constraint, operand); + constraint.setOwnedSpecification(expression); + operand.getOwnedConstraints().add(constraint); + CreationHelper.performContributionCommands(constraint, operand); - expression.getLanguages().add(ConstraintExt.OPAQUE_EXPRESSION_LINKED_TEXT); - expression.getBodies().add(condition); + expression.getLanguages().add(ConstraintExt.OPAQUE_EXPRESSION_LINKED_TEXT); + expression.getBodies().add(condition); - operand.setGuard(constraint); + operand.setGuard(constraint); + } return operand; } @@ -1905,6 +2106,236 @@ private static CombinedFragment createCombinedFragment(InteractionFragment start return combinedFragment; } + + /** + * Create/update a reference using the information in the xtext scenario + * + * @param scenario + * The scenario diagram + * @param xtextElement + * The element representing the reference in the xtext scenario + * @param previousEditorReference + * The list of previously occurring references + */ + private static void editReference(Scenario scenario, org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference xtextElement, + List previousEditorReference) { + + List instanceRoles = new ArrayList<>(); + for (String timeline : xtextElement.getTimelines()) { + instanceRoles.add(EmbeddedEditorInstanceHelper.getInstanceRole(timeline)); + } + + List simillarReferences = previousEditorReference.stream() + .filter(x -> ((Reference) x).getName().equals(xtextElement.getName()) + && haveSameTimelines((Reference) x, xtextElement)) + .collect(Collectors.toList()); + + // get capella references (timelapse) with the same attributes as xtext reference + List capellaReferences = scenario.getOwnedTimeLapses().stream() + .filter(x -> x instanceof InteractionUse && isSameReference(xtextElement, x)).collect(Collectors.toList()); + + if (capellaReferences.isEmpty() || capellaReferences.size() < simillarReferences.size()) { + createCapellaReference(scenario, instanceRoles, xtextElement); + } + } + + + /* + * Check if two references have the same timelines + */ + private static boolean haveSameTimelines(Reference ref1, Reference ref2) { + return ref1.getTimelines().stream().collect(Collectors.toSet()) + .equals(ref2.getTimelines().stream().collect(Collectors.toSet())); + } + + + /** + * Creates a Capella reference - create fragments end and add them to owned interaction + * fragments and interaction use to owned timelapses. + * + * @param scenario + * The scenario diagram + * @param instanceRoles + * instance roles covered by reference + * @param xtextElement + * xtext reference + */ + private static void createCapellaReference(Scenario scenario, List instanceRoles, Reference xtextElement) { + FragmentEnd start = InteractionFactory.eINSTANCE.createFragmentEnd(); + FragmentEnd finish = InteractionFactory.eINSTANCE.createFragmentEnd(); + + start.getCoveredInstanceRoles().addAll(instanceRoles); + finish.getCoveredInstanceRoles().addAll(instanceRoles); + + start.setName("start"); + finish.setName("end"); + + scenario.getOwnedInteractionFragments().add(start); + scenario.getOwnedInteractionFragments().add(finish); + + InteractionUse reference = createInteractionUse(scenario, start, finish, xtextElement); + scenario.getOwnedTimeLapses().add(reference); + } + + /** + * Creates a Capella interaction use, with all its elements. + * + * @param scenario + * The scenario diagram + * @param start + * fragment end - start + * @param finish + * fragment end - finish + * @param xtextElement + * xtext reference + * @return the newly created Capella interactionUse + */ + private static InteractionUse createInteractionUse(Scenario scenario, FragmentEnd start, FragmentEnd finish, Reference xtextElement) { + InteractionUse interactionUse = InteractionFactory.eINSTANCE.createInteractionUse("interactionUse"); + interactionUse.setStart(start); + interactionUse.setFinish(finish); + Scenario referencedScenario = EmbeddedEditorInstanceHelper.getScenarioWithGivenName(xtextElement.getName()); + if (referencedScenario != null) { + interactionUse.setReferencedScenario(referencedScenario); + } + return interactionUse; + } + + + + /** + * Return the corresponding Capella reference for the given xtext element + * + * @param scenario + * The scenario diagram + * @param reference + * The element representing the reference in the xtext editor + * @param interactionFragments + * List of timelapses where we search for the reference + * @return the corresponding Capella reference or null if not found + */ + private static InteractionUse getCorrespondingCapellaReference(Scenario scenario, Reference reference, + List interactionFragments) { + List filteredTimeLapses = scenario.getOwnedTimeLapses().stream().filter(x -> x instanceof InteractionUse + && isSameReference(reference, x) && !interactionFragments.contains(((InteractionUse) x).getStart())) + .collect(Collectors.toList()); + if (!filteredTimeLapses.isEmpty()) + return (InteractionUse) filteredTimeLapses.get(0); + return null; + } + + /** + * Remove all references that are in the diagram, but not in the editor. + * + * @param scenario + * The scenario diagram + * @param xTextElements + * List of elements in the xtext editor + */ + private static void cleanUpReferences(Scenario scenario, List xTextElements) { + List allXtextReferences = xTextElements.stream() + .filter(element -> element instanceof org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference) + .collect(Collectors.toList()); + + List referencesToBeDeleted = getCapellaReferencesToBeDeleted(scenario, allXtextReferences); + + for (TimeLapse timeLapse : referencesToBeDeleted) { + removeReferenceFromScenario(scenario, timeLapse); + } + } + + /** + * Return the list of Capella references to be deleted (the ones that don't have corresponding xtext elements) + * + * @param scenario + * The scenario diagram + * @param allXtextReferences + * List of all references elements in the xtext editor + * @return the list of Capella references to be deleted + */ + private static List getCapellaReferencesToBeDeleted(Scenario scenario, List allXtextReferences) { + List capellaReferences = scenario.getOwnedTimeLapses().stream() + .filter(timelapse -> timelapse instanceof InteractionUse).collect(Collectors.toList()); + List processedXtextReferences = new ArrayList<>(); + List referencesToBeDeleted = new ArrayList<>(); + + if (allXtextReferences.isEmpty()) + return capellaReferences; + for (TimeLapse timeLapse : capellaReferences) { + if (!foundCapellaReferenceInXText(timeLapse, allXtextReferences, processedXtextReferences)) { + referencesToBeDeleted.add(timeLapse); + } + } + return referencesToBeDeleted; + } + + /** + * Remove a reference from scenario. Remove the interaction fragments. + * + * @param scenario + * The scenario diagram + * @param timeLapse + * The timelapse of the reference + */ + private static void removeReferenceFromScenario(Scenario scenario, TimeLapse timeLapse) { + InteractionUse reference = (InteractionUse) timeLapse; + + // Remove reference + scenario.getOwnedTimeLapses().remove(timeLapse); + + // Remove interaction fragments + scenario.getOwnedInteractionFragments().removeAll(Arrays.asList(reference.getStart(), reference.getFinish())); + } + + /** + * Check if a Capella reference has a correspondent in xtext scenario + * + * @param timelapse + * Timelapse of the reference + * @param allXtextReferences + * List of all references in the xtext scenario + * @param processedXtextStateFragments + * List of already processed xtext references + * @return true if a corresponding reference is found, false otherwise + */ + private static boolean foundCapellaReferenceInXText(TimeLapse timelapse, List allXtextReferences, + List processedXtextReferences) { + for (EObject reference : allXtextReferences) { + if (!processedXtextReferences.contains(reference) && isSameReference(reference, timelapse)) { + processedXtextReferences.add((org.polarsys.capella.scenario.editor.dsl.textualScenario.Reference) reference); + return true; + } + } + return false; + } + + /** + * Check if the two state fragments match + * + * @param reference + * xtext reference + * @param timelapse + * Timelapse of a Capella reference + * @return true if the two references match, false otherwise + */ + private static boolean isSameReference(EObject reference, TimeLapse timelapse) { + if (!(reference instanceof Reference)) { + return false; + } + + Reference xtextReference = (Reference) reference; + InteractionUse capellaReference = (InteractionUse) timelapse; + if (!(xtextReference.getName().equals(capellaReference.getReferencedScenario().getName()))) { + return false; + } + + Set capellaTimelines = capellaReference.getStart().getCoveredInstanceRoles().stream().map(x -> x.getName()) + .collect(Collectors.toSet()); + if (!capellaTimelines.equals(xtextReference.getTimelines().stream().collect(Collectors.toSet()))) { + return false; + } + return true; + } /** * Return the 'calling' or 'reply' branch related to the given sequence message. @@ -2008,4 +2439,19 @@ public static SequenceMessage getOppositeSequenceMessage(SequenceMessage sequenc } return null; } + + /** + * Check if the two expressions match + * + * @param operandExpression + * @param textExpression + * @return true if the two expressions are equals + */ + public static boolean isSameExpression(String operandExpression, String textExpression) { + if(operandExpression == null && textExpression == null) + return true; + if(operandExpression != null && textExpression != null) + return operandExpression.equals(textExpression); + return false; + } } \ No newline at end of file diff --git a/plugins/org.polarsys.capella.scenario.editor/src/org/polarsys/capella/scenario/editor/helper/EmbeddedEditorInstanceHelper.java b/plugins/org.polarsys.capella.scenario.editor/src/org/polarsys/capella/scenario/editor/helper/EmbeddedEditorInstanceHelper.java index 4b1aa69d..d8a2c572 100644 --- a/plugins/org.polarsys.capella.scenario.editor/src/org/polarsys/capella/scenario/editor/helper/EmbeddedEditorInstanceHelper.java +++ b/plugins/org.polarsys.capella.scenario.editor/src/org/polarsys/capella/scenario/editor/helper/EmbeddedEditorInstanceHelper.java @@ -19,9 +19,6 @@ import java.util.List; import java.util.stream.Collectors; -import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EObject; import org.eclipse.sirius.business.api.dialect.DialectManager; import org.eclipse.sirius.diagram.DDiagram; import org.eclipse.sirius.diagram.sequence.SequenceDDiagram; @@ -31,6 +28,9 @@ import org.eclipse.ui.IEditorReference; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PlatformUI; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.resource.XtextResource; import org.eclipse.xtext.ui.editor.model.XtextDocument; import org.eclipse.xtext.util.concurrent.IUnitOfWork; @@ -46,6 +46,9 @@ import org.polarsys.capella.core.data.ctx.SystemAnalysis; import org.polarsys.capella.core.data.epbs.EPBSArchitecture; import org.polarsys.capella.core.data.fa.AbstractFunction; +import org.polarsys.capella.core.data.fa.FunctionInputPort; +import org.polarsys.capella.core.data.fa.FunctionOutputPort; +import org.polarsys.capella.core.data.fa.FunctionalExchange; import org.polarsys.capella.core.data.information.AbstractEventOperation; import org.polarsys.capella.core.data.information.AbstractInstance; import org.polarsys.capella.core.data.interaction.InstanceRole; @@ -61,50 +64,46 @@ import org.polarsys.capella.core.model.helpers.OperationalAnalysisExt; import org.polarsys.capella.core.model.helpers.ScenarioExt; import org.polarsys.capella.core.sequencediag.ScenarioService; -import org.polarsys.capella.core.sirius.analysis.CsServices; import org.polarsys.capella.core.sirius.analysis.FaServices; import org.polarsys.capella.core.sirius.analysis.InteractionServices; import org.polarsys.capella.scenario.editor.EmbeddedEditorInstance; public class EmbeddedEditorInstanceHelper { - - public static final List PARTICIPANT_KEYWORDS = Arrays.asList(DslConstants.ACTOR, DslConstants.ENTITY, DslConstants.ROLE, - DslConstants.ACTIVITY, DslConstants.COMPONENT, DslConstants.CONFIGURATION_ITEM, DslConstants.FUNCTION); - + + public static final List PARTICIPANT_KEYWORDS = Arrays.asList(DslConstants.ACTOR, DslConstants.ENTITY, + DslConstants.ROLE, DslConstants.ACTIVITY, DslConstants.COMPONENT, DslConstants.CONFIGURATION_ITEM, + DslConstants.FUNCTION); + public static EList getAvailableInstanceRolesInDiagram() { Scenario currentScenario = EmbeddedEditorInstance.getAssociatedScenarioDiagram(); return currentScenario.getOwnedInstanceRoles(); } - + public static List getAvailableInstanceRoles() { List participantKeywords = EmbeddedEditorInstanceHelper.PARTICIPANT_KEYWORDS; - + List instanceRoles = new ArrayList(); for (String keyword : participantKeywords) { if (checkValidKeyword(keyword)) { List availableInstanceRoleForKeyword; if (keyword.equals(DslConstants.FUNCTION) || keyword.equals(DslConstants.ACTIVITY)) { - availableInstanceRoleForKeyword = getAvailableElements(keyword) - .stream() - .map(element -> ((AbstractFunction) element).getRepresentingInstanceRoles()) - .flatMap(Collection::stream) + availableInstanceRoleForKeyword = getAvailableElements(keyword).stream() + .map(element -> ((AbstractFunction) element).getRepresentingInstanceRoles()).flatMap(Collection::stream) .distinct().collect(Collectors.toList()); } else { - availableInstanceRoleForKeyword = getAvailableElements(keyword) - .stream() - .map(element -> ((AbstractInstance) element).getRepresentingInstanceRoles()) - .flatMap(Collection::stream).distinct() - .collect(Collectors.toList()); + availableInstanceRoleForKeyword = getAvailableElements(keyword).stream() + .map(element -> ((AbstractInstance) element).getRepresentingInstanceRoles()).flatMap(Collection::stream) + .distinct().collect(Collectors.toList()); } instanceRoles.addAll(availableInstanceRoleForKeyword); } } return instanceRoles.stream().distinct().collect(Collectors.toList()); } - + private static List getAvailableAbstractInstances() { List participantKeywords = EmbeddedEditorInstanceHelper.PARTICIPANT_KEYWORDS; - + List instances = new ArrayList<>(); for (String keyword : participantKeywords) { if (checkValidKeyword(keyword)) { @@ -114,17 +113,16 @@ private static List getAvailableAbstractInstances() { return instances.stream().distinct().collect(Collectors.toList()); } - public static String getScenarioType() { Scenario currentScenario = EmbeddedEditorInstance.getAssociatedScenarioDiagram(); return currentScenario.getKind().toString(); } - + public static boolean isInteractionScenario() { Scenario scenario = EmbeddedEditorInstance.getAssociatedScenarioDiagram(); return scenario.getKind().equals(ScenarioKind.INTERACTION); } - + public static boolean isInterfaceScenario() { Scenario scenario = EmbeddedEditorInstance.getAssociatedScenarioDiagram(); return scenario.getKind().equals(ScenarioKind.INTERFACE); @@ -134,19 +132,45 @@ public static boolean isESScenario() { Scenario scenario = EmbeddedEditorInstance.getAssociatedScenarioDiagram(); return ((scenario.getKind() == ScenarioKind.INTERACTION) || (scenario.getKind() == ScenarioKind.DATA_FLOW)); } - + public static boolean isCEScenario() { return ScenarioExt.isDataFlowBehaviouralScenario(EmbeddedEditorInstance.getAssociatedScenarioDiagram()); } - + public static boolean isFEScenario() { return ScenarioExt.isDataFlowFunctionalScenario(EmbeddedEditorInstance.getAssociatedScenarioDiagram()); } - + public static boolean isFSScenario() { return ScenarioExt.isFunctionalScenario(EmbeddedEditorInstance.getAssociatedScenarioDiagram()); } + public static AbstractFunction getSourceFunctionOfExchange(FunctionalExchange exchange) { + FunctionOutputPort source = exchange.getSourceFunctionOutputPort(); + if(source != null && source.eContainer() instanceof AbstractFunction) { + return (AbstractFunction) source.eContainer(); + } + return null; + } + + public static String getSourceFunctionNameOfExchange(FunctionalExchange exchange) { + AbstractFunction function = getSourceFunctionOfExchange(exchange); + return function != null ? function.getName() : null; + } + + public static AbstractFunction getTargetFunctionOfExchange(FunctionalExchange exchange) { + FunctionInputPort target = exchange.getTargetFunctionInputPort(); + if(target != null && target.eContainer() instanceof AbstractFunction) { + return (AbstractFunction) target.eContainer(); + } + return null; + } + + public static String getTargetFunctionNameOfExchange(FunctionalExchange exchange) { + AbstractFunction function = getTargetFunctionOfExchange(exchange); + return function != null ? function.getName() : null; + } + public static EObject getScenarioLevel() { Scenario currentScenario = EmbeddedEditorInstance.getAssociatedScenarioDiagram(); return BlockArchitectureExt.getRootBlockArchitecture(currentScenario); @@ -175,7 +199,7 @@ public static List getExchangeNames(String source, String target) { return messages; } - + /** * get the names of the available exchanges * @@ -190,7 +214,7 @@ public static List getExchangeMessages(String source, St List exchanges = getAvailableExchanges(source, target); return exchanges; } - + /** * returns the list of available exchanges possible to be inserted between source and target * @@ -204,26 +228,24 @@ public static List getExchangeMessages(String source, St public static List getAvailableExchanges(String source, String target) { InstanceRole sourceIr = getInstanceRoleFromScenario(source); InstanceRole targetIr = getInstanceRoleFromScenario(target); - if(sourceIr != null && targetIr != null) { + if (sourceIr != null && targetIr != null) { return getAllAvailableExchanges(sourceIr.getRepresentedInstance(), targetIr.getRepresentedInstance()); } - + List availableExchanges = new ArrayList(); List sourceCandidates = getAbstractInstanceCandidates(source); List targetCandidates = getAbstractInstanceCandidates(target); - if(!sourceCandidates.isEmpty() && !targetCandidates.isEmpty()) { - for(EObject sourceInst : sourceCandidates) { - for(EObject targetInst : targetCandidates) { - if(sourceInst instanceof AbstractInstance && targetInst instanceof AbstractInstance) - availableExchanges.addAll(getAllAvailableExchanges((AbstractInstance)sourceInst, (AbstractInstance)targetInst)); - } + + for (EObject sourceObj : sourceCandidates) { + for (EObject targetObj : targetCandidates) { + AbstractInstance sourceInst = sourceObj instanceof AbstractInstance ? (AbstractInstance) sourceObj : null; + AbstractInstance targetInst = targetObj instanceof AbstractInstance ? (AbstractInstance) targetObj : null; + availableExchanges.addAll(getAllAvailableExchanges(sourceInst, targetInst)); } - return availableExchanges; } - - return new ArrayList<>(); + return availableExchanges; } - + /** * returns the list of available exchanges possible to be inserted between source and target * @@ -235,50 +257,49 @@ public static List getAvailableExchanges(String source, * */ @SuppressWarnings("unchecked") - private static List getAllAvailableExchanges(EObject sourceObj, EObject targetObj) { + private static List getAllAvailableExchanges(AbstractInstance sourceInst, + AbstractInstance targetInst) { List exchangesAvailable = new ArrayList(); Scenario currentScenario = EmbeddedEditorInstance.getAssociatedScenarioDiagram(); switch (currentScenario.getKind()) { case FUNCTIONAL: - if (sourceObj instanceof AbstractFunction && targetObj instanceof AbstractFunction) { + if (sourceInst instanceof AbstractFunction && targetInst instanceof AbstractFunction) { exchangesAvailable.addAll(DataFlowHelper - .getAvailableFonctionalExchangesFromFunctions((AbstractFunction) sourceObj, (AbstractFunction) targetObj) + .getAvailableFonctionalExchangesFromFunctions((AbstractFunction) sourceInst, (AbstractFunction) targetInst) .stream().filter(x -> x instanceof AbstractEventOperation).collect(Collectors.toList())); } break; case INTERFACE: - if (sourceObj instanceof AbstractInstance && targetObj instanceof AbstractInstance) { - List exchanges = SelectInvokedOperationModelForSharedDataAndEvent - .getAvailableExchangeItems((AbstractInstance) sourceObj, (AbstractInstance) targetObj, false); - for (CapellaElement exchange : exchanges) { - if (exchange instanceof ExchangeItemAllocation) { - exchangesAvailable.add((AbstractEventOperation) exchange); - } + List exchanges = SelectInvokedOperationModelForSharedDataAndEvent + .getAvailableExchangeItems(sourceInst, targetInst, false); + for (CapellaElement exchange : exchanges) { + if (exchange instanceof ExchangeItemAllocation) { + exchangesAvailable.add((AbstractEventOperation) exchange); } } break; case DATA_FLOW: case INTERACTION: if (ScenarioExt.isFunctionalScenario(currentScenario)) { - if (sourceObj instanceof AbstractFunction && targetObj instanceof AbstractFunction) { + if (sourceInst instanceof AbstractFunction && targetInst instanceof AbstractFunction) { exchangesAvailable = DataFlowHelper - .getAvailableFonctionalExchangesFromFunctions((AbstractFunction) sourceObj, (AbstractFunction) targetObj) + .getAvailableFonctionalExchangesFromFunctions((AbstractFunction) sourceInst, + (AbstractFunction) targetInst) .stream().filter(x -> x instanceof AbstractEventOperation).collect(Collectors.toList()); } } else { - if (sourceObj instanceof AbstractInstance && - targetObj instanceof AbstractInstance) { - AbstractInstance sourceInst = (AbstractInstance) sourceObj; - AbstractInstance targetInst = (AbstractInstance) targetObj; - if (sourceInst.getAbstractType() instanceof Component && - targetInst.getAbstractType() instanceof Component) { - exchangesAvailable.addAll((List) DataFlowHelper.getAvailableComponentExchanges( - (Component) sourceInst.getAbstractType(), (Component) targetInst.getAbstractType())); - } - exchangesAvailable.addAll(DataFlowHelper.getAvailableFonctionalExchanges(sourceInst, targetInst).stream() - .filter(x -> x instanceof AbstractEventOperation).collect(Collectors.toList())); - } + Component sourceComp = sourceInst != null && sourceInst.getAbstractType() instanceof Component + ? (Component) sourceInst.getAbstractType() + : null; + Component targetComp = targetInst != null && targetInst.getAbstractType() instanceof Component + ? (Component) targetInst.getAbstractType() + : null; + exchangesAvailable.addAll( + (List) DataFlowHelper.getAvailableComponentExchanges(sourceComp, targetComp)); + exchangesAvailable.addAll(DataFlowHelper.getAvailableFonctionalExchanges(sourceInst, targetInst).stream() + .filter(x -> x instanceof AbstractEventOperation).collect(Collectors.toList())); + } break; default: @@ -287,7 +308,7 @@ private static List getAllAvailableExchanges(EObject sou return exchangesAvailable; } - + /** * returns the list of available elements as names that could be inserted * @@ -313,9 +334,10 @@ public static List getAvailablePartNames(String keyword) { * @return collection of elements * */ - public static Collection getAvailableAbstractFunctions() { - return FaServices.getFaServices().getAllAbstractFunctions( + private static Collection getAvailableAbstractFunctions() { + Collection elements = FaServices.getFaServices().getAllAbstractFunctions( BlockArchitectureExt.getRootBlockArchitecture(EmbeddedEditorInstance.getAssociatedScenarioDiagram())); + return elements; } /** @@ -375,7 +397,7 @@ private static Collection getOESScopeInsertEntitiesRoles(Scenario scena } return roots; } - + /** * returns the list of available elements that could be inserted for the given keyword (which can be actor, component, * function, entity, role, activity, configuration_item) @@ -419,7 +441,7 @@ public static InstanceRole getInstanceRole(String source) { } return instanceRole; } - + public static InstanceRole getInstanceRoleFromScenario(String source) { List instanceRoles = getAvailableInstanceRoles(); InstanceRole instanceRole = null; @@ -434,13 +456,14 @@ public static InstanceRole getInstanceRoleFromScenario(String source) { } public static List getAbstractInstanceCandidates(String name) { - List instances = getAvailableAbstractInstances() - .stream() + List instances = getAvailableAbstractInstances().stream() .filter(inst -> (inst instanceof AbstractNamedElement && ((AbstractNamedElement) inst).getName().equals(name))) .collect(Collectors.toList()); + if (instances.isEmpty()) + instances.add(null); return instances; } - + /** * helper function that validates that a keyword typed in a text scenario is valid, based on scenario type and * architecture level @@ -456,9 +479,9 @@ public static boolean checkValidKeyword(String keyword) { if (currentScenario.getKind() == ScenarioKind.INTERACTION) { if (ScenarioExt.isFunctionalScenario(currentScenario)) { return keyword.equals(DslConstants.ACTIVITY); - } + } return keyword.equals(DslConstants.ENTITY) || keyword.equals(DslConstants.ACTOR) - || keyword.equals(DslConstants.ROLE); + || keyword.equals(DslConstants.ROLE); } // IS and ES if (currentScenario.getKind() == ScenarioKind.INTERFACE || currentScenario.getKind() == ScenarioKind.DATA_FLOW) { @@ -570,18 +593,18 @@ public static List getAllocatedFunctions(InstanceRole element) return ScenarioExt.getAvailableFunctionsStateFragment(element.getRepresentedInstance()).stream() .collect(Collectors.toList()); } - + public static String getStateFragmentType(StateFragment capellaStateFragment) { if (capellaStateFragment.getRelatedAbstractFunction() != null) { return DslConstants.FUNCTION; - } + } if (capellaStateFragment.getRelatedAbstractState() != null && capellaStateFragment.getRelatedAbstractState() instanceof Mode) { return DslConstants.MODE; - } + } return DslConstants.STATE; } - + public static String getStateFragmentName(StateFragment capellaStateFragment) { if (capellaStateFragment.getRelatedAbstractFunction() != null) { return capellaStateFragment.getRelatedAbstractFunction().getName(); @@ -641,11 +664,39 @@ public static boolean isOpenedRepresentation() { List diagrams = getOpenedRepresentations(); return diagrams.contains(EmbeddedEditorInstance.getDDiagram()); } - + public static void refreshAssociatedDiagram() { DDiagram diagram = EmbeddedEditorInstance.getDDiagram(); - if(diagram != null) { + if (diagram != null) { DialectManager.INSTANCE.refresh(diagram, new NullProgressMonitor()); } } + + /* + * Get all possible scenario references names + */ + public static List getReferencedScenariosName() { + return getReferencedScenarios().stream().map(x -> ((Scenario) x).getName()).collect(Collectors.toList()); + } + + /* + * Get referenced scenario with the given name + */ + public static Scenario getScenarioWithGivenName(String name) { + List referencedScenarios = getReferencedScenarios().stream().filter(x -> ((Scenario) x).getName().equals(name)).collect(Collectors.toList()); + if (!referencedScenarios.isEmpty()) { + return (Scenario) referencedScenarios.get(0); + } + return null; + } + + /* + * Get all possible scenario references + */ + public static List getReferencedScenarios() { + ScenarioService scenarioService = new ScenarioService(); + Scenario currentScenario = EmbeddedEditorInstance.getAssociatedScenarioDiagram(); + List referenceScope = scenarioService.getReferenceScope(currentScenario); + return referenceScope; + } } diff --git a/tests/org.polarsys.capella.scenario.editor.ju/model/TextualEditor/TextualEditor.aird b/tests/org.polarsys.capella.scenario.editor.ju/model/TextualEditor/TextualEditor.aird index 9ef0d43e..1499320e 100644 --- a/tests/org.polarsys.capella.scenario.editor.ju/model/TextualEditor/TextualEditor.aird +++ b/tests/org.polarsys.capella.scenario.editor.ju/model/TextualEditor/TextualEditor.aird @@ -1,3538 +1,6002 @@ - - + + TextualEditor.afm TextualEditor.melodymodeller - + - + - - + + - - + + - + - + + + + + + + + + - + - + - + - + - + - + - + + + + + - + - + - + - + - + - + - + - + - + - + + + + + - - + + - - + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - + + + + + + - - - - - + + + + + + - - - - - + + + + + + - + - + - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + - + + + + + + + + + + + - + - - - - - - + + + + + + + + - + - + - + - - - + + + - - - - - - - - - + + + + + + + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - + + + + + + - + - - + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - + + + + + + - + - - + + - - - - - - + + + + + + + + - + - + - + - - - + + + - - - - - - - - - + + + + + + + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - + + + + + + - + - + - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - + - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - + - + - - - + + + - - - - - - - - - + + + + + + + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - + + + + + - + - - + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - + - - - - - - + + + + + + + + - + - - - - - - + + + + + + + + - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - + + + + + + + + - + - + - + - - - + + + - - - - - - - - - + + + + + + + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + + + + + + + + + + + - + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - - - - - - + + + + + + + + - + - + - + - - - + + + - - - - - - - - - + + + + + + + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - + + + + + - + - + - - - - - - + + + + + + + + - + - - - - - + + + + + + + - + - + - + - - - + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + + + + + - - - + + + + + + + + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - + + + + + - + - - + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - + + + + + - + - + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - + + + + + - + - + - - - - - - + + + + + + + + - + - - - - - - + + + + + + + + - + - - - - - - + + + + + + + + - + - + - + - - - + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + + + + + - - - + + + + + + + + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + - - - + + + + + + + + - - - + + + + + + + + + + + + + + - - - + + + + + + + + - - + + - - + + - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + - - - - - + + + + + - + - + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + - + - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + - + + + + + + + + + + - + - + - - - - - - - - + + + + + + - + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + - + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + - + - - - - - - - - + + + + + + + + + + - - - - - - - + + + + + + + + + + - + - - - - - - + + + + + + + + - + - - - - - - - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + - + - - - - - - + + + + + + + + - + - - - - - - - + + + + + + + + + + - + - - - - - - + + + + + + + + - + - - - - - + + + + + + + + + + + + + + + + + + + + + - + - + - + - - - + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - - - - - + + + - - - - - - - - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - + - - + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + - + - - - - - + + + + + - + - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - + + + + + + + + - + - - - - - - + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/tests/org.polarsys.capella.scenario.editor.ju/model/TextualEditor/TextualEditor.melodymodeller b/tests/org.polarsys.capella.scenario.editor.ju/model/TextualEditor/TextualEditor.melodymodeller index f3ad16d4..e9f7ba42 100644 --- a/tests/org.polarsys.capella.scenario.editor.ju/model/TextualEditor/TextualEditor.melodymodeller +++ b/tests/org.polarsys.capella.scenario.editor.ju/model/TextualEditor/TextualEditor.melodymodeller @@ -1,1480 +1,2268 @@ - + - + + id="12263fef-abbd-459e-92f3-9ad5d5a5a395" name="ProgressStatus"> + id="b505cfc3-e472-46d8-b630-9379aa12d897" name="DRAFT"/> + id="59a1e82c-728e-478d-bba9-e59a0af18635" name="TO_BE_REVIEWED"/> + id="0a53afe4-9ce3-436b-a25e-f97e0cabd67f" name="TO_BE_DISCUSSED"/> + id="511bf4bc-a317-4292-8dc6-627ea1e845c5" name="REWORK_NECESSARY"/> + id="64d2608d-7fe1-4888-8d21-7c3cfbed6a6b" name="UNDER_REWORK"/> + id="9bc911b9-6385-4c0c-ab1d-9124808534e7" name="REVIEWED_OK"/> - + id="0ac58134-8838-4647-97b8-b34de2f01795" name="TextualEditor"> + id="d2853b78-5c38-4aef-96d5-90e42afb4c02" name="Operational Analysis"> + id="d1aff9e8-5b62-4563-a08f-e58d72df747b" name="Operational Activities"> + id="ab0db847-4510-4b71-8e6e-5c35a5995916" name="Root Operational Activity"> + + + + + + + id="915e30ed-c5b2-4c37-9126-1f1bccab5224" name="Operational Capabilities"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id="ed84c026-4ee6-4b82-92e2-9ebf1df34e7c" name="Interfaces"/> - - - + + + + + + + + + + + + id="36a25351-001f-495c-be1c-1be8156a74fc" name="System Analysis"> + id="31dea997-5895-4cad-a0cd-cfe89195bb98" name="System Functions"> + id="6045e380-0ff9-449e-a871-0a01b305ac19" name="Root System Function"> + id="d99eaa9d-a4a7-469b-a2a8-6e7371ba6880" name="SystemFunction 1" availableInStates="#b7e42fc1-54fe-461b-91ac-d8deebc3758b #ff9e3a1a-f54f-43b7-8c66-fd30f43b809a #c7f32865-d747-474f-a8ef-d5a3407c9374"> + id="18c36b82-646a-4f4f-9e8f-b0a0e5c8eca5" name="FIP 1"/> + id="3089e6f6-bac2-4d26-ab8c-b7e0651c1593" name="FIP 2"/> - + id="84b8c583-6b96-4eb8-98f7-73aef4431a38" name="FOP 1"/> - + id="bd95b49b-7aba-4864-a184-63cdcc4ca40a" name="SystemFunction 2" availableInStates="#b7e42fc1-54fe-461b-91ac-d8deebc3758b #ff9e3a1a-f54f-43b7-8c66-fd30f43b809a #00ab7c23-a86d-489c-b67e-a72a599a9145"> + id="32b109f2-5268-4e21-af9d-4853aaf6cd53" name="FIP 1"/> + id="4384afe7-ba30-4aef-8378-8d6698fb8139" name="FOP 1"/> + id="ce9af671-6f26-45e3-9f0a-cb32465fbb51" name="FOP 2"/> - + id="2185e1da-2ece-4eab-8b32-0a085a9b5ffe" targetElement="#ab0db847-4510-4b71-8e6e-5c35a5995916" + sourceElement="#6045e380-0ff9-449e-a871-0a01b305ac19"/> + id="777ea54c-9bac-4aa7-ac55-8164d6f9ef8e" name="fe1" target="#32b109f2-5268-4e21-af9d-4853aaf6cd53" + source="#84b8c583-6b96-4eb8-98f7-73aef4431a38"/> + id="025791e9-ad20-4f2b-9f31-086b12083eaf" name="f1" target="#18c36b82-646a-4f4f-9e8f-b0a0e5c8eca5" + source="#4384afe7-ba30-4aef-8378-8d6698fb8139"/> + id="7c901901-b69c-456d-b8f5-a3dd19add4d0" name="f2" target="#3089e6f6-bac2-4d26-ab8c-b7e0651c1593" + source="#ce9af671-6f26-45e3-9f0a-cb32465fbb51"/> + id="2c767acd-19f4-45fa-92bb-89c7dd6ddcf6" name="Capabilities"> + id="3e2d0c7c-9e98-4b4c-b919-7bc34d694b4f" name="Capability 1"> + id="7b2faa6f-688c-4c5e-8836-4e989e6cff69" name="SystemFunction 1" + representedInstance="#d99eaa9d-a4a7-469b-a2a8-6e7371ba6880"/> + id="8251b025-ef96-4c0d-a212-32201049f739" name="SystemFunction 2" + representedInstance="#bd95b49b-7aba-4864-a184-63cdcc4ca40a"/> + id="631de630-b862-45b8-b9f8-5634a4e877ec" name="fe1" kind="ASYNCHRONOUS_CALL" + sendingEnd="#2dc77952-91b1-4e06-9e44-a0d2c745db90" receivingEnd="#2e9e4eaa-af9a-4a18-b987-ac08f8ae6ded"/> + id="61b013f1-182a-42aa-97a7-6c3a1ef477c7" coveredInstanceRoles="#7b2faa6f-688c-4c5e-8836-4e989e6cff69" + relatedAbstractState="#b7e42fc1-54fe-461b-91ac-d8deebc3758b"/> + id="c23bd80e-3706-4846-90d8-f94eb8652b66" coveredInstanceRoles="#7b2faa6f-688c-4c5e-8836-4e989e6cff69" + relatedAbstractState="#b7e42fc1-54fe-461b-91ac-d8deebc3758b"/> + id="2dc77952-91b1-4e06-9e44-a0d2c745db90" name="Send Call Message Call" + coveredInstanceRoles="#7b2faa6f-688c-4c5e-8836-4e989e6cff69" event="#441074a5-d1a5-497d-8a7d-8478dc515f71"/> + id="2e9e4eaa-af9a-4a18-b987-ac08f8ae6ded" name="Receive Call Message Call" + coveredInstanceRoles="#8251b025-ef96-4c0d-a212-32201049f739" event="#d3bb7a6b-b373-4f14-98ad-8c4a32fec0d9"/> + id="4aa513a7-e5ba-437b-86f2-e8175435788d" name="endExec" coveredInstanceRoles="#8251b025-ef96-4c0d-a212-32201049f739" + event="#37cd9a9c-7ea4-4d81-b77f-f75b7787371d"/> + id="86656f81-c3fd-49a9-838f-cf5449ed8297" coveredInstanceRoles="#8251b025-ef96-4c0d-a212-32201049f739" + relatedAbstractState="#00ab7c23-a86d-489c-b67e-a72a599a9145"/> + id="d812997e-b7fe-4e46-a42d-ed67610ed1f2" coveredInstanceRoles="#8251b025-ef96-4c0d-a212-32201049f739" + relatedAbstractState="#00ab7c23-a86d-489c-b67e-a72a599a9145"/> + id="cece34ab-7749-4628-a0d6-7520ac625500" coveredInstanceRoles="#7b2faa6f-688c-4c5e-8836-4e989e6cff69" + relatedAbstractState="#b7e42fc1-54fe-461b-91ac-d8deebc3758b"/> + id="1cc7dd51-0d00-4a64-9d90-e7be91912892" coveredInstanceRoles="#7b2faa6f-688c-4c5e-8836-4e989e6cff69" + relatedAbstractState="#b7e42fc1-54fe-461b-91ac-d8deebc3758b"/> + id="fd3403e0-26c5-4d7c-baeb-7b7e0d26049e" coveredInstanceRoles="#7b2faa6f-688c-4c5e-8836-4e989e6cff69" + relatedAbstractState="#ff9e3a1a-f54f-43b7-8c66-fd30f43b809a"/> + id="9da15131-0933-44b5-82ad-5cbcef12f108" coveredInstanceRoles="#7b2faa6f-688c-4c5e-8836-4e989e6cff69" + relatedAbstractState="#ff9e3a1a-f54f-43b7-8c66-fd30f43b809a"/> - + id="1f4a2895-0194-47d3-834a-f104ec2486df" start="#61b013f1-182a-42aa-97a7-6c3a1ef477c7" + finish="#c23bd80e-3706-4846-90d8-f94eb8652b66" relatedAbstractState="#b7e42fc1-54fe-461b-91ac-d8deebc3758b"/> + id="a86e1434-fb1d-4881-a203-342965a50706" start="#86656f81-c3fd-49a9-838f-cf5449ed8297" + finish="#d812997e-b7fe-4e46-a42d-ed67610ed1f2" relatedAbstractState="#00ab7c23-a86d-489c-b67e-a72a599a9145"/> + + id="4348bd67-51a3-40af-9dce-8f9fd4ce7a20" start="#cece34ab-7749-4628-a0d6-7520ac625500" + finish="#1cc7dd51-0d00-4a64-9d90-e7be91912892" relatedAbstractState="#b7e42fc1-54fe-461b-91ac-d8deebc3758b"/> + id="2715dac8-fe11-47be-90f2-a67b8f21ee3d" start="#fd3403e0-26c5-4d7c-baeb-7b7e0d26049e" + finish="#9da15131-0933-44b5-82ad-5cbcef12f108" relatedAbstractState="#ff9e3a1a-f54f-43b7-8c66-fd30f43b809a"/> + id="441074a5-d1a5-497d-8a7d-8478dc515f71" operation="#777ea54c-9bac-4aa7-ac55-8164d6f9ef8e"/> + id="d3bb7a6b-b373-4f14-98ad-8c4a32fec0d9" operation="#777ea54c-9bac-4aa7-ac55-8164d6f9ef8e"/> + id="37cd9a9c-7ea4-4d81-b77f-f75b7787371d"/> + id="47a8a306-039e-4a0b-9058-6692d36d5b3e" name="System" representedInstance="#91cf2a19-1e34-4e5f-9996-b8d4660d9e73"/> + id="5dbaaf21-b9fe-4041-b656-fe2f2cc09b06" name="SA 2" representedInstance="#35c0abb1-b1e7-4cf5-880c-dc9d2e83aba5"/> + id="b2090cb7-08d0-4eb5-9445-55aa2f05b8cf" name="SA 3" representedInstance="#579b3b78-af03-4da1-af2b-6194acfc3071"/> + id="d24bf7cb-9aac-41a0-a406-2167d5e744ae" name="fe1" kind="ASYNCHRONOUS_CALL" + sendingEnd="#dc49d63f-c48b-41a2-ba93-535bedd49b8f" receivingEnd="#0aba6c3f-3bf7-41a3-9e27-2e3696653cc3"/> + id="dc49d63f-c48b-41a2-ba93-535bedd49b8f" name="Send Call Message Call" + coveredInstanceRoles="#5dbaaf21-b9fe-4041-b656-fe2f2cc09b06" event="#43a5be0f-ea6d-4be2-8518-35cdb8eb0ea0"/> + id="0aba6c3f-3bf7-41a3-9e27-2e3696653cc3" name="Receive Call Message Call" + coveredInstanceRoles="#b2090cb7-08d0-4eb5-9445-55aa2f05b8cf" event="#c6a953f0-8c90-47b7-9df4-1db08e40998e"/> + id="1a90ba0b-e48d-44a1-bba5-473462d926a2" name="endExec" coveredInstanceRoles="#b2090cb7-08d0-4eb5-9445-55aa2f05b8cf" + event="#b6084d80-8577-4875-8268-bdddacf1ec73"/> + id="e3a98d08-8d4e-4d4a-8ae3-c7941995818b" name="SystemFunction 2" + coveredInstanceRoles="#b2090cb7-08d0-4eb5-9445-55aa2f05b8cf" relatedAbstractFunction="#bd95b49b-7aba-4864-a184-63cdcc4ca40a"/> + id="594d6e7d-0155-46e6-a709-d792cf0eca2e" name="SystemFunction 2" + coveredInstanceRoles="#b2090cb7-08d0-4eb5-9445-55aa2f05b8cf" relatedAbstractFunction="#bd95b49b-7aba-4864-a184-63cdcc4ca40a"/> + id="85522681-ca62-4408-b68b-03525b373072" name="SystemFunction 1" + coveredInstanceRoles="#5dbaaf21-b9fe-4041-b656-fe2f2cc09b06" relatedAbstractFunction="#d99eaa9d-a4a7-469b-a2a8-6e7371ba6880"/> + id="308e7521-9811-43e6-8889-b21c300ddd18" name="SystemFunction 1" + coveredInstanceRoles="#5dbaaf21-b9fe-4041-b656-fe2f2cc09b06" relatedAbstractFunction="#d99eaa9d-a4a7-469b-a2a8-6e7371ba6880"/> + id="abe027d1-ac1d-4ba5-8dcf-04f8ecb8899b" start="#0aba6c3f-3bf7-41a3-9e27-2e3696653cc3" + finish="#1a90ba0b-e48d-44a1-bba5-473462d926a2"/> + id="21f5359c-c75c-484d-980a-0108c0111dd3" start="#e3a98d08-8d4e-4d4a-8ae3-c7941995818b" + finish="#594d6e7d-0155-46e6-a709-d792cf0eca2e" relatedAbstractFunction="#bd95b49b-7aba-4864-a184-63cdcc4ca40a"/> + id="7de01c59-b479-4287-b3c0-64e78163862d" start="#85522681-ca62-4408-b68b-03525b373072" + finish="#308e7521-9811-43e6-8889-b21c300ddd18" relatedAbstractFunction="#d99eaa9d-a4a7-469b-a2a8-6e7371ba6880"/> + id="43a5be0f-ea6d-4be2-8518-35cdb8eb0ea0" operation="#777ea54c-9bac-4aa7-ac55-8164d6f9ef8e"/> + id="c6a953f0-8c90-47b7-9df4-1db08e40998e" operation="#777ea54c-9bac-4aa7-ac55-8164d6f9ef8e"/> + id="b6084d80-8577-4875-8268-bdddacf1ec73"/> + id="19718299-102d-42fd-8f13-03369e2ae0ca" name="SystemFunction 2" + representedInstance="#bd95b49b-7aba-4864-a184-63cdcc4ca40a"/> + id="afc1f435-bc78-4850-8871-572ea4db9066" name="SystemFunction 1" + representedInstance="#d99eaa9d-a4a7-469b-a2a8-6e7371ba6880"/> + id="07c20c00-95d8-47f2-a6da-14718a543a23" name="f1" kind="ASYNCHRONOUS_CALL" + sendingEnd="#2cf94406-9d77-47e6-8e8e-142d5c05f81a" receivingEnd="#b9a2c967-fc76-4130-9caa-5c35ff41e758"/> + id="e4c7269f-77d7-4e73-8ca6-3502c3af4335" name="f2" kind="ASYNCHRONOUS_CALL" + sendingEnd="#09174cde-d610-4332-8e28-7c03ba938927" receivingEnd="#4ae33652-b0de-40ab-af99-b6ecd348a000"/> + id="fb474746-4272-40d1-937e-1ae0af1c0532" name="fe1" kind="ASYNCHRONOUS_CALL" + sendingEnd="#c1061db2-8012-4b09-a73d-e7c76b5b95e6" receivingEnd="#5f29a077-2bf0-42f3-a72a-84de67ad53d2"/> + id="2cf94406-9d77-47e6-8e8e-142d5c05f81a" name="Send Call Message Call" + coveredInstanceRoles="#19718299-102d-42fd-8f13-03369e2ae0ca" event="#49207ef3-ecc1-44e5-bd67-4dda69d24d32"/> + id="b9a2c967-fc76-4130-9caa-5c35ff41e758" name="Receive Call Message Call" + coveredInstanceRoles="#afc1f435-bc78-4850-8871-572ea4db9066" event="#44489f49-0010-46c1-8825-9e70bb4c75f6"/> + id="9a72ed36-345f-4e2a-8bd0-bc5921122f50" name="endExec" coveredInstanceRoles="#afc1f435-bc78-4850-8871-572ea4db9066" + event="#aa4436a0-753f-4e2c-a26e-c02a0eb449e2"/> + id="a7df7c72-7712-472c-a5ba-48b3b531441c" name="start" coveredInstanceRoles="#19718299-102d-42fd-8f13-03369e2ae0ca #afc1f435-bc78-4850-8871-572ea4db9066"/> + id="3fc03407-ae0e-4190-85fe-06b95306dd30" name="operand" coveredInstanceRoles="#19718299-102d-42fd-8f13-03369e2ae0ca #afc1f435-bc78-4850-8871-572ea4db9066" + guard="#c1e74fca-71a1-463f-bf30-c10abc81eb3c"> + id="c1e74fca-71a1-463f-bf30-c10abc81eb3c"> + id="87e09d07-daa4-451a-8a9a-92959efeda44"> 123 capella:linkedText + id="09174cde-d610-4332-8e28-7c03ba938927" name="Send Call Message Call" + coveredInstanceRoles="#19718299-102d-42fd-8f13-03369e2ae0ca" event="#35e1b041-3b34-4ab4-87a1-2d853deb0e24"/> + id="4ae33652-b0de-40ab-af99-b6ecd348a000" name="Receive Call Message Call" + coveredInstanceRoles="#afc1f435-bc78-4850-8871-572ea4db9066" event="#5f58e3e2-24d8-464e-bf7b-b3f35783eae4"/> + id="05e53650-62d8-4b8c-b766-87947d73be60" name="endExec" coveredInstanceRoles="#afc1f435-bc78-4850-8871-572ea4db9066" + event="#b3df7afb-1806-4047-9543-bfffd53f03bc"/> + id="8b0f1f2d-5442-4a3c-b14b-b861b75cb8ce" name="operand" coveredInstanceRoles="#19718299-102d-42fd-8f13-03369e2ae0ca #afc1f435-bc78-4850-8871-572ea4db9066" + guard="#4229fac0-d3b5-4c3b-ba9b-52db8ecd200c"> + id="4229fac0-d3b5-4c3b-ba9b-52db8ecd200c"> + id="507fb2de-1aee-4213-a9a9-ce08560b1cce"> 456 capella:linkedText + id="c1061db2-8012-4b09-a73d-e7c76b5b95e6" name="Send Call Message Call" + coveredInstanceRoles="#afc1f435-bc78-4850-8871-572ea4db9066" event="#3a6c6283-5296-4230-8b64-6a7934b5320c"/> + id="5f29a077-2bf0-42f3-a72a-84de67ad53d2" name="Receive Call Message Call" + coveredInstanceRoles="#19718299-102d-42fd-8f13-03369e2ae0ca" event="#4bf666cc-fd34-42da-974c-f05792c97f2f"/> + id="80e33226-f592-489a-9754-19ae2d3ae154" name="endExec" coveredInstanceRoles="#19718299-102d-42fd-8f13-03369e2ae0ca" + event="#339140ea-431c-4b95-baa7-b1df6b73973a"/> + id="84a6c948-5d15-4a48-b083-a9703ef05c6e" name="end" coveredInstanceRoles="#19718299-102d-42fd-8f13-03369e2ae0ca #afc1f435-bc78-4850-8871-572ea4db9066"/> - + id="9368fe60-ad0a-4ec0-9bfc-194458f8a0fa" start="#b9a2c967-fc76-4130-9caa-5c35ff41e758" + finish="#9a72ed36-345f-4e2a-8bd0-bc5921122f50"/> + id="78aae353-6ae5-4676-9c89-1a6ab47b2ae8" start="#4ae33652-b0de-40ab-af99-b6ecd348a000" + finish="#05e53650-62d8-4b8c-b766-87947d73be60"/> + id="83c37494-67ec-45c0-bd8e-cab54524932e" start="#5f29a077-2bf0-42f3-a72a-84de67ad53d2" + finish="#80e33226-f592-489a-9754-19ae2d3ae154"/> + + id="49207ef3-ecc1-44e5-bd67-4dda69d24d32" operation="#025791e9-ad20-4f2b-9f31-086b12083eaf"/> + id="44489f49-0010-46c1-8825-9e70bb4c75f6" operation="#025791e9-ad20-4f2b-9f31-086b12083eaf"/> + id="aa4436a0-753f-4e2c-a26e-c02a0eb449e2"/> + id="35e1b041-3b34-4ab4-87a1-2d853deb0e24" operation="#7c901901-b69c-456d-b8f5-a3dd19add4d0"/> + id="5f58e3e2-24d8-464e-bf7b-b3f35783eae4" operation="#7c901901-b69c-456d-b8f5-a3dd19add4d0"/> + id="b3df7afb-1806-4047-9543-bfffd53f03bc"/> + id="3a6c6283-5296-4230-8b64-6a7934b5320c" operation="#777ea54c-9bac-4aa7-ac55-8164d6f9ef8e"/> + id="4bf666cc-fd34-42da-974c-f05792c97f2f" operation="#777ea54c-9bac-4aa7-ac55-8164d6f9ef8e"/> + id="339140ea-431c-4b95-baa7-b1df6b73973a"/> + id="191456a8-5130-45f2-a1b9-f3c1cae81021" name="System" representedInstance="#91cf2a19-1e34-4e5f-9996-b8d4660d9e73"/> + id="7048586b-b6cd-46b1-850f-27d81cdebd36" name="SA 3" representedInstance="#579b3b78-af03-4da1-af2b-6194acfc3071"/> + id="61034f7e-3a8a-4852-9c03-4de3a0937ca1" name="SA 2" representedInstance="#35c0abb1-b1e7-4cf5-880c-dc9d2e83aba5"/> + id="29c9a4bb-ce94-4bbd-9994-c342f3343943" name="c1" kind="ASYNCHRONOUS_CALL" + sendingEnd="#35304f05-ae3b-464c-a215-b06aab9e968e" receivingEnd="#42247436-088c-4fa7-afab-7b0d693f7c1d"/> + id="02ea02e4-3cd1-4cd3-ae39-9eb89807b09c" name="c2" kind="ASYNCHRONOUS_CALL" + sendingEnd="#f17e1f70-5d24-4eec-bd42-abb4e5b2b680" receivingEnd="#bc851763-7430-456b-8a53-52fe57fa9818"/> + id="929ca069-92ec-4353-9695-295b6fe5e551" name="cr2" kind="SYNCHRONOUS_CALL" + sendingEnd="#65a3eda8-26ec-4aa9-afe1-cd4bf87f3d98" receivingEnd="#eadde782-9d1d-454a-81ca-86c663e018dd"/> + id="561f1d20-6017-4168-ae7b-f34e2f0e288d" name="cr2" kind="REPLY" + sendingEnd="#dab79774-4a31-4c16-804c-b782468c85fe" receivingEnd="#ff816d70-4e1c-4569-bcca-6fccde5a3475"/> + id="703cf09e-4a26-4bf3-80ba-2081a32c1c51" name="c3" kind="ASYNCHRONOUS_CALL" + sendingEnd="#b9181dd9-e035-41c7-a4fb-1549b2e7db1f" receivingEnd="#b8d4deaf-f481-47b4-8a4f-2c4de78fa860"/> + id="d4aba8a1-0d24-4f1c-99b3-93e2e323e398" name="start" coveredInstanceRoles="#7048586b-b6cd-46b1-850f-27d81cdebd36 #61034f7e-3a8a-4852-9c03-4de3a0937ca1"/> + id="93d733dc-47d3-483b-9d30-92aaa32fdd46" name="operand" coveredInstanceRoles="#7048586b-b6cd-46b1-850f-27d81cdebd36 #61034f7e-3a8a-4852-9c03-4de3a0937ca1" + guard="#66bbce5f-def8-43a3-b27c-02aeaca9fa68"> + + + 123 + capella:linkedText + + + + id="35304f05-ae3b-464c-a215-b06aab9e968e" name="Send Call Message Call" + coveredInstanceRoles="#7048586b-b6cd-46b1-850f-27d81cdebd36" event="#98d33cf2-daac-49a8-9521-be958336fe53"/> + id="42247436-088c-4fa7-afab-7b0d693f7c1d" name="Receive Call Message Call" + coveredInstanceRoles="#61034f7e-3a8a-4852-9c03-4de3a0937ca1" event="#43749a1b-57bc-4641-8592-7d84901e4924"/> + id="e233b747-4dfc-46df-9ed8-ced27de01cee" name="endExec" coveredInstanceRoles="#61034f7e-3a8a-4852-9c03-4de3a0937ca1" + event="#142f0452-dcd5-42de-b627-b52b9835c09c"/> + id="1c0845f5-1064-4f45-a285-249b4628422c" name="operand" coveredInstanceRoles="#7048586b-b6cd-46b1-850f-27d81cdebd36 #61034f7e-3a8a-4852-9c03-4de3a0937ca1" + guard="#07e812a9-5c43-45ad-bb8a-a22efd6d9323"> + + + 456 + capella:linkedText + + + + id="f17e1f70-5d24-4eec-bd42-abb4e5b2b680" name="Send Call Message Call" + coveredInstanceRoles="#7048586b-b6cd-46b1-850f-27d81cdebd36" event="#67825dd6-9f53-436a-a859-8d3de1421b4d"/> + id="bc851763-7430-456b-8a53-52fe57fa9818" name="Receive Call Message Call" + coveredInstanceRoles="#61034f7e-3a8a-4852-9c03-4de3a0937ca1" event="#46ac2004-8a90-4be3-b712-c28a5373f84a"/> + id="102e059a-ab65-47bb-8b1f-d61ed39a3511" name="endExec" coveredInstanceRoles="#61034f7e-3a8a-4852-9c03-4de3a0937ca1" + event="#3deb12b3-bb65-4ae5-bd1e-0b6f5f064836"/> + id="65a3eda8-26ec-4aa9-afe1-cd4bf87f3d98" name="Send Call " coveredInstanceRoles="#61034f7e-3a8a-4852-9c03-4de3a0937ca1" + event="#f864862a-dc93-46ba-bd81-945c03e4e5d0"/> + id="eadde782-9d1d-454a-81ca-86c663e018dd" name="Receive Call " coveredInstanceRoles="#7048586b-b6cd-46b1-850f-27d81cdebd36" + event="#378ecec3-2280-44b0-9dc3-06634548b929"/> + id="dab79774-4a31-4c16-804c-b782468c85fe" name="Send Call " coveredInstanceRoles="#7048586b-b6cd-46b1-850f-27d81cdebd36" + event="#c897dd3c-8c6d-470d-98fc-fc6f4ef03d48"/> + id="ff816d70-4e1c-4569-bcca-6fccde5a3475" name="Receive Call " coveredInstanceRoles="#61034f7e-3a8a-4852-9c03-4de3a0937ca1" + event="#315723d8-c96c-4d3c-a3b2-de9c477129ea"/> + id="84f3e396-da91-48a9-9c10-e5efa988abea" name="end" coveredInstanceRoles="#7048586b-b6cd-46b1-850f-27d81cdebd36 #61034f7e-3a8a-4852-9c03-4de3a0937ca1"/> + id="88683691-2198-4f09-bf80-db3207c16a06" name="start" coveredInstanceRoles="#7048586b-b6cd-46b1-850f-27d81cdebd36 #61034f7e-3a8a-4852-9c03-4de3a0937ca1"/> + id="3bc29cd4-9d87-4ee2-ac36-8e8e34a7f1b4" name="operand 1" coveredInstanceRoles="#7048586b-b6cd-46b1-850f-27d81cdebd36 #61034f7e-3a8a-4852-9c03-4de3a0937ca1" + guard="#dd844daf-3b3f-4e11-907f-a86ac71cbd56"> + id="dd844daf-3b3f-4e11-907f-a86ac71cbd56" name=""> + id="9f3b3624-c3a3-4cf4-a494-358c9f1793de"> 123 capella:linkedText + id="b9181dd9-e035-41c7-a4fb-1549b2e7db1f" name="Send Call Message Call" + coveredInstanceRoles="#7048586b-b6cd-46b1-850f-27d81cdebd36" event="#99349cd2-b341-484d-904a-189742d26893"/> + id="b8d4deaf-f481-47b4-8a4f-2c4de78fa860" name="Receive Call Message Call" + coveredInstanceRoles="#61034f7e-3a8a-4852-9c03-4de3a0937ca1" event="#6910e4eb-318e-4dca-915d-e10bded748d9"/> + id="dbb19e9f-deb0-44eb-b228-36c167679670" name="endExec" coveredInstanceRoles="#61034f7e-3a8a-4852-9c03-4de3a0937ca1" + event="#7080bca1-c0d7-436b-ba4c-f0a9227be317"/> - + id="e16a3d62-8a94-4ece-8b5f-443e52e74768" name="end" coveredInstanceRoles="#7048586b-b6cd-46b1-850f-27d81cdebd36 #61034f7e-3a8a-4852-9c03-4de3a0937ca1"/> + id="dec3ab1a-94e7-445f-a956-428e41b99374" start="#42247436-088c-4fa7-afab-7b0d693f7c1d" + finish="#e233b747-4dfc-46df-9ed8-ced27de01cee"/> + id="2e9b53f1-ffa2-464c-858b-3b95ec956715" start="#eadde782-9d1d-454a-81ca-86c663e018dd" + finish="#dab79774-4a31-4c16-804c-b782468c85fe"/> + id="33d4360e-b345-4d83-ae9b-755cfce24231" start="#bc851763-7430-456b-8a53-52fe57fa9818" + finish="#102e059a-ab65-47bb-8b1f-d61ed39a3511"/> + + id="6a1fcdc7-de1a-4d26-93fe-6c21c80e3fc6" name="combined fragment" + start="#88683691-2198-4f09-bf80-db3207c16a06" finish="#e16a3d62-8a94-4ece-8b5f-443e52e74768" + operator="OPT" referencedOperands="#3bc29cd4-9d87-4ee2-ac36-8e8e34a7f1b4"/> + id="822237ba-d100-4f6c-841d-cc45ed856d94" start="#b8d4deaf-f481-47b4-8a4f-2c4de78fa860" + finish="#dbb19e9f-deb0-44eb-b228-36c167679670"/> + id="98d33cf2-daac-49a8-9521-be958336fe53" operation="#4c547a37-64a1-4e01-b2f7-3b6f20651bfb"/> + id="43749a1b-57bc-4641-8592-7d84901e4924" operation="#4c547a37-64a1-4e01-b2f7-3b6f20651bfb"/> + id="142f0452-dcd5-42de-b627-b52b9835c09c"/> + + + + + id="67825dd6-9f53-436a-a859-8d3de1421b4d" operation="#d73d24a0-786f-48e3-bf56-86c213ee5c93"/> + id="46ac2004-8a90-4be3-b712-c28a5373f84a" operation="#d73d24a0-786f-48e3-bf56-86c213ee5c93"/> + id="3deb12b3-bb65-4ae5-bd1e-0b6f5f064836"/> + id="99349cd2-b341-484d-904a-189742d26893" operation="#d965ba40-66b0-470d-909c-029aacd12ca0"/> + id="6910e4eb-318e-4dca-915d-e10bded748d9" operation="#d965ba40-66b0-470d-909c-029aacd12ca0"/> + + + + + + + + + + + + id="31604b5c-8183-4516-a37a-5be923ed05aa" name="sndOp_ExchangeItemAllocation 1_ASYNCHRONOUS_CALL" + operation="#d5f0164e-88d6-4500-a0f8-08ddfda4f938"/> + id="368977ac-b081-4aa3-84f8-5e979a854fc0" name="rcvOp_m1_ASYNCHRONOUS_CALL" + operation="#d5f0164e-88d6-4500-a0f8-08ddfda4f938"/> + + + + + + + + + + + + + + + + + + id="2bdc42b9-b9c7-4815-8f36-0a7e2c0273f5"/> + id="23518705-5226-4e46-86b5-12eea80550a7"/> + id="a88efd5c-c471-446b-97ef-eaa24f93ab28"/> + + + + + id="caae1009-de68-48a5-b8fd-76dba35dd304" name="System" representedInstance="#91cf2a19-1e34-4e5f-9996-b8d4660d9e73"/> + id="26d0ae50-9dc4-4db8-b625-c6e91fbe2f1f" name="SA 2" representedInstance="#35c0abb1-b1e7-4cf5-880c-dc9d2e83aba5"/> + id="54a1d589-19d8-4e1e-b262-d20526c575b0" name="SA 3" representedInstance="#579b3b78-af03-4da1-af2b-6194acfc3071"/> + + + id="a78b1083-c766-41b9-8748-dbb483474971" name="m100" kind="ASYNCHRONOUS_CALL" + sendingEnd="#23f0833d-a5e7-4144-afde-419c1c00fa78" receivingEnd="#c9521331-a6c4-4272-945b-e7383d5177f9"/> + + + + + + + + id="23f0833d-a5e7-4144-afde-419c1c00fa78" name="sndMsgEnd_m100_ASYNCHRONOUS_CALL" + coveredInstanceRoles="#26d0ae50-9dc4-4db8-b625-c6e91fbe2f1f" event="#04ed07c6-2b01-41b8-869a-f4ace0b0ed98"/> + id="c9521331-a6c4-4272-945b-e7383d5177f9" name="rcvMsgEnd_m100_ASYNCHRONOUS_CALL" + coveredInstanceRoles="#caae1009-de68-48a5-b8fd-76dba35dd304" event="#81b07b0a-12f6-43cc-b1f5-cb13fa130d68"/> + id="3e0de7bf-f424-4fd2-9511-1f39c1b40086" name="endExec" coveredInstanceRoles="#caae1009-de68-48a5-b8fd-76dba35dd304" + event="#552c905e-fb0c-47b3-957f-d555321cfdcc"/> + + + id="fa272f06-875a-4c08-a2a0-dfbd87a8cff2" start="#2d09f798-2877-46cd-960b-47de13c9868a" + finish="#f99aa715-ca07-460b-a43b-861afe24a5b0"/> + + + + + + + + + + + id="04ed07c6-2b01-41b8-869a-f4ace0b0ed98" name="sndOp_ExchangeItemAllocation 1_ASYNCHRONOUS_CALL" + operation="#e8b56ffa-ff4d-457e-9f69-403e5282e682"/> + id="81b07b0a-12f6-43cc-b1f5-cb13fa130d68" name="rcvOp_m100_ASYNCHRONOUS_CALL" + operation="#e8b56ffa-ff4d-457e-9f69-403e5282e682"/> + id="552c905e-fb0c-47b3-957f-d555321cfdcc"/> + id="1ff5145b-91e0-46d6-8ea8-eaaaf7f6c763" name="System" representedInstance="#91cf2a19-1e34-4e5f-9996-b8d4660d9e73"/> + id="8f8ce0cf-6a2b-4082-8f4d-a3b8026454de" name="SA 2" representedInstance="#35c0abb1-b1e7-4cf5-880c-dc9d2e83aba5"/> + id="47edce52-5232-4a6e-98c0-69b30e91bca2" name="SA 3" representedInstance="#579b3b78-af03-4da1-af2b-6194acfc3071"/> + + + + + + id="7494dbaf-52e6-4cda-8d02-4f12528e945d" name="delete2" kind="ASYNCHRONOUS_CALL" + sendingEnd="#37c5ee8e-519a-4748-b136-ee88b964539c" receivingEnd="#57c3eb12-97d7-4077-930e-e3f79a8172ad"/> + id="e428bc9f-fc25-4bd1-86f0-04e5174ab28e" name="m3" kind="SYNCHRONOUS_CALL" + sendingEnd="#ff89a512-8220-4238-a707-c2040ffdeed5" receivingEnd="#743e0927-1cd9-4220-ad3e-e0de68be867e"/> + + + + + + + + + capella:linkedText + + + + id="0ea30892-b970-4af3-91fb-cf570d089d29" coveredInstanceRoles="#8f8ce0cf-6a2b-4082-8f4d-a3b8026454de" + event="#89b33309-e8f9-48c6-b7a0-875b5029c1ea"/> + id="0169604c-5064-437c-95aa-ea469413ad66" coveredInstanceRoles="#47edce52-5232-4a6e-98c0-69b30e91bca2" + event="#4fdce8cf-d08b-413f-986d-9bd611b64c9a"/> + id="b941d785-b23d-49e5-b7cb-cccbf42de51f" coveredInstanceRoles="#47edce52-5232-4a6e-98c0-69b30e91bca2" + event="#64eea721-49d7-4697-9594-d8c5006446a1"/> + + + + + capella:linkedText + + + + + + + + + + + + + capella:linkedText + + + + id="b3116673-dfa7-4ba8-95fd-f6551abced71" coveredInstanceRoles="#8f8ce0cf-6a2b-4082-8f4d-a3b8026454de" + event="#610db016-9f40-425a-badd-adb08c820e26"/> + id="3504e104-ffce-4204-b92b-202e601c3a45" coveredInstanceRoles="#47edce52-5232-4a6e-98c0-69b30e91bca2" + event="#54af6a5e-3bc7-48d2-954a-29b6e6558d57"/> + id="c5213aca-1050-46aa-bd14-e14aaa4532b1" coveredInstanceRoles="#47edce52-5232-4a6e-98c0-69b30e91bca2" + event="#3a176bb2-a401-4fca-84a5-d482ce5f1d4f"/> + + + + + capella:linkedText + + + + + + + + + + + + + capella:linkedText + + + + + + + + + + + capella:linkedText + + + + + + + + + + + + + capella:linkedText + + + + + + + + + + + + capella:linkedText + + + + + + + + + + + + + + + + + id="da6715d1-5353-4305-ac67-e930b22445bf" start="#57c3eb12-97d7-4077-930e-e3f79a8172ad" + finish="#0f49623c-8278-4f9c-80d0-35afd93783af"/> + + + id="897ca869-e441-4ccb-8627-26aedbdbd07f" start="#963e3681-33f7-4ea4-8698-83c4485bb3ac" + finish="#51952ab0-1960-43de-9997-3b7604fc634c"/> + + + + + + + + + id="5dd5f685-28c2-474b-ade1-1b33794c470b" name="sndOp_m4_REPLY" operation="#7ff65259-583c-4f6b-bf62-e1d86e24ef39"/> + id="4ea2eb64-8e23-414b-87fd-75d22756c97b" name="rcvOp_m4_REPLY" operation="#7ff65259-583c-4f6b-bf62-e1d86e24ef39"/> - - + id="64eea721-49d7-4697-9594-d8c5006446a1"/> + + + id="a9109e29-f070-416c-b5ca-172781be5e5b"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + capella:linkedText + + + + + + + + + + + capella:linkedText + + + + + + + + + + + + + + + + + + + + + + + + - + id="6e2a97b9-72f0-4d52-be33-f6f43aa88bfd" involved="#d99eaa9d-a4a7-469b-a2a8-6e7371ba6880"/> - - - + id="53487a67-706c-467c-8a0b-6763d0f43178" involved="#bd95b49b-7aba-4864-a184-63cdcc4ca40a"/> + + + + id="835455fa-66c2-4355-8c55-d0cd3e845971" name="Interfaces"> + + + + + + - + + + + + + + + + + id="d5f0164e-88d6-4500-a0f8-08ddfda4f938" name="ExchangeItemAllocation 1" + sendProtocol="ASYNCHRONOUS" allocatedItem="#e334889e-52c8-48e0-873c-cee8734f4d10"/> + + + + + + + + + + + id="e8482705-af61-4978-9743-bfdf5ae76579" name="Data"> + id="427d2e11-91e0-40d0-8a3a-7c04ad3c85cf" name="Predefined Types"> + id="d0ddabbd-ec6b-4fc3-a70e-9bc484480481" name="Boolean" visibility="PUBLIC"> + id="858ba65b-fbd2-4b65-847c-243b472c83a4" name="False" abstractType="#d0ddabbd-ec6b-4fc3-a70e-9bc484480481"/> + id="a46e1ae4-1caf-465a-8536-c7c4a4f45fab" name="Byte" visibility="PUBLIC"> + id="26f3ee18-03cd-4d1a-8273-1c8288f74d36" name="Char" visibility="PUBLIC"> + id="bc45446d-b9bb-49ec-9197-c52da1f73d39" name="Hexadecimal" visibility="PUBLIC"> + id="3eb05c20-b9eb-491b-9201-73dc1bc31619" operator="POW"> + id="c25e467d-001b-46fa-8eb9-7415fb3d09a2" value="2"/> + id="e68cb73d-b452-4044-a7e0-8b0b1f351a3c" value="64"/> + id="589a5b9b-bb66-4e22-ada2-b380e4c1e894" value="1"/> + id="f16b07bc-ea70-4090-a937-84f6ebd5976e" name="Integer" visibility="PUBLIC"/> + id="b4871054-9910-46fc-a555-3de96602593d" name="Long" visibility="PUBLIC"/> + id="b753f2b8-2c82-4d23-a99e-f0dd60a2b164" name="LongLong" visibility="PUBLIC"/> + id="d98fb3bb-c0a6-4243-a8fe-3f420a4dcbea" name="Short" visibility="PUBLIC"/> + id="1c8db5bf-c9d7-4f92-82ee-311bbc033e15" name="String" visibility="PUBLIC"/> - + + + + + + id="5087bac5-00df-4c13-a5cd-2951d4834241" name="cr2" source="#d8a86878-9f62-47b3-a013-55d4a9ea34c5" + target="#c953e251-250d-4750-ac55-0177808421d6" kind="FLOW"/> + id="d73d24a0-786f-48e3-bf56-86c213ee5c93" name="c2" source="#35d6fb37-6a59-4574-a1d6-5a5078ff8952" + target="#dca49fb6-103a-4fcc-a4d1-d18fa2a2c91f" kind="FLOW"/> + id="d965ba40-66b0-470d-909c-029aacd12ca0" name="c3" source="#2f92bdf0-d3ec-493a-83fa-61b51756bcdf" + target="#4a5e5fed-d0ba-4311-9693-042e3acd074a" kind="FLOW"/> - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="eab97dae-270c-4ef1-ba9a-33fecdd0969c" name="c4" source="#4590a42a-6183-4fb2-95f5-1ad5ef0fbec4" + target="#67b5bae4-5346-4c16-a16e-b068187e03e5" kind="FLOW"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + id="62b00998-81ed-48bc-83ca-c648de7e1f86" targetElement="#d99eaa9d-a4a7-469b-a2a8-6e7371ba6880" + sourceElement="#3aad2394-3def-4f7d-89fe-fd82500923ab"/> + + - - + id="b3daab59-0079-4826-95e8-d1fd90ef5dfa" usedInterface="#7e56ae46-35cd-4069-83ca-4c9a7cffb5c4"/> + + + + + id="130b54be-415e-4222-a4eb-da76b4bf9566" targetElement="#bd95b49b-7aba-4864-a184-63cdcc4ca40a" + sourceElement="#3c2c2a70-6e98-4dbf-a105-72f01f32a894"/> + + + - - - + + + + id="c37b24ef-52ce-4134-bd37-373c9f1503a4" targetElement="#d2853b78-5c38-4aef-96d5-90e42afb4c02" + sourceElement="#36a25351-001f-495c-be1c-1be8156a74fc"/> + id="9dfee607-7ff7-449f-b62e-b0752d91bde5" name="Logical Architecture"> + id="1270a235-2e91-46d4-913a-4faa2d3f64ff" name="Logical Functions"> + id="dddec38f-8310-4685-8d0e-8198519fd0d7" name="Root Logical Function"> + + + id="13c740d4-70c6-49c6-a797-e4c324894116" targetElement="#6045e380-0ff9-449e-a871-0a01b305ac19" + sourceElement="#dddec38f-8310-4685-8d0e-8198519fd0d7"/> + id="b7c4fef3-835d-453c-9bc5-a978a68a1620" name="Capabilities"> + id="7b10091f-9ee0-471d-80e1-734604f6328f" name="CapabilityRealization 1"> + id="db8e28a2-fce1-4c32-9c84-0262bf1747b9" name="LC 2" representedInstance="#4c0df74d-7fe0-41a4-b18d-d94714633a9b"/> + id="c24c552d-d28c-467c-849f-3056c4f9701d" name="LC 1" representedInstance="#608d4e06-d855-447d-9f9a-ce8d06ef7ec8"/> + id="c9da7f83-11c9-429d-9b98-1a2ace638828" name="LA 2" representedInstance="#6f4f1245-ee0b-4d1a-8596-a926aeba18fe"/> + id="8a2ca265-3a4c-41ad-bef2-79db89475bb3" name="LA 3" representedInstance="#ce2a1c3d-0d59-434a-a86a-5c174e8913af"/> + id="b5efa5b3-b2c8-4053-a7da-f523fbc4d00b" name="m1" kind="ASYNCHRONOUS_CALL" + sendingEnd="#2e8e7980-2059-4973-b191-640f1c8adaca" receivingEnd="#ad5a97cf-cbf7-4d20-8a86-83a126080ca9"/> + id="0788d663-f50a-4607-a0ee-724f99230749" name="m2" kind="ASYNCHRONOUS_CALL" + sendingEnd="#acc93ac6-fe06-45bc-aef3-76a8ee478dad" receivingEnd="#0863c43a-da91-487a-9656-d0e76ca1237a"/> + id="9a9772a8-412b-4c4e-8bde-40faa0a71669" name="m3" kind="ASYNCHRONOUS_CALL" + sendingEnd="#963cec80-86d0-4ad0-9693-7e0f22743384" receivingEnd="#0439d1cf-bb85-40f7-903e-49aa9d5d2631"/> + id="2e8e7980-2059-4973-b191-640f1c8adaca" name="sndMsgEnd_m1_ASYNCHRONOUS_CALL" + coveredInstanceRoles="#db8e28a2-fce1-4c32-9c84-0262bf1747b9" event="#1af6f479-31d3-4680-bba4-57ba4c3905ad"/> + id="ad5a97cf-cbf7-4d20-8a86-83a126080ca9" name="rcvMsgEnd_m1_ASYNCHRONOUS_CALL" + coveredInstanceRoles="#c24c552d-d28c-467c-849f-3056c4f9701d" event="#f0b36e1c-3470-485f-918f-a615596432c9"/> + id="a04a9d7d-9c74-4b19-bb71-2086f2ba961e" name="endExec" coveredInstanceRoles="#c24c552d-d28c-467c-849f-3056c4f9701d" + event="#a714974f-f214-4501-ab87-da57651da7ea"/> + id="acc93ac6-fe06-45bc-aef3-76a8ee478dad" name="sndMsgEnd_m2_ASYNCHRONOUS_CALL" + coveredInstanceRoles="#c24c552d-d28c-467c-849f-3056c4f9701d" event="#686adf23-d231-43bb-922b-88dd681f5b57"/> + id="0863c43a-da91-487a-9656-d0e76ca1237a" name="rcvMsgEnd_m2_ASYNCHRONOUS_CALL" + coveredInstanceRoles="#c9da7f83-11c9-429d-9b98-1a2ace638828" event="#6995b892-25ff-4f54-9db2-f5f984feefa5"/> + id="c1a42dbb-37da-43f0-8c39-ca9584901cf0" name="endExec" coveredInstanceRoles="#c9da7f83-11c9-429d-9b98-1a2ace638828" + event="#f0d5ee17-8768-4ff4-8e42-cf2556c18d84"/> + id="963cec80-86d0-4ad0-9693-7e0f22743384" name="sndMsgEnd_m3_ASYNCHRONOUS_CALL" + coveredInstanceRoles="#c9da7f83-11c9-429d-9b98-1a2ace638828" event="#d88833a0-4c9b-4769-b58d-b3c1a6531cdd"/> + id="0439d1cf-bb85-40f7-903e-49aa9d5d2631" name="rcvMsgEnd_m3_ASYNCHRONOUS_CALL" + coveredInstanceRoles="#8a2ca265-3a4c-41ad-bef2-79db89475bb3" event="#9d3e21a0-fc48-4611-a439-69f6227e08c6"/> + id="ec5bfc3b-492d-4445-b2ab-e249e6ade8ca" name="endExec" coveredInstanceRoles="#8a2ca265-3a4c-41ad-bef2-79db89475bb3" + event="#13609e50-74b9-4752-ab5f-d542bfbb3f94"/> + id="6de1f738-8299-4050-ba37-ee5a70368395" start="#ad5a97cf-cbf7-4d20-8a86-83a126080ca9" + finish="#a04a9d7d-9c74-4b19-bb71-2086f2ba961e"/> + id="f37ea246-1bb2-4850-b961-9b6d0a5bb991" start="#0863c43a-da91-487a-9656-d0e76ca1237a" + finish="#c1a42dbb-37da-43f0-8c39-ca9584901cf0"/> + id="eba3a473-7779-4b45-aa40-9daf234d6602" start="#0439d1cf-bb85-40f7-903e-49aa9d5d2631" + finish="#ec5bfc3b-492d-4445-b2ab-e249e6ade8ca"/> + id="1af6f479-31d3-4680-bba4-57ba4c3905ad" name="sndOp_ExchangeItemAllocation 1_ASYNCHRONOUS_CALL" + operation="#41ad0f88-f429-421a-b927-97feee3ae376"/> + id="f0b36e1c-3470-485f-918f-a615596432c9" name="rcvOp_m1_ASYNCHRONOUS_CALL" + operation="#41ad0f88-f429-421a-b927-97feee3ae376"/> + id="a714974f-f214-4501-ab87-da57651da7ea"/> + id="686adf23-d231-43bb-922b-88dd681f5b57" name="sndOp_ExchangeItemAllocation 1_ASYNCHRONOUS_CALL" + operation="#ebb7d53d-5cda-4cdb-8042-8fd12dfba447"/> + id="6995b892-25ff-4f54-9db2-f5f984feefa5" name="rcvOp_m2_ASYNCHRONOUS_CALL" + operation="#ebb7d53d-5cda-4cdb-8042-8fd12dfba447"/> + id="f0d5ee17-8768-4ff4-8e42-cf2556c18d84"/> + id="d88833a0-4c9b-4769-b58d-b3c1a6531cdd" name="sndOp_ExchangeItemAllocation 1_ASYNCHRONOUS_CALL" + operation="#3f2a4836-3d83-4c0f-bb8c-23dd983b1527"/> + id="9d3e21a0-fc48-4611-a439-69f6227e08c6" name="rcvOp_m3_ASYNCHRONOUS_CALL" + operation="#3f2a4836-3d83-4c0f-bb8c-23dd983b1527"/> + id="13609e50-74b9-4752-ab5f-d542bfbb3f94"/> + id="f0492656-1ac7-4c91-83f3-ee0e73b224dd" name="LC 4" representedInstance="#a778e528-927f-4a4e-9e58-2f5c0e21822e"/> + id="10bb90cb-6434-4c16-8523-1a1bd3d34343" name="LC 3" representedInstance="#e502cf55-fb6e-425f-a046-21205749e2fb"/> + id="d366c5b3-f777-431f-be50-06b113ce8d3a" name="LA 4" representedInstance="#1116918f-06d7-4d2a-92e2-3580e8144c0b"/> + id="9e024529-dfe5-4302-b990-e571d929e9bc" name="LA 5" representedInstance="#a42d61b5-9e50-4e93-8949-3e355b786622"/> + id="eff17ca3-d65d-4a98-aee4-cf73a5a0a3d4" name="LA 6" representedInstance="#451f9e68-219a-4aac-8a88-b1112f34359c"/> + id="ffad76f1-d09e-4713-8cda-d6afdda0c668" name="LA 7" representedInstance="#ac2f6c44-e54b-4831-bcda-499748fec003"/> + id="7eebdf99-06f6-4c18-9369-90c28dd5dec6" name="ex1" kind="SYNCHRONOUS_CALL" + sendingEnd="#ae3184e4-8fb5-4dbe-a8b4-2f34a4f3a1ae" receivingEnd="#9421c09a-29bd-4ac9-98e5-7d98126e831a"/> + id="8a476120-aefc-469e-83bf-53f2e2a0255e" name="ex2" kind="ASYNCHRONOUS_CALL" + sendingEnd="#9e6abe94-3fdf-41a1-919c-ad7db446cdb8" receivingEnd="#dbfd9727-045d-4990-9b06-1e46ad013707"/> + id="a0a9b15d-eb2e-4f11-a349-0ad4d1f08113" name="d1" kind="DELETE" + sendingEnd="#26ec659c-adfa-4f4a-99d2-7dfd62916567" receivingEnd="#87704e5d-b139-4f21-9e7e-e829a31b0794"/> + id="44b211e8-d72b-4907-bdc3-9700e97df16e" name="ex3" kind="SYNCHRONOUS_CALL" + sendingEnd="#90e9602a-fe2e-48a0-a3d8-b494da1fc779" receivingEnd="#ed56bf40-8381-48d5-a211-3abf3b258481"/> + id="eb2235f9-d99f-4c92-937b-365e796f7990" name="ex3" kind="REPLY" + sendingEnd="#e3f4864d-878d-461a-8d12-bc39efcc00ae" receivingEnd="#011e8283-d554-4153-b5e8-c14802dc5c6d"/> + id="c41f0d02-f81b-447d-822b-81bb7907e5f8" name="ex4" kind="ASYNCHRONOUS_CALL" + sendingEnd="#d6106561-d0f6-42a9-8477-11ddfb7e56a8" receivingEnd="#e78b0c1e-318c-4959-9459-581e409316e7"/> + id="568e70a1-e45a-4e78-8292-4fa9c19a8dd7" name="ex1" kind="REPLY" + sendingEnd="#af3f6d76-2407-48cb-b2d1-5187b88d40c2" receivingEnd="#f1bf0781-bb8f-40b5-96d6-812fdb93f5f6"/> + id="1bc15ac8-8425-40db-bb28-33cc521075a6" name="ex5" kind="ASYNCHRONOUS_CALL" + sendingEnd="#e3ce9099-c015-4545-b6c5-4c5c2cc4085e" receivingEnd="#2a8ca978-0e2c-4865-b4cc-e8915e588c52"/> + id="e41e698e-bea5-4e61-b5b3-fc3789539ad0" name="c1" kind="CREATE" + sendingEnd="#350894ea-6f58-4c88-9173-0ada708f86c8" receivingEnd="#b06077e4-9552-4894-90d6-c4ff8fa2aeb6"/> + id="67f85ce8-09dd-4647-b2d9-b93aec8b2f32" name="ex6" kind="ASYNCHRONOUS_CALL" + sendingEnd="#e83a5aed-1630-4421-b34b-7c285d4b8812" receivingEnd="#9d7c36d5-9c1f-450b-9ce5-5b94bbc869bd"/> + id="e18c24bc-d66d-4555-a038-f90ad4686673" name="c2" kind="SYNCHRONOUS_CALL" + sendingEnd="#f96bd4fc-2626-45de-9e24-ba5fcea45623" receivingEnd="#d34491c9-2b67-47c8-acce-d5e93112f512"/> + id="820bf9c4-5b5d-4685-9150-99805212bd5d" name="c2" kind="REPLY" sendingEnd="#c55d4ce2-9a85-48e0-8354-60f3ced67d3c" + receivingEnd="#40023a02-ed2a-4b67-b60e-1964b822c663"/> + id="ae3184e4-8fb5-4dbe-a8b4-2f34a4f3a1ae" name="sndMsgEnd_ex1_SYNCHRONOUS_CALL" + coveredInstanceRoles="#10bb90cb-6434-4c16-8523-1a1bd3d34343" event="#abcb64d9-b9df-4cae-9970-3a3f83ba372a"/> + id="9421c09a-29bd-4ac9-98e5-7d98126e831a" name="rcvMsgEnd_ex1_SYNCHRONOUS_CALL" + coveredInstanceRoles="#d366c5b3-f777-431f-be50-06b113ce8d3a" event="#1e40a06e-5e4b-4a7e-ad72-3a243575c0ce"/> + id="9e6abe94-3fdf-41a1-919c-ad7db446cdb8" name="sndMsgEnd_ex2_ASYNCHRONOUS_CALL" + coveredInstanceRoles="#d366c5b3-f777-431f-be50-06b113ce8d3a" event="#a40807e3-9771-475c-b699-fff6a368a1f8"/> + id="dbfd9727-045d-4990-9b06-1e46ad013707" name="rcvMsgEnd_ex2_ASYNCHRONOUS_CALL" + coveredInstanceRoles="#9e024529-dfe5-4302-b990-e571d929e9bc" event="#7f9f2b79-2400-423d-ba8d-2360c6d0fa21"/> + id="26ec659c-adfa-4f4a-99d2-7dfd62916567" name="sndMsgEnd_d1_DELETE" + coveredInstanceRoles="#eff17ca3-d65d-4a98-aee4-cf73a5a0a3d4" event="#e2e1350a-55b3-4ad7-9f4a-e52edb6b1bb0"/> + id="87704e5d-b139-4f21-9e7e-e829a31b0794" name="rcvMsgEnd_d1_DELETE" + coveredInstanceRoles="#ffad76f1-d09e-4713-8cda-d6afdda0c668" event="#c732189b-128e-443d-8328-991cbd7321b8"/> + id="90e9602a-fe2e-48a0-a3d8-b494da1fc779" name="sndMsgEnd_ex3_SYNCHRONOUS_CALL" + coveredInstanceRoles="#9e024529-dfe5-4302-b990-e571d929e9bc" event="#18e1d21b-fd90-4101-a283-91e6173866b4"/> + id="ed56bf40-8381-48d5-a211-3abf3b258481" name="rcvMsgEnd_ex3_SYNCHRONOUS_CALL" + coveredInstanceRoles="#d366c5b3-f777-431f-be50-06b113ce8d3a" event="#1ba569a6-66c1-4546-9423-84df4853b520"/> + id="e3f4864d-878d-461a-8d12-bc39efcc00ae" name="sndMsgEnd_ex3_REPLY" + coveredInstanceRoles="#d366c5b3-f777-431f-be50-06b113ce8d3a" event="#613f105c-ef90-4faa-8f42-f886b96dc625"/> + id="011e8283-d554-4153-b5e8-c14802dc5c6d" name="rcvMsgEnd_ex3_REPLY" + coveredInstanceRoles="#9e024529-dfe5-4302-b990-e571d929e9bc" event="#8ce706ef-f93f-40a2-a2cd-2b8b625212f4"/> + id="d6106561-d0f6-42a9-8477-11ddfb7e56a8" name="sndMsgEnd_ex4_ASYNCHRONOUS_CALL" + coveredInstanceRoles="#d366c5b3-f777-431f-be50-06b113ce8d3a" event="#ac273667-f254-426a-903d-3168004b0628"/> + id="e78b0c1e-318c-4959-9459-581e409316e7" name="rcvMsgEnd_ex4_ASYNCHRONOUS_CALL" + coveredInstanceRoles="#eff17ca3-d65d-4a98-aee4-cf73a5a0a3d4" event="#1c82480e-9ec0-42b1-8b35-d56caf8bbf1c"/> + id="925ff93d-4375-492d-9735-5dc186d6e9fa" name="endExec" coveredInstanceRoles="#eff17ca3-d65d-4a98-aee4-cf73a5a0a3d4" + event="#7f5957ea-43be-4a24-89b2-d2b370c13dcd"/> + id="af3f6d76-2407-48cb-b2d1-5187b88d40c2" name="sndMsgEnd_ex1_REPLY" + coveredInstanceRoles="#d366c5b3-f777-431f-be50-06b113ce8d3a" event="#ddbee846-cbb0-45f1-a480-0965dcea5e2e"/> + id="f1bf0781-bb8f-40b5-96d6-812fdb93f5f6" name="rcvMsgEnd_ex1_REPLY" + coveredInstanceRoles="#10bb90cb-6434-4c16-8523-1a1bd3d34343" event="#4ea3a9c1-d8bd-4da2-b0d3-4feecfcecb08"/> + id="e3ce9099-c015-4545-b6c5-4c5c2cc4085e" name="sndMsgEnd_ex5_ASYNCHRONOUS_CALL" + coveredInstanceRoles="#eff17ca3-d65d-4a98-aee4-cf73a5a0a3d4" event="#7dcf51c1-8a96-44d7-afc8-92c8c8eedc2b"/> + id="2a8ca978-0e2c-4865-b4cc-e8915e588c52" name="rcvMsgEnd_ex5_ASYNCHRONOUS_CALL" + coveredInstanceRoles="#9e024529-dfe5-4302-b990-e571d929e9bc" event="#a8c7a4e5-335f-447f-b163-9a7a068b5df0"/> + id="350894ea-6f58-4c88-9173-0ada708f86c8" name="sndMsgEnd_c1_CREATE" + coveredInstanceRoles="#10bb90cb-6434-4c16-8523-1a1bd3d34343" event="#84667d54-c1aa-4dfc-9891-d14d9272f96e"/> + id="b06077e4-9552-4894-90d6-c4ff8fa2aeb6" name="rcvMsgEnd_c1_CREATE" + coveredInstanceRoles="#f0492656-1ac7-4c91-83f3-ee0e73b224dd" event="#6c5e698e-5ab1-4da5-9c02-da8f9afd5f0d"/> + id="e83a5aed-1630-4421-b34b-7c285d4b8812" name="sndMsgEnd_ex6_ASYNCHRONOUS_CALL" + coveredInstanceRoles="#9e024529-dfe5-4302-b990-e571d929e9bc" event="#1bb3316f-d08d-4949-a304-407998fe5f27"/> + id="9d7c36d5-9c1f-450b-9ce5-5b94bbc869bd" name="rcvMsgEnd_ex6_ASYNCHRONOUS_CALL" + coveredInstanceRoles="#eff17ca3-d65d-4a98-aee4-cf73a5a0a3d4" event="#9320f94c-ebc2-4a90-9b93-9a1a1b1287b4"/> + id="12dfce58-6754-4825-99c4-860ae33c95d3" name="endExec" coveredInstanceRoles="#eff17ca3-d65d-4a98-aee4-cf73a5a0a3d4" + event="#75113720-c45a-4f17-9bb3-43c2f16b4f12"/> + id="6bdea0d3-d7eb-45c4-8f82-d311e24f47c4" name="endExec" coveredInstanceRoles="#9e024529-dfe5-4302-b990-e571d929e9bc" + event="#bda52cff-2919-4771-b3a8-6dfe3c471e63"/> + id="f96bd4fc-2626-45de-9e24-ba5fcea45623" name="sndMsgEnd_c2_SYNCHRONOUS_CALL" + coveredInstanceRoles="#f0492656-1ac7-4c91-83f3-ee0e73b224dd" event="#85a5bb67-f42e-474f-8dca-780e0db1784d"/> + id="d34491c9-2b67-47c8-acce-d5e93112f512" name="rcvMsgEnd_c2_SYNCHRONOUS_CALL" + coveredInstanceRoles="#d366c5b3-f777-431f-be50-06b113ce8d3a" event="#80d6b9c6-2c15-4265-a607-2dabc45bb7e9"/> + id="c55d4ce2-9a85-48e0-8354-60f3ced67d3c" name="sndMsgEnd_c2_REPLY" + coveredInstanceRoles="#d366c5b3-f777-431f-be50-06b113ce8d3a" event="#22219190-ab56-43cf-819a-d2c87e4a3280"/> + id="40023a02-ed2a-4b67-b60e-1964b822c663" name="rcvMsgEnd_c2_REPLY" + coveredInstanceRoles="#f0492656-1ac7-4c91-83f3-ee0e73b224dd" event="#ab6a49aa-177d-4139-8aa5-1231e510e7a5"/> + id="1c9474a1-a3e3-460a-acf6-f56be4ad36b1" name="endExec" coveredInstanceRoles="#9e024529-dfe5-4302-b990-e571d929e9bc" + event="#d4b5d2ad-c7d6-4601-b862-728f7e779a75"/> + id="90b05977-f7d2-4858-9e24-daf76c770b96" start="#9421c09a-29bd-4ac9-98e5-7d98126e831a" + finish="#af3f6d76-2407-48cb-b2d1-5187b88d40c2"/> + id="cc819dcc-bd3f-493b-81ab-97e71330f759" start="#dbfd9727-045d-4990-9b06-1e46ad013707" + finish="#1c9474a1-a3e3-460a-acf6-f56be4ad36b1"/> + id="d014e4e4-261c-4bb8-b8aa-121b0b189626" start="#ed56bf40-8381-48d5-a211-3abf3b258481" + finish="#e3f4864d-878d-461a-8d12-bc39efcc00ae"/> + id="d443820b-51bd-4e78-9c79-8d7933b02cf7" start="#e78b0c1e-318c-4959-9459-581e409316e7" + finish="#925ff93d-4375-492d-9735-5dc186d6e9fa"/> + id="ec79b25d-985c-4355-9c6e-a373aa12c0da" start="#2a8ca978-0e2c-4865-b4cc-e8915e588c52" + finish="#6bdea0d3-d7eb-45c4-8f82-d311e24f47c4"/> + id="cd2671c2-a599-4cb6-a358-d4058055652e" start="#9d7c36d5-9c1f-450b-9ce5-5b94bbc869bd" + finish="#12dfce58-6754-4825-99c4-860ae33c95d3"/> + id="1e06fe3d-cdeb-4560-b561-fd0b7a890cf2" start="#d34491c9-2b67-47c8-acce-d5e93112f512" + finish="#c55d4ce2-9a85-48e0-8354-60f3ced67d3c"/> + id="abcb64d9-b9df-4cae-9970-3a3f83ba372a" name="sndOp_ExchangeItemAllocation 1_SYNCHRONOUS_CALL" + operation="#b0548ec5-5794-4292-9685-f15292ee1012"/> + id="1e40a06e-5e4b-4a7e-ad72-3a243575c0ce" name="rcvOp_ex1_SYNCHRONOUS_CALL" + operation="#b0548ec5-5794-4292-9685-f15292ee1012"/> + id="ddbee846-cbb0-45f1-a480-0965dcea5e2e" name="sndOp_ex1_REPLY" operation="#b0548ec5-5794-4292-9685-f15292ee1012"/> + id="4ea3a9c1-d8bd-4da2-b0d3-4feecfcecb08" name="rcvOp_ex1_REPLY" operation="#b0548ec5-5794-4292-9685-f15292ee1012"/> + id="a40807e3-9771-475c-b699-fff6a368a1f8" name="sndOp_ExchangeItemAllocation 1_ASYNCHRONOUS_CALL" + operation="#6e7dedcf-f156-4a46-9d2b-284eb50379c6"/> + id="7f9f2b79-2400-423d-ba8d-2360c6d0fa21" name="rcvOp_ex2_ASYNCHRONOUS_CALL" + operation="#6e7dedcf-f156-4a46-9d2b-284eb50379c6"/> + id="d4b5d2ad-c7d6-4601-b862-728f7e779a75"/> + id="18e1d21b-fd90-4101-a283-91e6173866b4" name="sndOp_ExchangeItemAllocation 1_SYNCHRONOUS_CALL" + operation="#047fc042-faf3-46eb-a3a0-f160c99d1927"/> + id="1ba569a6-66c1-4546-9423-84df4853b520" name="rcvOp_ex3_SYNCHRONOUS_CALL" + operation="#047fc042-faf3-46eb-a3a0-f160c99d1927"/> + id="613f105c-ef90-4faa-8f42-f886b96dc625" name="sndOp_ex3_REPLY" operation="#047fc042-faf3-46eb-a3a0-f160c99d1927"/> + id="8ce706ef-f93f-40a2-a2cd-2b8b625212f4" name="rcvOp_ex3_REPLY" operation="#047fc042-faf3-46eb-a3a0-f160c99d1927"/> + id="ac273667-f254-426a-903d-3168004b0628" name="sndOp_ExchangeItemAllocation 1_ASYNCHRONOUS_CALL" + operation="#dcb9e55d-b397-4a21-99ae-57b07222c2bb"/> + id="1c82480e-9ec0-42b1-8b35-d56caf8bbf1c" name="rcvOp_ex4_ASYNCHRONOUS_CALL" + operation="#dcb9e55d-b397-4a21-99ae-57b07222c2bb"/> + id="7f5957ea-43be-4a24-89b2-d2b370c13dcd"/> + id="7dcf51c1-8a96-44d7-afc8-92c8c8eedc2b" name="sndOp_ExchangeItemAllocation 1_ASYNCHRONOUS_CALL" + operation="#bdfa4e33-7374-456e-8059-70b8d16cf68f"/> + id="a8c7a4e5-335f-447f-b163-9a7a068b5df0" name="rcvOp_ex5_ASYNCHRONOUS_CALL" + operation="#bdfa4e33-7374-456e-8059-70b8d16cf68f"/> + + id="1bb3316f-d08d-4949-a304-407998fe5f27" name="sndOp_ExchangeItemAllocation 1_ASYNCHRONOUS_CALL" + operation="#d27c90cd-3b01-4485-a9fa-2bd9fd4fda6e"/> + id="9320f94c-ebc2-4a90-9b93-9a1a1b1287b4" name="rcvOp_ex6_ASYNCHRONOUS_CALL" + operation="#d27c90cd-3b01-4485-a9fa-2bd9fd4fda6e"/> + id="75113720-c45a-4f17-9bb3-43c2f16b4f12"/> + id="84667d54-c1aa-4dfc-9891-d14d9272f96e" name="sndOp_ExchangeItemAllocation 1_CREATE" + operation="#099c9895-5a8c-47ce-9d81-142091aeb2c8"/> - + id="6c5e698e-5ab1-4da5-9c02-da8f9afd5f0d" name="rcvOp_c1_CREATE" operation="#099c9895-5a8c-47ce-9d81-142091aeb2c8"/> + id="85a5bb67-f42e-474f-8dca-780e0db1784d" name="sndOp_ExchangeItemAllocation 1_SYNCHRONOUS_CALL" + operation="#fd9364e1-2df6-47c4-b984-31fc2433f6a2"/> + id="80d6b9c6-2c15-4265-a607-2dabc45bb7e9" name="rcvOp_c2_SYNCHRONOUS_CALL" + operation="#fd9364e1-2df6-47c4-b984-31fc2433f6a2"/> + id="22219190-ab56-43cf-819a-d2c87e4a3280" name="sndOp_c2_REPLY" operation="#fd9364e1-2df6-47c4-b984-31fc2433f6a2"/> + id="ab6a49aa-177d-4139-8aa5-1231e510e7a5" name="rcvOp_c2_REPLY" operation="#fd9364e1-2df6-47c4-b984-31fc2433f6a2"/> + id="e2e1350a-55b3-4ad7-9f4a-e52edb6b1bb0" name="sndOp_ExchangeItemAllocation 1_DELETE" + operation="#918f2ca8-6a1a-4a12-9b5a-57f4ad8c03aa"/> + id="c732189b-128e-443d-8328-991cbd7321b8" name="rcvOp_d1_DELETE" operation="#918f2ca8-6a1a-4a12-9b5a-57f4ad8c03aa"/> + id="d9fdfdcb-fdbc-456a-ab80-377645e467fc" name="LC 2" representedInstance="#4c0df74d-7fe0-41a4-b18d-d94714633a9b"/> + id="da3ee701-6fe1-472f-897f-2f813e118787" name="LC 1" representedInstance="#608d4e06-d855-447d-9f9a-ce8d06ef7ec8"/> + id="4f353018-8fc1-477d-b3a4-e4cd7556a046" name="LA 2" representedInstance="#6f4f1245-ee0b-4d1a-8596-a926aeba18fe"/> + id="c4d69d1e-5a42-4377-8c48-4208effe3e5e" name="LA 3" representedInstance="#ce2a1c3d-0d59-434a-a86a-5c174e8913af"/> + id="35568148-bb4e-4536-8984-29143d51260e" name="m1" kind="ASYNCHRONOUS_CALL" + sendingEnd="#588e3156-496c-4d3f-8131-e743118fd757" receivingEnd="#da8e81ca-eff9-4a01-a414-e7278615f778"/> + id="6a86185b-a1e8-4053-a3fe-5bdef9462b6f" name="m2" kind="ASYNCHRONOUS_CALL" + sendingEnd="#484d57c9-da00-4cca-954e-ca195557c437" receivingEnd="#71d4201a-1a6b-4070-91f1-f2ade4750aa6"/> + id="580eb3f8-0a8b-4939-903d-b2818d19eb78" name="m3" kind="ASYNCHRONOUS_CALL" + sendingEnd="#1e861b15-78ff-43ba-9dc7-4c19484f38f7" receivingEnd="#9556e512-b5c5-42f4-b369-c7b3c6894b19"/> + id="588e3156-496c-4d3f-8131-e743118fd757" coveredInstanceRoles="#d9fdfdcb-fdbc-456a-ab80-377645e467fc" + event="#934b1fb0-0d4e-4b64-b458-63a35ca562b8"/> + id="da8e81ca-eff9-4a01-a414-e7278615f778" coveredInstanceRoles="#da3ee701-6fe1-472f-897f-2f813e118787" + event="#107a7159-d7be-4a93-af87-c6f758fc502a"/> + id="16c1a8d8-ed52-4773-a295-726985f44093" coveredInstanceRoles="#da3ee701-6fe1-472f-897f-2f813e118787" + event="#a0ca1c24-dcfe-4106-9cc7-86abbe8e8485"/> + id="484d57c9-da00-4cca-954e-ca195557c437" coveredInstanceRoles="#da3ee701-6fe1-472f-897f-2f813e118787" + event="#58cbcae0-0ddc-4958-b914-865a3d91d58b"/> + id="71d4201a-1a6b-4070-91f1-f2ade4750aa6" coveredInstanceRoles="#4f353018-8fc1-477d-b3a4-e4cd7556a046" + event="#330a4277-f14f-423a-8b2d-05103b1389e7"/> + id="0be39f60-713b-48c2-8b05-8c76446a1335" coveredInstanceRoles="#4f353018-8fc1-477d-b3a4-e4cd7556a046" + event="#7217c311-37de-4173-9fad-e918957e3d54"/> + id="1e861b15-78ff-43ba-9dc7-4c19484f38f7" coveredInstanceRoles="#4f353018-8fc1-477d-b3a4-e4cd7556a046" + event="#f859a5d1-cfb1-4ff8-a4ea-a9f50a15c13f"/> + id="9556e512-b5c5-42f4-b369-c7b3c6894b19" coveredInstanceRoles="#c4d69d1e-5a42-4377-8c48-4208effe3e5e" + event="#ba3a384c-88e7-4566-8092-03eb97bacb9c"/> + id="90ffda33-db5f-47fa-b3bf-de9035816fbb" coveredInstanceRoles="#c4d69d1e-5a42-4377-8c48-4208effe3e5e" + event="#354422ce-9fce-4f82-a05c-f925f2c37407"/> + id="9b2d62f3-a697-4bd6-8abd-3bc6af55cd9c" start="#da8e81ca-eff9-4a01-a414-e7278615f778" + finish="#16c1a8d8-ed52-4773-a295-726985f44093"/> + id="69377fc3-fa41-475b-bad9-bedd6a922d78" start="#71d4201a-1a6b-4070-91f1-f2ade4750aa6" + finish="#0be39f60-713b-48c2-8b05-8c76446a1335"/> + id="6738a7c8-ce7e-47a3-a447-e80f83ec4f61" start="#9556e512-b5c5-42f4-b369-c7b3c6894b19" + finish="#90ffda33-db5f-47fa-b3bf-de9035816fbb"/> + + id="934b1fb0-0d4e-4b64-b458-63a35ca562b8" operation="#41ad0f88-f429-421a-b927-97feee3ae376"/> + id="107a7159-d7be-4a93-af87-c6f758fc502a" operation="#41ad0f88-f429-421a-b927-97feee3ae376"/> + id="7217c311-37de-4173-9fad-e918957e3d54"/> + id="58cbcae0-0ddc-4958-b914-865a3d91d58b" operation="#ebb7d53d-5cda-4cdb-8042-8fd12dfba447"/> + id="330a4277-f14f-423a-8b2d-05103b1389e7" operation="#ebb7d53d-5cda-4cdb-8042-8fd12dfba447"/> + id="354422ce-9fce-4f82-a05c-f925f2c37407"/> + id="f859a5d1-cfb1-4ff8-a4ea-a9f50a15c13f" operation="#3f2a4836-3d83-4c0f-bb8c-23dd983b1527"/> - + id="ba3a384c-88e7-4566-8092-03eb97bacb9c" operation="#3f2a4836-3d83-4c0f-bb8c-23dd983b1527"/> - - - - - - - - - - + + + + + + + + + + + + + + + id="97506fd5-a46c-4dba-ad04-3768a7a84222" name="Interfaces"> + id="c4e7035f-26f9-44d0-aafd-060fdd75d41e" name="m2" exchangeMechanism="OPERATION"/> + id="0663fa81-8e20-41bb-8d61-3dcda48fc264" name="m3" exchangeMechanism="OPERATION"/> + id="642bc218-faf3-403e-b16c-e612f742b488" name="ex1" exchangeMechanism="OPERATION"/> + id="51bfdac3-362a-4a9a-8c29-b1e40b08fa70" name="ex2" exchangeMechanism="OPERATION"/> + id="a42543c7-55e7-4b60-a316-fdefc0b9671c" name="ex3" exchangeMechanism="OPERATION"/> + id="78a7d972-46a8-4acc-b2a4-e7ca0978a361" name="ex4" exchangeMechanism="OPERATION"/> + id="0dfbe118-a084-4dab-a711-3d937f8c14a0" name="ex5" exchangeMechanism="OPERATION"/> + id="f035d5f4-783f-4650-8c4d-abfc732f9356" name="ex6" exchangeMechanism="OPERATION"/> + id="1392f2f7-dc5e-413a-979a-e5a07e7433ed" name="c2" exchangeMechanism="OPERATION"/> - + + id="ebb7d53d-5cda-4cdb-8042-8fd12dfba447" name="ExchangeItemAllocation 1" + sendProtocol="ASYNCHRONOUS" allocatedItem="#c4e7035f-26f9-44d0-aafd-060fdd75d41e"/> - + id="3f2a4836-3d83-4c0f-bb8c-23dd983b1527" name="ExchangeItemAllocation 1" + sendProtocol="ASYNCHRONOUS" allocatedItem="#0663fa81-8e20-41bb-8d61-3dcda48fc264"/> - + id="b0548ec5-5794-4292-9685-f15292ee1012" name="ExchangeItemAllocation 1" + sendProtocol="SYNCHRONOUS" allocatedItem="#642bc218-faf3-403e-b16c-e612f742b488"/> - + id="6e7dedcf-f156-4a46-9d2b-284eb50379c6" name="ExchangeItemAllocation 1" + sendProtocol="ASYNCHRONOUS" allocatedItem="#51bfdac3-362a-4a9a-8c29-b1e40b08fa70"/> - + id="047fc042-faf3-46eb-a3a0-f160c99d1927" name="ExchangeItemAllocation 1" + sendProtocol="SYNCHRONOUS" allocatedItem="#a42543c7-55e7-4b60-a316-fdefc0b9671c"/> - - - - + id="dcb9e55d-b397-4a21-99ae-57b07222c2bb" name="ExchangeItemAllocation 1" + sendProtocol="ASYNCHRONOUS" allocatedItem="#78a7d972-46a8-4acc-b2a4-e7ca0978a361"/> - + id="bdfa4e33-7374-456e-8059-70b8d16cf68f" name="ExchangeItemAllocation 1" + sendProtocol="ASYNCHRONOUS" allocatedItem="#0dfbe118-a084-4dab-a711-3d937f8c14a0"/> - + id="d27c90cd-3b01-4485-a9fa-2bd9fd4fda6e" name="ExchangeItemAllocation 1" + sendProtocol="ASYNCHRONOUS" allocatedItem="#f035d5f4-783f-4650-8c4d-abfc732f9356"/> - + id="fd9364e1-2df6-47c4-b984-31fc2433f6a2" name="ExchangeItemAllocation 1" + sendProtocol="SYNCHRONOUS" allocatedItem="#1392f2f7-dc5e-413a-979a-e5a07e7433ed"/> + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="355f376a-e151-4f27-81e4-2907d552d190" name="Data"/> + + + + + + + + + - + id="a6027cf7-e9cb-49e0-b2fe-aef3568ec8ad" name="Logical System"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + id="040d5875-b878-4561-9ae3-5bc49a9733ed" name="LA 2" actor="true"> + id="ef088b3b-30d0-49b2-8a91-e79b1f2e8f2b" usedInterface="#05e7a26d-8db6-4ad8-9e15-47bbb624bc47"/> + - + id="610035c7-1576-44b8-aabd-bf04a62ffc72" name="LA 3" actor="true"> + id="61827c40-0469-4631-ba2a-aac3f51259fa" implementedInterface="#05e7a26d-8db6-4ad8-9e15-47bbb624bc47"/> - - - - - - - - - - - + + id="2730e91f-0756-45dc-bf09-9297bd883dec" usedInterface="#8dbbf588-11ba-409e-af20-691ea9693a21"/> + id="de088ca4-f158-47f8-a8cb-e0afb655da9c" usedInterface="#081f24fd-fdbf-4ff5-9ce9-70e4fd6b0ae4"/> + id="d10bf493-e8e0-448a-871b-32ce664df342" implementedInterface="#ef874086-ec9d-4674-9f4f-81ba44198443"/> + id="954ba008-ade8-48f2-a326-8c171c881dba" implementedInterface="#f5036cc2-ba6d-47a8-b72e-95f733801a49"/> - - + id="f0231b4f-680a-49b0-b3a7-9cc3c5df3961" implementedInterface="#13c71464-4381-473f-b071-a461bf4a114c"/> + + + id="991c27b8-a861-47ae-982b-008418b149e2" usedInterface="#f5036cc2-ba6d-47a8-b72e-95f733801a49"/> + id="eb3b1610-5e35-488b-941a-268ac439df3b" usedInterface="#5f807163-bd3e-47b0-907e-50ad04866edb"/> + id="c90b5e02-0740-487c-a9c8-fc4b5f88141b" implementedInterface="#8dbbf588-11ba-409e-af20-691ea9693a21"/> - - + id="7f7854c8-a432-4ece-b1e3-960200ceab19" implementedInterface="#2c5f66d0-cbf2-4304-afd8-e043f4588730"/> + + + id="22253945-9e76-4466-a335-7d85f25c6412" usedInterface="#2c5f66d0-cbf2-4304-afd8-e043f4588730"/> + id="de9b30d3-34e8-401e-94a5-8cae9d852ed2" usedInterface="#4c26b15d-68ba-432e-8bd1-df6db3ce9f85"/> + id="d7554b5c-8412-4968-8aba-e5ed2f661f6d" implementedInterface="#081f24fd-fdbf-4ff5-9ce9-70e4fd6b0ae4"/> - - + id="c7edc275-f299-476f-91eb-11cff342a671" implementedInterface="#5f807163-bd3e-47b0-907e-50ad04866edb"/> + + - - + id="91f7c0f0-8616-4957-8339-46a0dbfd1577" implementedInterface="#4c26b15d-68ba-432e-8bd1-df6db3ce9f85"/> + + + + id="c888c4b1-7a0a-42fc-b09c-08328708aaee" targetElement="#36a25351-001f-495c-be1c-1be8156a74fc" + sourceElement="#9dfee607-7ff7-449f-b62e-b0752d91bde5"/> + id="502f7ea2-d471-486a-b1e4-f10f5eaf4908" name="Physical Architecture"> + id="67a0da5e-461e-46ff-8592-f848c4904fa2" name="Physical Functions"> + id="dfa73dee-40f6-4f78-9c83-afcc18e39168" name="Root Physical Function"> + id="3fa82684-410d-431f-a6dc-570ec35934cc" targetElement="#dddec38f-8310-4685-8d0e-8198519fd0d7" + sourceElement="#dfa73dee-40f6-4f78-9c83-afcc18e39168"/> + id="cbac2750-3667-46b4-b07d-741572534c1c" name="Capabilities"/> + id="16418ea7-f48e-4696-91cc-d9157f880ac0" name="Interfaces"/> - - - - - - - + id="dfa44a8c-d3be-4fe1-a3ed-d2b73c0479df" name="Data"/> + + + + + + + id="620ab093-3d17-415a-a217-77c54b6cf9ac" targetElement="#9dfee607-7ff7-449f-b62e-b0752d91bde5" + sourceElement="#502f7ea2-d471-486a-b1e4-f10f5eaf4908"/> + id="72ee246f-13b7-4b87-afa6-b0f4aa4ac1da" name="EPBS Architecture"> - - - - - - + id="a210167d-162b-4d89-8140-3fe028ba09d2" name="Capabilities"/> + + + + + + + id="af4bc8c9-8c23-4343-84e7-d3b2552ef9b9" targetElement="#502f7ea2-d471-486a-b1e4-f10f5eaf4908" + sourceElement="#72ee246f-13b7-4b87-afa6-b0f4aa4ac1da"/> diff --git a/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/ScenarioEditorTestSuite.java b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/ScenarioEditorTestSuite.java index ada1076a..3c0193c3 100644 --- a/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/ScenarioEditorTestSuite.java +++ b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/ScenarioEditorTestSuite.java @@ -19,8 +19,13 @@ import org.polarsys.capella.scenario.editor.ju.testcases.ArmTimerMessagesFromXtextToDiagramTestCase; import org.polarsys.capella.scenario.editor.ju.testcases.CreateDeleteMessagesFromXtextToDiagramTestCase; import org.polarsys.capella.scenario.editor.ju.testcases.DeleteCombinedFragmentFromXtextToDiagramTestCase; +import org.polarsys.capella.scenario.editor.ju.testcases.DeleteOperandsXtextToDiagramTestCase; import org.polarsys.capella.scenario.editor.ju.testcases.DeleteStateFragmentFromXtextToDiagramTestCase; +import org.polarsys.capella.scenario.editor.ju.testcases.DuplicatedCombinedFragmentsAndOperandsXtextToDiagramTestCase; +import org.polarsys.capella.scenario.editor.ju.testcases.DuplicatedMessagesFromXtextToDiagramTestCase; +import org.polarsys.capella.scenario.editor.ju.testcases.ExchangesAndInstanceRolesXtextToDiagramTestCase; import org.polarsys.capella.scenario.editor.ju.testcases.ReloadDataFromDiagramToTextTestCase; +import org.polarsys.capella.scenario.editor.ju.testcases.RolesXtextToDiagramTestCase; import org.polarsys.capella.scenario.editor.ju.testcases.SaveDataFromXtextToDiagramTestCase; import org.polarsys.capella.test.framework.api.BasicTestArtefact; import org.polarsys.capella.test.framework.api.BasicTestSuite; @@ -53,6 +58,11 @@ protected List getTests() { tests.add(new CreateDeleteMessagesFromXtextToDiagramTestCase()); tests.add(new DeleteCombinedFragmentFromXtextToDiagramTestCase()); tests.add(new DeleteStateFragmentFromXtextToDiagramTestCase()); + tests.add(new DuplicatedMessagesFromXtextToDiagramTestCase()); + tests.add(new DuplicatedCombinedFragmentsAndOperandsXtextToDiagramTestCase()); + tests.add(new DeleteOperandsXtextToDiagramTestCase()); + tests.add(new RolesXtextToDiagramTestCase()); + tests.add(new ExchangesAndInstanceRolesXtextToDiagramTestCase()); return tests; } } diff --git a/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/DeleteOperandsXtextToDiagramTestCase.java b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/DeleteOperandsXtextToDiagramTestCase.java new file mode 100644 index 00000000..6571f796 --- /dev/null +++ b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/DeleteOperandsXtextToDiagramTestCase.java @@ -0,0 +1,23 @@ +package org.polarsys.capella.scenario.editor.ju.testcases; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.polarsys.capella.scenario.editor.ju.util.TextualScenarioTestFramework; + +public class DeleteOperandsXtextToDiagramTestCase extends TextualScenarioTestFramework { + + public static final String deleteOperandsDiagramName = "[IS] Capability 1 Delete Operands"; + public static final String deleteOperandsFileContentExpected = "[IS]_Capability_1_Delete_Operands"; + + @Override + public void test() throws Exception { + init(); + List elementsNew = new ArrayList(); + + testUpdateDiagram(deleteOperandsDiagramName, deleteOperandsFileContentExpected, + "[IS]_Capability_1_Delete_Operands_New", elementsNew); + } + +} diff --git a/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/DuplicatedCombinedFragmentsAndOperandsXtextToDiagramTestCase.java b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/DuplicatedCombinedFragmentsAndOperandsXtextToDiagramTestCase.java new file mode 100644 index 00000000..0e74b039 --- /dev/null +++ b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/DuplicatedCombinedFragmentsAndOperandsXtextToDiagramTestCase.java @@ -0,0 +1,23 @@ +package org.polarsys.capella.scenario.editor.ju.testcases; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.polarsys.capella.scenario.editor.ju.util.TextualScenarioTestFramework; + +public class DuplicatedCombinedFragmentsAndOperandsXtextToDiagramTestCase extends TextualScenarioTestFramework { + + public static final String duplicatedCFAndOperandsDiagramName = "[IS] Capability 1 Duplicated CF and Operands"; + public static final String duplicatedCFAndOperandsFileContentExpected = "[IS]_Capability_1_Duplicated_CF_And_Operands"; + + @Override + public void test() throws Exception { + init(); + List elementsNew = new ArrayList(); + + testUpdateDiagram(duplicatedCFAndOperandsDiagramName, duplicatedCFAndOperandsFileContentExpected, + "[IS]_Capability_1_Duplicated_CF_And_Operands_New", elementsNew); + } + +} diff --git a/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/DuplicatedMessagesFromXtextToDiagramTestCase.java b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/DuplicatedMessagesFromXtextToDiagramTestCase.java new file mode 100644 index 00000000..4bf7e418 --- /dev/null +++ b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/DuplicatedMessagesFromXtextToDiagramTestCase.java @@ -0,0 +1,23 @@ +package org.polarsys.capella.scenario.editor.ju.testcases; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.polarsys.capella.scenario.editor.ju.util.TextualScenarioTestFramework; + +public class DuplicatedMessagesFromXtextToDiagramTestCase extends TextualScenarioTestFramework { + + public static final String duplicatedMessagesDiagramName = "[IS] Capability 1 Duplicated Messages"; + public static final String duplicatedMessagesFileContentExpected = "[IS]_Capability_1_Duplicated_Messages"; + + @Override + public void test() throws Exception { + init(); + List elementsNew = new ArrayList(Arrays.asList("SA 2 -> SA 3 : m1", "SA 2 -> SA 3 : m1")); + + testUpdateDiagram(duplicatedMessagesDiagramName, duplicatedMessagesFileContentExpected, + "[IS]_Capability_1_Duplicated_Messages_New", elementsNew); + } + +} diff --git a/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/ExchangesAndInstanceRolesXtextToDiagramTestCase.java b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/ExchangesAndInstanceRolesXtextToDiagramTestCase.java new file mode 100644 index 00000000..e7f9bd83 --- /dev/null +++ b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/ExchangesAndInstanceRolesXtextToDiagramTestCase.java @@ -0,0 +1,23 @@ +package org.polarsys.capella.scenario.editor.ju.testcases; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.polarsys.capella.scenario.editor.ju.util.TextualScenarioTestFramework; + +public class ExchangesAndInstanceRolesXtextToDiagramTestCase extends TextualScenarioTestFramework { + + public static final String exchangesInstanceRolesDiagramName = "[IS] Capability 1 Exchanges Instance Roles"; + public static final String exchangesInstanceRolesFileContentExpected = "[IS]_Capability_1_Exchanges_Instance_Roles"; + + @Override + public void test() throws Exception { + init(); + List elementsNew = new ArrayList(Arrays.asList("System Component:SA 3", "SA 2 -> SA 3 : m1")); + + testUpdateDiagram(exchangesInstanceRolesDiagramName, exchangesInstanceRolesFileContentExpected, + "[IS]_Capability_1_Exchanges_Instance_Roles_New", elementsNew); + } + +} diff --git a/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/RolesXtextToDiagramTestCase.java b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/RolesXtextToDiagramTestCase.java new file mode 100644 index 00000000..26b3770c --- /dev/null +++ b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/RolesXtextToDiagramTestCase.java @@ -0,0 +1,23 @@ +package org.polarsys.capella.scenario.editor.ju.testcases; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.polarsys.capella.scenario.editor.ju.util.TextualScenarioTestFramework; + +public class RolesXtextToDiagramTestCase extends TextualScenarioTestFramework { + + public static final String rolesDiagramName = "[OES] OperationalCapability 1 Roles"; + public static final String rolesFileContentExpected = "[OES]_OperationalCapability_1_Roles"; + + @Override + public void test() throws Exception { + init(); + List elementsNew = new ArrayList(Arrays.asList("Role 1 -> Role 2 : i2")); + + testUpdateDiagram(rolesDiagramName, rolesFileContentExpected, + "[OES]_OperationalCapability_1_Roles_New", elementsNew); + } + +} diff --git a/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Delete_Operands b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Delete_Operands new file mode 100644 index 00000000..db52a72e --- /dev/null +++ b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Delete_Operands @@ -0,0 +1,11 @@ +scenario { + component "System" + actor "SA 2" + actor "SA 3" + "SA 2" -> "SA 3" : "m1" + loop "" over "SA 2" "SA 3" { + "SA 2" -> "SA 3" : "m1" + } "" { + "SA 2" -> "SA 3" : "m2" + } +} \ No newline at end of file diff --git a/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Delete_Operands_New b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Delete_Operands_New new file mode 100644 index 00000000..4dc9b9bc --- /dev/null +++ b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Delete_Operands_New @@ -0,0 +1,9 @@ +scenario { + component "System" + actor "SA 2" + actor "SA 3" + "SA 2" -> "SA 3" : "m1" + loop "" over "SA 2" "SA 3" { + "SA 2" -> "SA 3" : "m1" + } +} \ No newline at end of file diff --git a/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Duplicated_CF_And_Operands b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Duplicated_CF_And_Operands new file mode 100644 index 00000000..87f43b1b --- /dev/null +++ b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Duplicated_CF_And_Operands @@ -0,0 +1,25 @@ +scenario { + component "System" + actor "SA 2" + actor "SA 3" + alt "" over "SA 3" "SA 2" { + "SA 2" -> "SA 3" : "m1" + } else "" { + "SA 2" -> "SA 3" : "m1" + } + alt "" over "SA 3" "SA 2" { + "SA 2" -> "SA 3" : "m2" + } else "" { + "SA 2" -> "SA 3" : "m1" + } + par "" over "System" "SA 3" "SA 2" { + "System" -> "SA 3" : "create1" + } "" { + "System" -> "SA 2" : "delete2" + } + par "" over "System" "SA 3" "SA 2" { + "SA 2" -> "SA 3" withReturn : "m3" + } "" { + "System" -> "SA 2" withReturn : "m4" + } +} \ No newline at end of file diff --git a/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Duplicated_CF_And_Operands_New b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Duplicated_CF_And_Operands_New new file mode 100644 index 00000000..800ebcd1 --- /dev/null +++ b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Duplicated_CF_And_Operands_New @@ -0,0 +1,15 @@ +scenario { + component "System" + actor "SA 2" + actor "SA 3" + alt "" over "SA 3" "SA 2" { + "SA 2" -> "SA 3" : "m1" + } else "" { + "SA 2" -> "SA 3" : "m1" + } + alt "" over "SA 3" "SA 2" { + "SA 2" -> "SA 3" : "m2" + } else "" { + "SA 2" -> "SA 3" : "m1" + } +} \ No newline at end of file diff --git a/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Duplicated_Messages b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Duplicated_Messages new file mode 100644 index 00000000..e7bf05c9 --- /dev/null +++ b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Duplicated_Messages @@ -0,0 +1,9 @@ +scenario { + component "System" + actor "SA 2" + actor "SA 3" + "SA 2" -> "SA 3" : "m1" + "SA 2" -> "System" : "m100" + "SA 2" -> "System" : "m100" + "System" ->x "SA 2" : "delete2" +} \ No newline at end of file diff --git a/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Duplicated_Messages_New b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Duplicated_Messages_New new file mode 100644 index 00000000..805bbefc --- /dev/null +++ b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Duplicated_Messages_New @@ -0,0 +1,9 @@ +scenario { + component "System" + actor "SA 2" + actor "SA 3" + "SA 2" -> "SA 3" : "m1" + "SA 2" -> "SA 3" : "m1" + "SA 2" -> "SA 3" : "m1" + "System" ->x "SA 2" : "delete2" +} \ No newline at end of file diff --git a/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Exchanges_Instance_Roles b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Exchanges_Instance_Roles new file mode 100644 index 00000000..f83bb6dc --- /dev/null +++ b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Exchanges_Instance_Roles @@ -0,0 +1,4 @@ +scenario { + component "System" + actor "SA 2" +} \ No newline at end of file diff --git a/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Exchanges_Instance_Roles_New b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Exchanges_Instance_Roles_New new file mode 100644 index 00000000..6182a35b --- /dev/null +++ b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[IS]_Capability_1_Exchanges_Instance_Roles_New @@ -0,0 +1,6 @@ +scenario { + component "System" + actor "SA 2" + actor "SA 3" + "SA 2" -> "SA 3" : "m1" +} \ No newline at end of file diff --git a/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[OES]_OperationalCapability_1_Roles b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[OES]_OperationalCapability_1_Roles new file mode 100644 index 00000000..8237d490 --- /dev/null +++ b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[OES]_OperationalCapability_1_Roles @@ -0,0 +1,11 @@ +scenario { + role "Role 1" + role "Role 2" + "Role 1" ->+ "Role 2" : "create_role" + "Role 1" -> "Role 2" withReturn : "i" + loop over "Role 1" "Role 2" { + "Role 1" -> "Role 2" : "i" + } { + "Role 1" -> "Role 2" : "i" + } +} \ No newline at end of file diff --git a/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[OES]_OperationalCapability_1_Roles_New b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[OES]_OperationalCapability_1_Roles_New new file mode 100644 index 00000000..0a927698 --- /dev/null +++ b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/testcases/input/[OES]_OperationalCapability_1_Roles_New @@ -0,0 +1,9 @@ +scenario { + role "Role 1" + role "Role 2" + "Role 1" ->+ "Role 2" : "create_role" + loop "" over "Role 1" "Role 2" { + "Role 1" -> "Role 2" : "i" + } + "Role 1" -> "Role 2" : "i2" +} \ No newline at end of file diff --git a/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/util/TextualScenarioTestFramework.java b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/util/TextualScenarioTestFramework.java index cc7e6217..489f263b 100644 --- a/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/util/TextualScenarioTestFramework.java +++ b/tests/org.polarsys.capella.scenario.editor.ju/src/org/polarsys/capella/scenario/editor/ju/util/TextualScenarioTestFramework.java @@ -20,9 +20,7 @@ import java.net.URL; import java.util.ArrayList; import java.util.Arrays; -import java.util.HashSet; import java.util.List; -import java.util.Set; import org.eclipse.core.runtime.FileLocator; import org.eclipse.emf.common.util.EList; @@ -30,6 +28,9 @@ import org.eclipse.osgi.util.NLS; import org.eclipse.sirius.business.api.session.Session; import org.eclipse.sirius.diagram.DDiagramElement; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.PlatformUI; import org.polarsys.capella.test.diagram.common.ju.context.DiagramContext; import org.polarsys.capella.test.diagram.common.ju.step.crud.OpenDiagramStep; import org.polarsys.capella.test.framework.api.BasicTestCase; @@ -58,6 +59,20 @@ public abstract class TextualScenarioTestFramework extends BasicTestCase { protected void init() { session = getSession(modelName); context = new SessionContext(session); + + IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); + EmbeddedEditorView eeView = XtextEditorHelper.getActiveEmbeddedEditorView(); + + if (eeView == null) { + // Show it if not found. + try { + eeView = (EmbeddedEditorView) activePage.showView(EmbeddedEditorView.ID); + + } catch (PartInitException e) { + System.err.println("Cannot open Textual Editor View"); + } + activePage.activate(eeView); + } } /** @@ -133,7 +148,7 @@ protected void testUpdateDiagram(String diagramName, String fileContent, String List afterUpdateElements = new ArrayList(); afterUpdateElements.addAll(diagram.getDiagram().getDiagramElements()); afterUpdateElements.removeAll(elementsBeforeUpdate); - Set newElements = new HashSet(); + List newElements = new ArrayList(); afterUpdateElements.forEach(x -> { EObject target = x.getTarget(); if (target instanceof InstanceRole) { @@ -172,7 +187,7 @@ protected void testUpdateDiagram(String diagramName, String fileContent, String fragment.getRelatedAbstractState().getName() : fragment.getRelatedAbstractFunction().getName(); String newElement = "on " + sourceIr.getName() + " " + keyword + " " + stateName; newElements.add(newElement); - } + } }); expectedElements.removeAll(newElements);