From 09f94b4ac1f598e92d7f5e508bb83e13bd0b9e08 Mon Sep 17 00:00:00 2001 From: Anemone Date: Wed, 25 Aug 2021 17:42:03 +0200 Subject: [PATCH 01/18] Add plug-in for statemachine models generation and sirius configurations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Anemone Kampkötter --- .../my.project.design/META-INF/MANIFEST.MF | 17 + .../description/project.odesign | 26 + .../my.project.design/plugin.properties | 3 + .../my.project.design/plugin.xml | 10 + .../src/my/project/design/Activator.java | 68 + .../src/my/project/design/Services.java | 17 + .../representations.aird | 1307 ++++++ ...atemachine) Language Infrastructure.launch | 18 + .../META-INF/MANIFEST.MF | 53 + plugins/de.cognicrypt.order.editor/README.md | 24 + .../build.properties | 9 + .../icons/icon_order_editor.png | Bin 0 -> 336 bytes .../model/generated/Statemachine.ecore | 28 + .../model/generated/Statemachine.genmodel | 29 + plugins/de.cognicrypt.order.editor/plugin.xml | 50 + plugins/de.cognicrypt.order.editor/pom.xml | 108 + .../AbstractStatemachineRuntimeModule.java | 201 + .../order/editor/Statemachine.xtextbin | Bin 0 -> 4869 bytes .../StatemachineStandaloneSetupGenerated.java | 42 + .../StatemachineAntlrTokenFileProvider.java | 16 + .../parser/antlr/StatemachineParser.java | 40 + .../antlr/internal/InternalStatemachine.g | 1364 ++++++ .../internal/InternalStatemachine.tokens | 50 + .../internal/InternalStatemachineLexer.java | 1406 ++++++ .../internal/InternalStatemachineParser.java | 4075 +++++++++++++++++ .../AbstractStatemachineScopeProvider.java | 9 + .../StatemachineSemanticSequencer.java | 199 + .../StatemachineSyntacticSequencer.java | 91 + .../services/StatemachineGrammarAccess.java | 552 +++ .../order/editor/statemachine/Event.java | 71 + .../order/editor/statemachine/State.java | 63 + .../editor/statemachine/Statemachine.java | 66 + .../statemachine/StatemachineFactory.java | 71 + .../statemachine/StatemachinePackage.java | 550 +++ .../order/editor/statemachine/Transition.java | 117 + .../editor/statemachine/impl/EventImpl.java | 238 + .../editor/statemachine/impl/StateImpl.java | 244 + .../impl/StatemachineFactoryImpl.java | 148 + .../statemachine/impl/StatemachineImpl.java | 249 + .../impl/StatemachinePackageImpl.java | 389 ++ .../statemachine/impl/TransitionImpl.java | 384 ++ .../util/StatemachineAdapterFactory.java | 193 + .../statemachine/util/StatemachineSwitch.java | 189 + .../AbstractStatemachineValidator.java | 21 + ...machineConfigurableIssueCodesProvider.java | 22 + .../de/cognicrypt/order/editor/Activator.java | 75 + .../de/cognicrypt/order/editor/Constants.java | 30 + .../order/editor/GenerateStatemachine.mwe2 | 60 + .../order/editor/Statemachine.xtext | 29 + .../editor/StatemachineRuntimeModule.java | 11 + .../editor/StatemachineStandaloneSetup.java | 15 + .../editor/actions/RunOrderEditorHandler.java | 32 + .../order/editor/config/CryslFile.java | 27 + .../order/editor/config/StaxParser.java | 70 + .../order/editor/config/StaxWriter.java | 178 + .../order/editor/generator/Main.java | 68 + .../generator/StatemachineGenerator.xtend | 25 + .../editor/parser/StatemachineParser.java | 251 + .../scoping/StatemachineScopeProvider.java | 15 + .../validation/StatemachineValidator.java | 25 + .../editor/wizard/OrderEditorWizard.java | 32 + .../wizard/OrderEditorWizardDialog.java | 33 + .../wizard/PageForOrderDiagramWizard.java | 83 + .../.StatemachineGenerator.java._trace | Bin 0 -> 414 bytes .../generator/.StatemachineGenerator.xtendbin | Bin 0 -> 2311 bytes .../generator/StatemachineGenerator.java | 21 + 66 files changed, 13907 insertions(+) create mode 100644 plugins/de.cognicrypt.order.editor.sirius/my.project.design/META-INF/MANIFEST.MF create mode 100644 plugins/de.cognicrypt.order.editor.sirius/my.project.design/description/project.odesign create mode 100644 plugins/de.cognicrypt.order.editor.sirius/my.project.design/plugin.properties create mode 100644 plugins/de.cognicrypt.order.editor.sirius/my.project.design/plugin.xml create mode 100644 plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Activator.java create mode 100644 plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Services.java create mode 100644 plugins/de.cognicrypt.order.editor.sirius/my.project.order.diagram.modeling/representations.aird create mode 100644 plugins/de.cognicrypt.order.editor/.launch/Generate Statemachine (statemachine) Language Infrastructure.launch create mode 100644 plugins/de.cognicrypt.order.editor/META-INF/MANIFEST.MF create mode 100644 plugins/de.cognicrypt.order.editor/README.md create mode 100644 plugins/de.cognicrypt.order.editor/build.properties create mode 100644 plugins/de.cognicrypt.order.editor/icons/icon_order_editor.png create mode 100644 plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore create mode 100644 plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel create mode 100644 plugins/de.cognicrypt.order.editor/plugin.xml create mode 100644 plugins/de.cognicrypt.order.editor/pom.xml create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/AbstractStatemachineRuntimeModule.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/Statemachine.xtextbin create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/StatemachineStandaloneSetupGenerated.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/StatemachineAntlrTokenFileProvider.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/StatemachineParser.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachine.g create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachine.tokens create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineLexer.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineParser.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/scoping/AbstractStatemachineScopeProvider.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/serializer/StatemachineSemanticSequencer.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/serializer/StatemachineSyntacticSequencer.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/services/StatemachineGrammarAccess.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Event.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/State.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachineFactory.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachinePackage.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Transition.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/EventImpl.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StateImpl.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineFactoryImpl.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineImpl.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachinePackageImpl.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/TransitionImpl.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineAdapterFactory.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineSwitch.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/validation/AbstractStatemachineValidator.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/validation/StatemachineConfigurableIssueCodesProvider.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Activator.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Constants.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/GenerateStatemachine.mwe2 create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/StatemachineRuntimeModule.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/StatemachineStandaloneSetup.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/actions/RunOrderEditorHandler.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/config/CryslFile.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/config/StaxParser.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/config/StaxWriter.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/generator/Main.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/generator/StatemachineGenerator.xtend create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/scoping/StatemachineScopeProvider.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/validation/StatemachineValidator.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/wizard/OrderEditorWizard.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/wizard/OrderEditorWizardDialog.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/wizard/PageForOrderDiagramWizard.java create mode 100644 plugins/de.cognicrypt.order.editor/xtend-gen/de/cognicrypt/order/editor/generator/.StatemachineGenerator.java._trace create mode 100644 plugins/de.cognicrypt.order.editor/xtend-gen/de/cognicrypt/order/editor/generator/.StatemachineGenerator.xtendbin create mode 100644 plugins/de.cognicrypt.order.editor/xtend-gen/de/cognicrypt/order/editor/generator/StatemachineGenerator.java diff --git a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/META-INF/MANIFEST.MF b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/META-INF/MANIFEST.MF new file mode 100644 index 000000000..aff35221e --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/META-INF/MANIFEST.MF @@ -0,0 +1,17 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: my.project.design;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: my.project.design.Activator +Bundle-Localization: plugin +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + org.eclipse.core.resources, + org.eclipse.sirius, + org.eclipse.sirius.common.acceleo.aql, + de.cognicrypt.tu.crossing.statemachine.editor;bundle-version="1.0.0" +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-Vendor: %providerName +Automatic-Module-Name: my.project.design diff --git a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/description/project.odesign b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/description/project.odesign new file mode 100644 index 000000000..02170076a --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/description/project.odesign @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/plugin.properties b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/plugin.properties new file mode 100644 index 000000000..27dfa1031 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/plugin.properties @@ -0,0 +1,3 @@ +pluginName = my.project.design +providerName = Eclipse Modeling Project +viewpointName = MyViewpoint diff --git a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/plugin.xml b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/plugin.xml new file mode 100644 index 000000000..d6fa17bca --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/plugin.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Activator.java b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Activator.java new file mode 100644 index 000000000..babfa2bcf --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Activator.java @@ -0,0 +1,68 @@ +package my.project.design; +de.cognicrypt.order.editor\sirius +package de.cognicrypt.order.editor; + +import java.util.HashSet; +import java.util.Set; + +import org.eclipse.sirius.business.api.componentization.ViewpointRegistry; +import org.eclipse.sirius.viewpoint.description.Viewpoint; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends AbstractUIPlugin { + // The plug-in ID + public static final String PLUGIN_ID = "my.project.design"; + + // The shared instance + private static Activator plugin; + + private static Set viewpoints; + + /** + * The constructor + */ + public Activator() { + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + viewpoints = new HashSet(); + viewpoints.addAll(ViewpointRegistry.getInstance().registerFromPlugin(PLUGIN_ID + "/description/project.odesign")); + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext context) throws Exception { + plugin = null; + if (viewpoints != null) { + for (final Viewpoint viewpoint: viewpoints) { + ViewpointRegistry.getInstance().disposeFromPlugin(viewpoint); + } + viewpoints.clear(); + viewpoints = null; + } + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } +} diff --git a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Services.java b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Services.java new file mode 100644 index 000000000..2fb6e08c6 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Services.java @@ -0,0 +1,17 @@ +package my.project.design; + +import org.eclipse.emf.ecore.EObject; + +/** + * The services class used by VSM. + */ +public class Services { + + /** + * See http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.sirius.doc%2Fdoc%2Findex.html&cp=24 for documentation on how to write service methods. + */ + public EObject myService(EObject self, String arg) { + // TODO Auto-generated code + return self; + } +} diff --git a/plugins/de.cognicrypt.order.editor.sirius/my.project.order.diagram.modeling/representations.aird b/plugins/de.cognicrypt.order.editor.sirius/my.project.order.diagram.modeling/representations.aird new file mode 100644 index 000000000..847b21a5d --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/my.project.order.diagram.modeling/representations.aird @@ -0,0 +1,1307 @@ + + + + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.diagram.order/output/Cookie.statemachine + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.diagram.order/output/HMACParameterSpec.statemachine + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.diagram.order/output/KeyManagerFactory.statemachine + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.diagram.order/output/DHParameterSpec.statemachine + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.diagram.order/output/IvParameterSpec.statemachine + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.diagram.order/output/MessageDigest.statemachine + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AeadFactory.statemachine + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/Cookie.statemachine + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AlgorithmParameterGenerator.statemachine + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/BufferedBlockCipher.statemachine + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor/.launch/Generate Statemachine (statemachine) Language Infrastructure.launch b/plugins/de.cognicrypt.order.editor/.launch/Generate Statemachine (statemachine) Language Infrastructure.launch new file mode 100644 index 000000000..d12199f1a --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/.launch/Generate Statemachine (statemachine) Language Infrastructure.launch @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor/META-INF/MANIFEST.MF b/plugins/de.cognicrypt.order.editor/META-INF/MANIFEST.MF new file mode 100644 index 000000000..e23f85715 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/META-INF/MANIFEST.MF @@ -0,0 +1,53 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Order Editor +Bundle-Activator: de.cognicrypt.order.editor.Activator +Bundle-Vendor: Technical University Darmstadt, Paderborn University +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: de.cognicrypt.order.editor; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.eclipse.xtext, + org.eclipse.xtext.xbase, + org.eclipse.equinox.common;bundle-version="3.5.0", + org.eclipse.emf.ecore, + org.eclipse.xtext.common.types, + org.eclipse.xtext.xbase.lib;bundle-version="2.14.0", + org.objectweb.asm;bundle-version="[7.2.0,7.3.0)";resolution:=optional, + org.eclipse.xtext.util, + org.eclipse.emf.common, + org.antlr.runtime;bundle-version="[3.2.0,3.2.1)", + org.eclipse.ui, + org.eclipse.core.runtime, + org.eclipse.emf.mwe2.launch;bundle-version="2.11.2", + org.eclipse.emf.mwe2.runtime;bundle-version="2.11.2", + org.eclipse.xtext.generator, + org.eclipse.xtext.common.types.ui, + org.apache.log4j, + org.apache.commons.logging, + de.cognicrypt.codegenerator;bundle-version="1.0.0", + de.cognicrypt.core, + org.eclipse.ui.workbench, + com.google.gson, + com.google.guava, + org.junit, + de.darmstadt.tu.crossing.CrySL +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-ClassPath: lib/claferchocoig.jar, + lib/dom4j-2.0.0.jar, + . +Export-Package: de.cognicrypt.order.editor.services, + de.cognicrypt.order.editor.parser.antlr, + de.cognicrypt.order.editor, + de.cognicrypt.order.editor.statemachine, + de.cognicrypt.order.editor.statemachine.impl, + de.cognicrypt.order.editor.scoping, + de.cognicrypt.order.editor.serializer, + de.cognicrypt.order.editor.statemachine.util, + de.cognicrypt.order.editor.parser.antlr.internal, + de.cognicrypt.order.editor.validation, + de.cognicrypt.order.editor.generator, + . +Import-Package: org.apache.log4j, + org.eclipse.core.resources, + org.eclipse.jdt.core.dom +Automatic-Module-Name: de.cognicrypt.order.editor diff --git a/plugins/de.cognicrypt.order.editor/README.md b/plugins/de.cognicrypt.order.editor/README.md new file mode 100644 index 000000000..8e093fb61 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/README.md @@ -0,0 +1,24 @@ +# CrySL Visual Order Editor + +The Order Editotr displays the usage pattern of the class as defined in the Order expression of its CrySL rule as a state machine. + +## Set up + +* Clone the project, open Eclipse. +* Clone the [**Crypto-API-Rules**](https://github.com/CROSSINGTUD/Crypto-API-Rules) repository to a folder named "git" in your home directory. + This is required since the class StaxWriter which writes the configuration file needs to access this different repository and therefore accesses the paths relative to home directory by e.g. "\\git\\Crypto-API-Rules\\JavaCryptographicArchitecture\\src". +* Install Sirius (http://www.eclipse.org/sirius) from the Eclipse Marketplace. +* Launch a new runtime from your Eclipse. Click on the black plugin icon "S" in the upper left corner, next to the other buttons for TaskIntegrator and CogniCrypt, + then click on the button "Generate Statemachine Models", which is currently a simple button but should later be replaced by a single crysl rule selection. The + button triggers the generation of the statemachine model resources into the output folder, i.e., "de.cognicrypt.order.editor\output". +* Within the runtime environment, select the Sirius perspective. This opens a model explorer in the left corner. +* Open the Sirius project contained in the plugin relative sirius + path, i.e. "CogniCrypt\plugins\de.cognicrypt.order.editor.sirius". + The project folder "~\CogniCrypt\plugins\de.cognicrypt.order.editor\sirius\my.project.design" + is the Viewpoint Specification Project containing the .odesign file (definition of the modeling workbench), the other project folder + "~\CogniCrypt\plugins\de.cognicrypt.order.editor\sirius\my.project.order.diagram.modeling" is the Modeling project containing the graphical representations created with Sirius. +* To open a diagram, select the file representations.aird from the modeling project. + In the left corner of the new window, named "Models", click on Add > Browse File System + to select a statemachine model from the plugin-relative output folder. The model will + appear in the Models window. Now double click "order" in the Representations window on the right. This opens a new window "Create a new representation" which allows to select a semantic element for a new representation. Here, you can select the model you just added, click on its "Statemachine" model identifier and click on Finish. You can optionally select a new name for the diagram. The representation is opened now and you can play around with the Sirius model editor features to enhace the representation. +* For more information on Sirius, have a look at their, [**tutorial**](https://wiki.eclipse.org/Sirius/Tutorials/StarterTutorial). \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/build.properties b/plugins/de.cognicrypt.order.editor/build.properties new file mode 100644 index 000000000..2587971a6 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/build.properties @@ -0,0 +1,9 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = model/generated/,\ + .,\ + META-INF/,\ + plugin.xml\ + lib/claferchocoig.jar,\ + lib/dom4j-2.0.0.jar diff --git a/plugins/de.cognicrypt.order.editor/icons/icon_order_editor.png b/plugins/de.cognicrypt.order.editor/icons/icon_order_editor.png new file mode 100644 index 0000000000000000000000000000000000000000..829b6bec000700e68b6fc0117c39ee3674b7f500 GIT binary patch literal 336 zcmV-W0k8gvP)4!K~y-6mDD{-LqQY;;4eYa89{Lq(ZYvKN^6TWwpMPyLL_QsBh^UY}F~;JJ7$-LgIdEWL&fGuFotoKbVhihd!6V-0=>K6CeUunautX2V zq5#JjWsh@y;}W$f!1;p5IlEB{iz>)D%3JFPqG2k#gA05Fn%-}KHPb^J;|ka5e1nrf zQ=++o78=2f21zu)VPcL3T6L8VB6L%>JsjY9hHeAeL76%4u|MOkUB?qXgA7NwRrz9o z%|KJCoQ!J9d4^Y&cRDyzSwGj@O-3v%?~^a=E(-A$57P{$S_n5W iVHMl{{*wp1N5UUhcboxh<`!lE0000 + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel new file mode 100644 index 000000000..537d7eb8a --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor/plugin.xml b/plugins/de.cognicrypt.order.editor/plugin.xml new file mode 100644 index 000000000..c3df727a4 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/plugin.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor/pom.xml b/plugins/de.cognicrypt.order.editor/pom.xml new file mode 100644 index 000000000..3f77001da --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/pom.xml @@ -0,0 +1,108 @@ + + + 4.0.0 + de.cognicrypt.order.editor + eclipse-plugin + + de.cognicrypt + de.cognicrypt.parent + 1.0.0-SNAPSHOT + ../../pom.xml + + + + + + org.eclipse.tycho + tycho-maven-plugin + ${tycho-version} + true + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + org.eclipse.tycho + + tycho-packaging-plugin + + + [0.26.0,) + + + build-qualifier + validate-id + validate-version + + + + + + + + + org.eclipse.tycho + + tycho-compiler-plugin + + + [0.26.0,) + + + compile + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + [0.26.0,) + + + test-compile + + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + [0.26.0,) + + + test + + + + + + + + + + + + + + de.cognicrypt + diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/AbstractStatemachineRuntimeModule.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/AbstractStatemachineRuntimeModule.java new file mode 100644 index 000000000..afb215573 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/AbstractStatemachineRuntimeModule.java @@ -0,0 +1,201 @@ +/* + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor; + +import com.google.inject.Binder; +import com.google.inject.Provider; +import com.google.inject.name.Names; +import de.cognicrypt.order.editor.generator.StatemachineGenerator; +import de.cognicrypt.order.editor.parser.antlr.StatemachineAntlrTokenFileProvider; +import de.cognicrypt.order.editor.parser.antlr.StatemachineParser; +import de.cognicrypt.order.editor.parser.antlr.internal.InternalStatemachineLexer; +import de.cognicrypt.order.editor.scoping.StatemachineScopeProvider; +import de.cognicrypt.order.editor.serializer.StatemachineSemanticSequencer; +import de.cognicrypt.order.editor.serializer.StatemachineSyntacticSequencer; +import de.cognicrypt.order.editor.services.StatemachineGrammarAccess; +import de.cognicrypt.order.editor.validation.StatemachineConfigurableIssueCodesProvider; +import de.cognicrypt.order.editor.validation.StatemachineValidator; +import java.util.Properties; +import org.eclipse.xtext.Constants; +import org.eclipse.xtext.IGrammarAccess; +import org.eclipse.xtext.common.types.DefaultCommonTypesRuntimeModule; +import org.eclipse.xtext.common.types.xtext.TypesAwareDefaultGlobalScopeProvider; +import org.eclipse.xtext.generator.IGenerator2; +import org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider; +import org.eclipse.xtext.naming.IQualifiedNameProvider; +import org.eclipse.xtext.parser.IParser; +import org.eclipse.xtext.parser.ITokenToStringConverter; +import org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider; +import org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter; +import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider; +import org.eclipse.xtext.parser.antlr.ITokenDefProvider; +import org.eclipse.xtext.parser.antlr.Lexer; +import org.eclipse.xtext.parser.antlr.LexerBindings; +import org.eclipse.xtext.parser.antlr.LexerProvider; +import org.eclipse.xtext.resource.IContainer; +import org.eclipse.xtext.resource.IResourceDescriptions; +import org.eclipse.xtext.resource.containers.IAllContainersState; +import org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider; +import org.eclipse.xtext.resource.containers.StateBasedContainerManager; +import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider; +import org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions; +import org.eclipse.xtext.scoping.IGlobalScopeProvider; +import org.eclipse.xtext.scoping.IScopeProvider; +import org.eclipse.xtext.scoping.IgnoreCaseLinking; +import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider; +import org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider; +import org.eclipse.xtext.serializer.ISerializer; +import org.eclipse.xtext.serializer.impl.Serializer; +import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer; +import org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer; +import org.eclipse.xtext.service.SingletonBinding; +import org.eclipse.xtext.validation.ConfigurableIssueCodesProvider; + +/** + * Manual modifications go to {@link StatemachineRuntimeModule}. + */ +@SuppressWarnings("all") +public abstract class AbstractStatemachineRuntimeModule extends DefaultCommonTypesRuntimeModule { + + protected Properties properties = null; + + @Override + public void configure(Binder binder) { + properties = tryBindProperties(binder, "de/cognicrypt/order/editor/Statemachine.properties"); + super.configure(binder); + } + + public void configureLanguageName(Binder binder) { + binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("de.cognicrypt.order.editor.Statemachine"); + } + + public void configureFileExtensions(Binder binder) { + if (properties == null || properties.getProperty(Constants.FILE_EXTENSIONS) == null) + binder.bind(String.class).annotatedWith(Names.named(Constants.FILE_EXTENSIONS)).toInstance("statemachine"); + } + + // contributed by org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2 + public ClassLoader bindClassLoaderToInstance() { + return getClass().getClassLoader(); + } + + // contributed by org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2 + public Class bindIGrammarAccess() { + return StatemachineGrammarAccess.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2 + public Class bindISemanticSequencer() { + return StatemachineSemanticSequencer.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2 + public Class bindISyntacticSequencer() { + return StatemachineSyntacticSequencer.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2 + public Class bindISerializer() { + return Serializer.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindIParser() { + return StatemachineParser.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindITokenToStringConverter() { + return AntlrTokenToStringConverter.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindIAntlrTokenFileProvider() { + return StatemachineAntlrTokenFileProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindLexer() { + return InternalStatemachineLexer.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindITokenDefProvider() { + return AntlrTokenDefProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Provider provideInternalStatemachineLexer() { + return LexerProvider.create(InternalStatemachineLexer.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public void configureRuntimeLexer(Binder binder) { + binder.bind(Lexer.class) + .annotatedWith(Names.named(LexerBindings.RUNTIME)) + .to(InternalStatemachineLexer.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2 + @SingletonBinding(eager=true) + public Class bindStatemachineValidator() { + return StatemachineValidator.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2 + public Class bindConfigurableIssueCodesProvider() { + return StatemachineConfigurableIssueCodesProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2 + public Class bindIScopeProvider() { + return StatemachineScopeProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2 + public void configureIScopeProviderDelegate(Binder binder) { + binder.bind(IScopeProvider.class).annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(ImportedNamespaceAwareLocalScopeProvider.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2 + public void configureIgnoreCaseLinking(Binder binder) { + binder.bindConstant().annotatedWith(IgnoreCaseLinking.class).to(false); + } + + // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2 + public Class bindIQualifiedNameProvider() { + return DefaultDeclarativeQualifiedNameProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 + public Class bindIContainer$Manager() { + return StateBasedContainerManager.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 + public Class bindIAllContainersState$Provider() { + return ResourceSetBasedAllContainersStateProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 + public void configureIResourceDescriptions(Binder binder) { + binder.bind(IResourceDescriptions.class).to(ResourceSetBasedResourceDescriptions.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 + public void configureIResourceDescriptionsPersisted(Binder binder) { + binder.bind(IResourceDescriptions.class).annotatedWith(Names.named(ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(ResourceSetBasedResourceDescriptions.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2 + public Class bindIGenerator2() { + return StatemachineGenerator.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.types.TypesGeneratorFragment2 + public Class bindIGlobalScopeProvider() { + return TypesAwareDefaultGlobalScopeProvider.class; + } + +} diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/Statemachine.xtextbin b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/Statemachine.xtextbin new file mode 100644 index 0000000000000000000000000000000000000000..2dab2b3625b02ad893d929c00181a605ef87e29e GIT binary patch literal 4869 zcma)AcYG5^7WV9DSC(Yi7z3dNh(jng@frvT&3Fc5zyup&8*mEY7HMqjkXB-~wlUW) z*K)o0UUMzid+&F-UUI$P<$CY^?t3#U$#Ts7!XMV|%zNMW`s{GKDvT%7E0YbJvG&O@ zEbVsPnVFd`mC5HyWz|&-Cfse^-8{UxHkO5s6&U&zFESxQ= z*pjRohhq6~E}K>UXz`r#%gjzs&UuY-W~E0}P{{dSet0Ucj7|L12)8u`!|X60t%!DPG&${!B4Y_f^bgiT((> z!LnTLc=?=Hb`)VSp33CCayd7iQ$gIalKls~&?BQ8tfcGqkAy+apJ1`Hmk(9odtq)` zl^YQUIp^JK%6LJRf{+Vmtxh|k@~WWxuxuxo(|Em_ok3n~XWGk8DQg`|GRL+OEJZ(Q z)U9b2Y>Ty_~tq=(c5DkiI;>V4{{AungP%~u$s zSJF=!9IIHoUZL0KtC=%@4YHRTP3SnwswHs%4dDd{ZqYBt*07kh)?y8O^ChZ4*Q%>) z6^(;bp)1xw=?W;ty8o|IrdTKxefNkr?VTK?ESI5c$DIJhTVCGIlBwffP*y>$m|Krb z7or+A6>CcSN(6BoUvKeve;?IPL#)kp=ZnrOo2w{t8xVB9k);wu(dXs!woT-lSkhVp zebA$;k;U9aB*OGg#JgEjc38Y2woY?hT9(B+iDnCHN=elAgiqCIH;yYWoC=igO(#(- zDTKTjSUvG-*<8)iEqy_;T&^~#t);s(w@cjUipWpqRQ0-9%H9eWns1mw6QGx}LvVv{ ztCZSyGUply?SN3@Nyuae4)AL$+t*=dC(4v#aaUz=Hb`6(ercXXb$Igk%MX%z7B&) zOOZ9zPpOUtY$}mW=V4P@olVluDi{_-hQWxkHX%tlEeHGLdJkIH8Iy%KE%$E3^@yNu}iLi^P zp8>v9CQIAmSsLC&$3Ghu?jWh>m~OVkbJ5MFg`c;8N6(Ku5-+Iu|H8=s7cC(D z;;R2IG5&*z$X=?IiAKCkJNLF&uhDF;C1Y-8;&t?U+StUz>q-4isJD(CobvTt zh&Z`;0}$45@kW@&aca&NKqb8i$T9I|6UCT#3qfyU;;m+Zi?<;>sS+KP1R4#Fw}Y}B z@pwlinC~Pt6w|vFl76?5hWvX-Y%?C-iwE9=x_Tce1PW)RPxyLfyuTt(A-_Z1xk-$P z(_&Jb7Z=5C;sfMqbSzenWiCEwlJFr)LhbvYDgaMEtYi2Q5bDo)P4!Vwp^U`GD(-$9 z+xPCvPe2TVl8H}Vs&hX@66bYFwu-x8;>x~Fx%xFKQUn>h7i;#=6T#kUc}co|osT*l$O zXx{ITq**`^zf1P@+DUzOlyQt1q3=Pcwg$QH114?o%?FxJ*$-$C{Lp0kN0jZwy5)?4 zMh^4g$K>NZ@Nsor9tM26spT>zWL*5Dnu(uM1$5%5{24TNF!6Ir0?i@(6Ti?$`Y&Nm zVkSDnjm^IzDWppL8hfdNDx6gTeU52Mf1{B||F;Wz@;mb6_mL;C`45oaO5%Tn_~MG= z1XnJ38H4#J^6M@V`g8QTwg)ftez&-1r}zuL?BXM%!vjNyxcF<;xxZ=q|E{z44>Gx( ziGR`;0(~U?3(H*mo0e~3;y-LrqEe|q{Vz+{vVqhkGZNA=0N|87vH`O|#t2>7w7HQ< zCqkETLYIw^Zh|d>Xp%rv8nh|eNE|M?2?PQT!yN&TiiMv7L%7j&6dk?V#pO0Nw~YxjGmZWg%HHmG+kzyTy1(d zde?m`FGud>8t^*(B*o?02xc7-HsT6R%V4@f$Gja?RGoD4N+|CH-FjNh;6DebMCDax zl_D)SfIo(hIXrGOV@|hhH1p*qV&6>c+G{R5BKFRRT`z-ui}v$spgB5dOm@{-;zpKq z86B=&m8UwCmRPz_|mQ33)9zQ#Cjyud5^884>To zYH~a%7PQ4W4!hBca!)dvcFP)H!0 pHIf6Q(?5sgU`2K+2)YZ^-UcoerX$csm`G!d+>9rS{SP}CPgno| literal 0 HcmV?d00001 diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/StatemachineStandaloneSetupGenerated.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/StatemachineStandaloneSetupGenerated.java new file mode 100644 index 000000000..1fa1a38d2 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/StatemachineStandaloneSetupGenerated.java @@ -0,0 +1,42 @@ +/* + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor; + +import com.google.inject.Guice; +import com.google.inject.Injector; +import de.cognicrypt.order.editor.statemachine.StatemachinePackage; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.xtext.ISetup; +import org.eclipse.xtext.resource.IResourceFactory; +import org.eclipse.xtext.resource.IResourceServiceProvider; +import org.eclipse.xtext.xbase.XtypeStandaloneSetup; + +@SuppressWarnings("all") +public class StatemachineStandaloneSetupGenerated implements ISetup { + + @Override + public Injector createInjectorAndDoEMFRegistration() { + XtypeStandaloneSetup.doSetup(); + + Injector injector = createInjector(); + register(injector); + return injector; + } + + public Injector createInjector() { + return Guice.createInjector(new StatemachineRuntimeModule()); + } + + public void register(Injector injector) { + if (!EPackage.Registry.INSTANCE.containsKey("http://www.cognicrypt.de/order/editor/Statemachine")) { + EPackage.Registry.INSTANCE.put("http://www.cognicrypt.de/order/editor/Statemachine", StatemachinePackage.eINSTANCE); + } + IResourceFactory resourceFactory = injector.getInstance(IResourceFactory.class); + IResourceServiceProvider serviceProvider = injector.getInstance(IResourceServiceProvider.class); + + Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("statemachine", resourceFactory); + IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("statemachine", serviceProvider); + } +} diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/StatemachineAntlrTokenFileProvider.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/StatemachineAntlrTokenFileProvider.java new file mode 100644 index 000000000..b49983efc --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/StatemachineAntlrTokenFileProvider.java @@ -0,0 +1,16 @@ +/* + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.parser.antlr; + +import java.io.InputStream; +import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider; + +public class StatemachineAntlrTokenFileProvider implements IAntlrTokenFileProvider { + + @Override + public InputStream getAntlrTokenFile() { + ClassLoader classLoader = getClass().getClassLoader(); + return classLoader.getResourceAsStream("de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachine.tokens"); + } +} diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/StatemachineParser.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/StatemachineParser.java new file mode 100644 index 000000000..e010f9972 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/StatemachineParser.java @@ -0,0 +1,40 @@ +/* + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.parser.antlr; + +import com.google.inject.Inject; +import de.cognicrypt.order.editor.parser.antlr.internal.InternalStatemachineParser; +import de.cognicrypt.order.editor.services.StatemachineGrammarAccess; +import org.eclipse.xtext.parser.antlr.AbstractAntlrParser; +import org.eclipse.xtext.parser.antlr.XtextTokenStream; + +public class StatemachineParser extends AbstractAntlrParser { + + @Inject + private StatemachineGrammarAccess grammarAccess; + + @Override + protected void setInitialHiddenTokens(XtextTokenStream tokenStream) { + tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT"); + } + + + @Override + protected InternalStatemachineParser createParser(XtextTokenStream stream) { + return new InternalStatemachineParser(stream, getGrammarAccess()); + } + + @Override + protected String getDefaultRuleName() { + return "Statemachine"; + } + + public StatemachineGrammarAccess getGrammarAccess() { + return this.grammarAccess; + } + + public void setGrammarAccess(StatemachineGrammarAccess grammarAccess) { + this.grammarAccess = grammarAccess; + } +} diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachine.g b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachine.g new file mode 100644 index 000000000..d79c8e73b --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachine.g @@ -0,0 +1,1364 @@ +/* + * generated by Xtext 2.25.0 + */ +grammar InternalStatemachine; + +options { + superClass=AbstractInternalAntlrParser; +} + +@lexer::header { +package de.cognicrypt.order.editor.parser.antlr.internal; + +// Hack: Use our own Lexer superclass by means of import. +// Currently there is no other way to specify the superclass for the lexer. +import org.eclipse.xtext.parser.antlr.Lexer; +} + +@parser::header { +package de.cognicrypt.order.editor.parser.antlr.internal; + +import org.eclipse.xtext.*; +import org.eclipse.xtext.parser.*; +import org.eclipse.xtext.parser.impl.*; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser; +import org.eclipse.xtext.parser.antlr.XtextTokenStream; +import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; +import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken; +import de.cognicrypt.order.editor.services.StatemachineGrammarAccess; + +} + +@parser::members { + + private StatemachineGrammarAccess grammarAccess; + + public InternalStatemachineParser(TokenStream input, StatemachineGrammarAccess grammarAccess) { + this(input); + this.grammarAccess = grammarAccess; + registerRules(grammarAccess.getGrammar()); + } + + @Override + protected String getFirstRuleName() { + return "Statemachine"; + } + + @Override + protected StatemachineGrammarAccess getGrammarAccess() { + return grammarAccess; + } + +} + +@rulecatch { + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } +} + +// Entry rule entryRuleStatemachine +entryRuleStatemachine returns [EObject current=null]: + { newCompositeNode(grammarAccess.getStatemachineRule()); } + iv_ruleStatemachine=ruleStatemachine + { $current=$iv_ruleStatemachine.current; } + EOF; + +// Rule Statemachine +ruleStatemachine returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + { + $current = forceCreateModelElement( + grammarAccess.getStatemachineAccess().getStatemachineAction_0(), + $current); + } + ) + ( + otherlv_1='events' + { + newLeafNode(otherlv_1, grammarAccess.getStatemachineAccess().getEventsKeyword_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_1_1_0()); + } + lv_events_2_0=ruleEvent + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getStatemachineRule()); + } + add( + $current, + "events", + lv_events_2_0, + "de.cognicrypt.order.editor.Statemachine.Event"); + afterParserOrEnumRuleCall(); + } + ) + )+ + otherlv_3='end' + { + newLeafNode(otherlv_3, grammarAccess.getStatemachineAccess().getEndKeyword_1_2()); + } + )? + ( + ( + { + newCompositeNode(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_2_0()); + } + lv_states_4_0=ruleState + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getStatemachineRule()); + } + add( + $current, + "states", + lv_states_4_0, + "de.cognicrypt.order.editor.Statemachine.State"); + afterParserOrEnumRuleCall(); + } + ) + )* + ( + ( + { + newCompositeNode(grammarAccess.getStatemachineAccess().getTransitionsTransitionParserRuleCall_3_0()); + } + lv_transitions_5_0=ruleTransition + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getStatemachineRule()); + } + add( + $current, + "transitions", + lv_transitions_5_0, + "de.cognicrypt.order.editor.Statemachine.Transition"); + afterParserOrEnumRuleCall(); + } + ) + )* + ) +; + +// Entry rule entryRuleEvent +entryRuleEvent returns [EObject current=null]: + { newCompositeNode(grammarAccess.getEventRule()); } + iv_ruleEvent=ruleEvent + { $current=$iv_ruleEvent.current; } + EOF; + +// Rule Event +ruleEvent returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + lv_name_0_0=RULE_ID + { + newLeafNode(lv_name_0_0, grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getEventRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_0_0, + "org.eclipse.xtext.xbase.Xtype.ID"); + } + ) + ) + ( + ( + lv_code_1_0=RULE_ID + { + newLeafNode(lv_code_1_0, grammarAccess.getEventAccess().getCodeIDTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getEventRule()); + } + setWithLastConsumed( + $current, + "code", + lv_code_1_0, + "org.eclipse.xtext.xbase.Xtype.ID"); + } + ) + ) + ) +; + +// Entry rule entryRuleState +entryRuleState returns [EObject current=null]: + { newCompositeNode(grammarAccess.getStateRule()); } + iv_ruleState=ruleState + { $current=$iv_ruleState.current; } + EOF; + +// Rule State +ruleState returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='state' + { + newLeafNode(otherlv_0, grammarAccess.getStateAccess().getStateKeyword_0()); + } + ( + ( + lv_name_1_0=RULE_ID + { + newLeafNode(lv_name_1_0, grammarAccess.getStateAccess().getNameIDTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getStateRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_1_0, + "org.eclipse.xtext.xbase.Xtype.ID"); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getStateAccess().getTransitionsTransitionParserRuleCall_2_0()); + } + lv_transitions_2_0=ruleTransition + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getStateRule()); + } + add( + $current, + "transitions", + lv_transitions_2_0, + "de.cognicrypt.order.editor.Statemachine.Transition"); + afterParserOrEnumRuleCall(); + } + ) + )* + otherlv_3='end' + { + newLeafNode(otherlv_3, grammarAccess.getStateAccess().getEndKeyword_3()); + } + ) +; + +// Entry rule entryRuleTransition +entryRuleTransition returns [EObject current=null]: + { newCompositeNode(grammarAccess.getTransitionRule()); } + iv_ruleTransition=ruleTransition + { $current=$iv_ruleTransition.current; } + EOF; + +// Rule Transition +ruleTransition returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='transition' + { + newLeafNode(otherlv_0, grammarAccess.getTransitionAccess().getTransitionKeyword_0()); + } + ( + ( + lv_name_1_0=RULE_ID + { + newLeafNode(lv_name_1_0, grammarAccess.getTransitionAccess().getNameIDTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getTransitionRule()); + } + setWithLastConsumed( + $current, + "name", + lv_name_1_0, + "org.eclipse.xtext.xbase.Xtype.ID"); + } + ) + ) + ( + ( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getTransitionRule()); + } + } + otherlv_2=RULE_ID + { + newLeafNode(otherlv_2, grammarAccess.getTransitionAccess().getFromStateStateCrossReference_2_0()); + } + ) + ) + otherlv_3=',' + { + newLeafNode(otherlv_3, grammarAccess.getTransitionAccess().getCommaKeyword_3()); + } + ( + ( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getTransitionRule()); + } + } + otherlv_4=RULE_ID + { + newLeafNode(otherlv_4, grammarAccess.getTransitionAccess().getEventEventCrossReference_4_0()); + } + ) + ) + otherlv_5=',' + { + newLeafNode(otherlv_5, grammarAccess.getTransitionAccess().getCommaKeyword_5()); + } + ( + ( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getTransitionRule()); + } + } + otherlv_6=RULE_ID + { + newLeafNode(otherlv_6, grammarAccess.getTransitionAccess().getEndStateStateCrossReference_6_0()); + } + ) + ) + otherlv_7='end' + { + newLeafNode(otherlv_7, grammarAccess.getTransitionAccess().getEndKeyword_7()); + } + ) +; + +// Entry rule entryRuleJvmTypeReference +entryRuleJvmTypeReference returns [EObject current=null]: + { newCompositeNode(grammarAccess.getJvmTypeReferenceRule()); } + iv_ruleJvmTypeReference=ruleJvmTypeReference + { $current=$iv_ruleJvmTypeReference.current; } + EOF; + +// Rule JvmTypeReference +ruleJvmTypeReference returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + { + newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); + } + this_JvmParameterizedTypeReference_0=ruleJvmParameterizedTypeReference + { + $current = $this_JvmParameterizedTypeReference_0.current; + afterParserOrEnumRuleCall(); + } + ( + (( + ( + ) + ruleArrayBrackets + ) + )=> + ( + ( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0(), + $current); + } + ) + { + newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); + } + ruleArrayBrackets + { + afterParserOrEnumRuleCall(); + } + ) + )* + ) + | + { + newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); + } + this_XFunctionTypeRef_3=ruleXFunctionTypeRef + { + $current = $this_XFunctionTypeRef_3.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleArrayBrackets +entryRuleArrayBrackets returns [String current=null]: + { newCompositeNode(grammarAccess.getArrayBracketsRule()); } + iv_ruleArrayBrackets=ruleArrayBrackets + { $current=$iv_ruleArrayBrackets.current.getText(); } + EOF; + +// Rule ArrayBrackets +ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + kw='[' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); + } + kw=']' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); + } + ) +; + +// Entry rule entryRuleXFunctionTypeRef +entryRuleXFunctionTypeRef returns [EObject current=null]: + { newCompositeNode(grammarAccess.getXFunctionTypeRefRule()); } + iv_ruleXFunctionTypeRef=ruleXFunctionTypeRef + { $current=$iv_ruleXFunctionTypeRef.current; } + EOF; + +// Rule XFunctionTypeRef +ruleXFunctionTypeRef returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + otherlv_0='(' + { + newLeafNode(otherlv_0, grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); + } + ( + ( + ( + { + newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); + } + lv_paramTypes_1_0=ruleJvmTypeReference + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule()); + } + add( + $current, + "paramTypes", + lv_paramTypes_1_0, + "org.eclipse.xtext.xbase.Xtype.JvmTypeReference"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_2=',' + { + newLeafNode(otherlv_2, grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); + } + lv_paramTypes_3_0=ruleJvmTypeReference + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule()); + } + add( + $current, + "paramTypes", + lv_paramTypes_3_0, + "org.eclipse.xtext.xbase.Xtype.JvmTypeReference"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + )? + otherlv_4=')' + { + newLeafNode(otherlv_4, grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); + } + )? + otherlv_5='=>' + { + newLeafNode(otherlv_5, grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); + } + lv_returnType_6_0=ruleJvmTypeReference + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule()); + } + set( + $current, + "returnType", + lv_returnType_6_0, + "org.eclipse.xtext.xbase.Xtype.JvmTypeReference"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleJvmParameterizedTypeReference +entryRuleJvmParameterizedTypeReference returns [EObject current=null]: + { newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceRule()); } + iv_ruleJvmParameterizedTypeReference=ruleJvmParameterizedTypeReference + { $current=$iv_ruleJvmParameterizedTypeReference.current; } + EOF; + +// Rule JvmParameterizedTypeReference +ruleJvmParameterizedTypeReference returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getJvmParameterizedTypeReferenceRule()); + } + } + { + newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); + } + ruleQualifiedName + { + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + ('<')=> + otherlv_1='<' + { + newLeafNode(otherlv_1, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); + } + ) + ( + ( + { + newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); + } + lv_arguments_2_0=ruleJvmArgumentTypeReference + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule()); + } + add( + $current, + "arguments", + lv_arguments_2_0, + "org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_3=',' + { + newLeafNode(otherlv_3, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); + } + lv_arguments_4_0=ruleJvmArgumentTypeReference + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule()); + } + add( + $current, + "arguments", + lv_arguments_4_0, + "org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_5='>' + { + newLeafNode(otherlv_5, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); + } + ( + ( + (( + ( + ) + '.' + ) + )=> + ( + ( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0(), + $current); + } + ) + otherlv_7='.' + { + newLeafNode(otherlv_7, grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); + } + ) + ) + ( + ( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getJvmParameterizedTypeReferenceRule()); + } + } + { + newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); + } + ruleValidID + { + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + ('<')=> + otherlv_9='<' + { + newLeafNode(otherlv_9, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0()); + } + ) + ( + ( + { + newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); + } + lv_arguments_10_0=ruleJvmArgumentTypeReference + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule()); + } + add( + $current, + "arguments", + lv_arguments_10_0, + "org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_11=',' + { + newLeafNode(otherlv_11, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); + } + lv_arguments_12_0=ruleJvmArgumentTypeReference + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule()); + } + add( + $current, + "arguments", + lv_arguments_12_0, + "org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_13='>' + { + newLeafNode(otherlv_13, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); + } + )? + )* + )? + ) +; + +// Entry rule entryRuleJvmArgumentTypeReference +entryRuleJvmArgumentTypeReference returns [EObject current=null]: + { newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceRule()); } + iv_ruleJvmArgumentTypeReference=ruleJvmArgumentTypeReference + { $current=$iv_ruleJvmArgumentTypeReference.current; } + EOF; + +// Rule JvmArgumentTypeReference +ruleJvmArgumentTypeReference returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); + } + this_JvmTypeReference_0=ruleJvmTypeReference + { + $current = $this_JvmTypeReference_0.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); + } + this_JvmWildcardTypeReference_1=ruleJvmWildcardTypeReference + { + $current = $this_JvmWildcardTypeReference_1.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleJvmWildcardTypeReference +entryRuleJvmWildcardTypeReference returns [EObject current=null]: + { newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceRule()); } + iv_ruleJvmWildcardTypeReference=ruleJvmWildcardTypeReference + { $current=$iv_ruleJvmWildcardTypeReference.current; } + EOF; + +// Rule JvmWildcardTypeReference +ruleJvmWildcardTypeReference returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + { + $current = forceCreateModelElement( + grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0(), + $current); + } + ) + otherlv_1='?' + { + newLeafNode(otherlv_1, grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); + } + ( + ( + ( + ( + { + newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); + } + lv_constraints_2_0=ruleJvmUpperBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule()); + } + add( + $current, + "constraints", + lv_constraints_2_0, + "org.eclipse.xtext.xbase.Xtype.JvmUpperBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); + } + lv_constraints_3_0=ruleJvmUpperBoundAnded + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule()); + } + add( + $current, + "constraints", + lv_constraints_3_0, + "org.eclipse.xtext.xbase.Xtype.JvmUpperBoundAnded"); + afterParserOrEnumRuleCall(); + } + ) + )* + ) + | + ( + ( + ( + { + newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); + } + lv_constraints_4_0=ruleJvmLowerBound + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule()); + } + add( + $current, + "constraints", + lv_constraints_4_0, + "org.eclipse.xtext.xbase.Xtype.JvmLowerBound"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); + } + lv_constraints_5_0=ruleJvmLowerBoundAnded + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule()); + } + add( + $current, + "constraints", + lv_constraints_5_0, + "org.eclipse.xtext.xbase.Xtype.JvmLowerBoundAnded"); + afterParserOrEnumRuleCall(); + } + ) + )* + ) + )? + ) +; + +// Entry rule entryRuleJvmUpperBound +entryRuleJvmUpperBound returns [EObject current=null]: + { newCompositeNode(grammarAccess.getJvmUpperBoundRule()); } + iv_ruleJvmUpperBound=ruleJvmUpperBound + { $current=$iv_ruleJvmUpperBound.current; } + EOF; + +// Rule JvmUpperBound +ruleJvmUpperBound returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='extends' + { + newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); + } + lv_typeReference_1_0=ruleJvmTypeReference + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getJvmUpperBoundRule()); + } + set( + $current, + "typeReference", + lv_typeReference_1_0, + "org.eclipse.xtext.xbase.Xtype.JvmTypeReference"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleJvmUpperBoundAnded +entryRuleJvmUpperBoundAnded returns [EObject current=null]: + { newCompositeNode(grammarAccess.getJvmUpperBoundAndedRule()); } + iv_ruleJvmUpperBoundAnded=ruleJvmUpperBoundAnded + { $current=$iv_ruleJvmUpperBoundAnded.current; } + EOF; + +// Rule JvmUpperBoundAnded +ruleJvmUpperBoundAnded returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='&' + { + newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); + } + lv_typeReference_1_0=ruleJvmTypeReference + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getJvmUpperBoundAndedRule()); + } + set( + $current, + "typeReference", + lv_typeReference_1_0, + "org.eclipse.xtext.xbase.Xtype.JvmTypeReference"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleJvmLowerBound +entryRuleJvmLowerBound returns [EObject current=null]: + { newCompositeNode(grammarAccess.getJvmLowerBoundRule()); } + iv_ruleJvmLowerBound=ruleJvmLowerBound + { $current=$iv_ruleJvmLowerBound.current; } + EOF; + +// Rule JvmLowerBound +ruleJvmLowerBound returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='super' + { + newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); + } + lv_typeReference_1_0=ruleJvmTypeReference + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getJvmLowerBoundRule()); + } + set( + $current, + "typeReference", + lv_typeReference_1_0, + "org.eclipse.xtext.xbase.Xtype.JvmTypeReference"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleJvmLowerBoundAnded +entryRuleJvmLowerBoundAnded returns [EObject current=null]: + { newCompositeNode(grammarAccess.getJvmLowerBoundAndedRule()); } + iv_ruleJvmLowerBoundAnded=ruleJvmLowerBoundAnded + { $current=$iv_ruleJvmLowerBoundAnded.current; } + EOF; + +// Rule JvmLowerBoundAnded +ruleJvmLowerBoundAnded returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='&' + { + newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); + } + lv_typeReference_1_0=ruleJvmTypeReference + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getJvmLowerBoundAndedRule()); + } + set( + $current, + "typeReference", + lv_typeReference_1_0, + "org.eclipse.xtext.xbase.Xtype.JvmTypeReference"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleQualifiedName +entryRuleQualifiedName returns [String current=null]: + { newCompositeNode(grammarAccess.getQualifiedNameRule()); } + iv_ruleQualifiedName=ruleQualifiedName + { $current=$iv_ruleQualifiedName.current.getText(); } + EOF; + +// Rule QualifiedName +ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); + } + this_ValidID_0=ruleValidID + { + $current.merge(this_ValidID_0); + } + { + afterParserOrEnumRuleCall(); + } + ( + kw='.' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); + } + { + newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); + } + this_ValidID_2=ruleValidID + { + $current.merge(this_ValidID_2); + } + { + afterParserOrEnumRuleCall(); + } + )* + ) +; + +// Entry rule entryRuleQualifiedNameWithWildcard +entryRuleQualifiedNameWithWildcard returns [String current=null]: + { newCompositeNode(grammarAccess.getQualifiedNameWithWildcardRule()); } + iv_ruleQualifiedNameWithWildcard=ruleQualifiedNameWithWildcard + { $current=$iv_ruleQualifiedNameWithWildcard.current.getText(); } + EOF; + +// Rule QualifiedNameWithWildcard +ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + newCompositeNode(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); + } + this_QualifiedName_0=ruleQualifiedName + { + $current.merge(this_QualifiedName_0); + } + { + afterParserOrEnumRuleCall(); + } + kw='.' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); + } + kw='*' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); + } + ) +; + +// Entry rule entryRuleValidID +entryRuleValidID returns [String current=null]: + { newCompositeNode(grammarAccess.getValidIDRule()); } + iv_ruleValidID=ruleValidID + { $current=$iv_ruleValidID.current.getText(); } + EOF; + +// Rule ValidID +ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + this_ID_0=RULE_ID + { + $current.merge(this_ID_0); + } + { + newLeafNode(this_ID_0, grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); + } +; + +// Entry rule entryRuleXImportDeclaration +entryRuleXImportDeclaration returns [EObject current=null]: + { newCompositeNode(grammarAccess.getXImportDeclarationRule()); } + iv_ruleXImportDeclaration=ruleXImportDeclaration + { $current=$iv_ruleXImportDeclaration.current; } + EOF; + +// Rule XImportDeclaration +ruleXImportDeclaration returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='import' + { + newLeafNode(otherlv_0, grammarAccess.getXImportDeclarationAccess().getImportKeyword_0()); + } + ( + ( + ( + ( + lv_static_1_0='static' + { + newLeafNode(lv_static_1_0, grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getXImportDeclarationRule()); + } + setWithLastConsumed($current, "static", lv_static_1_0 != null, "static"); + } + ) + ) + ( + ( + lv_extension_2_0='extension' + { + newLeafNode(lv_extension_2_0, grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getXImportDeclarationRule()); + } + setWithLastConsumed($current, "extension", lv_extension_2_0 != null, "extension"); + } + ) + )? + ( + ( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getXImportDeclarationRule()); + } + } + { + newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_0_2_0()); + } + ruleQualifiedNameInStaticImport + { + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + ( + lv_wildcard_4_0='*' + { + newLeafNode(lv_wildcard_4_0, grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_1_0_3_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getXImportDeclarationRule()); + } + setWithLastConsumed($current, "wildcard", lv_wildcard_4_0 != null, "*"); + } + ) + ) + | + ( + ( + { + newCompositeNode(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_1_0_3_1_0()); + } + lv_memberName_5_0=ruleValidID + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getXImportDeclarationRule()); + } + set( + $current, + "memberName", + lv_memberName_5_0, + "org.eclipse.xtext.xbase.Xtype.ValidID"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + ) + | + ( + ( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getXImportDeclarationRule()); + } + } + { + newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_1_0()); + } + ruleQualifiedName + { + afterParserOrEnumRuleCall(); + } + ) + ) + | + ( + ( + { + newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_2_0()); + } + lv_importedNamespace_7_0=ruleQualifiedNameWithWildcard + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getXImportDeclarationRule()); + } + set( + $current, + "importedNamespace", + lv_importedNamespace_7_0, + "org.eclipse.xtext.xbase.Xtype.QualifiedNameWithWildcard"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + ( + otherlv_8=';' + { + newLeafNode(otherlv_8, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2()); + } + )? + ) +; + +// Entry rule entryRuleQualifiedNameInStaticImport +entryRuleQualifiedNameInStaticImport returns [String current=null]: + { newCompositeNode(grammarAccess.getQualifiedNameInStaticImportRule()); } + iv_ruleQualifiedNameInStaticImport=ruleQualifiedNameInStaticImport + { $current=$iv_ruleQualifiedNameInStaticImport.current.getText(); } + EOF; + +// Rule QualifiedNameInStaticImport +ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + newCompositeNode(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); + } + this_ValidID_0=ruleValidID + { + $current.merge(this_ValidID_0); + } + { + afterParserOrEnumRuleCall(); + } + kw='.' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); + } + )+ +; + +RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'$'|'_') ('a'..'z'|'A'..'Z'|'$'|'_'|'0'..'9')*; + +RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'?|'\'' ('\\' .|~(('\\'|'\'')))* '\''?); + +RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/'; + +RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?; + +RULE_WS : (' '|'\t'|'\r'|'\n')+; + +RULE_ANY_OTHER : .; diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachine.tokens b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachine.tokens new file mode 100644 index 000000000..1ac4f4fe6 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachine.tokens @@ -0,0 +1,50 @@ +'&'=25 +'('=17 +')'=18 +'*'=27 +','=14 +'.'=22 +';'=31 +'<'=20 +'=>'=19 +'>'=21 +'?'=23 +'['=15 +']'=16 +'end'=11 +'events'=10 +'extends'=24 +'extension'=30 +'import'=28 +'state'=12 +'static'=29 +'super'=26 +'transition'=13 +RULE_ANY_OTHER=9 +RULE_ID=4 +RULE_ML_COMMENT=6 +RULE_SL_COMMENT=7 +RULE_STRING=5 +RULE_WS=8 +T__10=10 +T__11=11 +T__12=12 +T__13=13 +T__14=14 +T__15=15 +T__16=16 +T__17=17 +T__18=18 +T__19=19 +T__20=20 +T__21=21 +T__22=22 +T__23=23 +T__24=24 +T__25=25 +T__26=26 +T__27=27 +T__28=28 +T__29=29 +T__30=30 +T__31=31 diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineLexer.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineLexer.java new file mode 100644 index 000000000..2ca8a9646 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineLexer.java @@ -0,0 +1,1406 @@ +package de.cognicrypt.order.editor.parser.antlr.internal; + +// Hack: Use our own Lexer superclass by means of import. +// Currently there is no other way to specify the superclass for the lexer. +import org.eclipse.xtext.parser.antlr.Lexer; + + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; + +@SuppressWarnings("all") +public class InternalStatemachineLexer extends Lexer { + public static final int RULE_STRING=5; + public static final int RULE_SL_COMMENT=7; + public static final int T__19=19; + public static final int T__15=15; + public static final int T__16=16; + public static final int T__17=17; + public static final int T__18=18; + public static final int T__11=11; + public static final int T__12=12; + public static final int T__13=13; + public static final int T__14=14; + public static final int EOF=-1; + public static final int T__30=30; + public static final int T__31=31; + public static final int T__10=10; + public static final int RULE_ID=4; + public static final int RULE_WS=8; + public static final int RULE_ANY_OTHER=9; + public static final int T__26=26; + public static final int T__27=27; + public static final int T__28=28; + public static final int T__29=29; + public static final int T__22=22; + public static final int RULE_ML_COMMENT=6; + public static final int T__23=23; + public static final int T__24=24; + public static final int T__25=25; + public static final int T__20=20; + public static final int T__21=21; + + // delegates + // delegators + + public InternalStatemachineLexer() {;} + public InternalStatemachineLexer(CharStream input) { + this(input, new RecognizerSharedState()); + } + public InternalStatemachineLexer(CharStream input, RecognizerSharedState state) { + super(input,state); + + } + public String getGrammarFileName() { return "InternalStatemachine.g"; } + + // $ANTLR start "T__10" + public final void mT__10() throws RecognitionException { + try { + int _type = T__10; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:11:7: ( 'events' ) + // InternalStatemachine.g:11:9: 'events' + { + match("events"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__10" + + // $ANTLR start "T__11" + public final void mT__11() throws RecognitionException { + try { + int _type = T__11; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:12:7: ( 'end' ) + // InternalStatemachine.g:12:9: 'end' + { + match("end"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__11" + + // $ANTLR start "T__12" + public final void mT__12() throws RecognitionException { + try { + int _type = T__12; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:13:7: ( 'state' ) + // InternalStatemachine.g:13:9: 'state' + { + match("state"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__12" + + // $ANTLR start "T__13" + public final void mT__13() throws RecognitionException { + try { + int _type = T__13; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:14:7: ( 'transition' ) + // InternalStatemachine.g:14:9: 'transition' + { + match("transition"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__13" + + // $ANTLR start "T__14" + public final void mT__14() throws RecognitionException { + try { + int _type = T__14; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:15:7: ( ',' ) + // InternalStatemachine.g:15:9: ',' + { + match(','); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__14" + + // $ANTLR start "T__15" + public final void mT__15() throws RecognitionException { + try { + int _type = T__15; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:16:7: ( '[' ) + // InternalStatemachine.g:16:9: '[' + { + match('['); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__15" + + // $ANTLR start "T__16" + public final void mT__16() throws RecognitionException { + try { + int _type = T__16; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:17:7: ( ']' ) + // InternalStatemachine.g:17:9: ']' + { + match(']'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__16" + + // $ANTLR start "T__17" + public final void mT__17() throws RecognitionException { + try { + int _type = T__17; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:18:7: ( '(' ) + // InternalStatemachine.g:18:9: '(' + { + match('('); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__17" + + // $ANTLR start "T__18" + public final void mT__18() throws RecognitionException { + try { + int _type = T__18; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:19:7: ( ')' ) + // InternalStatemachine.g:19:9: ')' + { + match(')'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__18" + + // $ANTLR start "T__19" + public final void mT__19() throws RecognitionException { + try { + int _type = T__19; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:20:7: ( '=>' ) + // InternalStatemachine.g:20:9: '=>' + { + match("=>"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__19" + + // $ANTLR start "T__20" + public final void mT__20() throws RecognitionException { + try { + int _type = T__20; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:21:7: ( '<' ) + // InternalStatemachine.g:21:9: '<' + { + match('<'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__20" + + // $ANTLR start "T__21" + public final void mT__21() throws RecognitionException { + try { + int _type = T__21; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:22:7: ( '>' ) + // InternalStatemachine.g:22:9: '>' + { + match('>'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__21" + + // $ANTLR start "T__22" + public final void mT__22() throws RecognitionException { + try { + int _type = T__22; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:23:7: ( '.' ) + // InternalStatemachine.g:23:9: '.' + { + match('.'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__22" + + // $ANTLR start "T__23" + public final void mT__23() throws RecognitionException { + try { + int _type = T__23; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:24:7: ( '?' ) + // InternalStatemachine.g:24:9: '?' + { + match('?'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__23" + + // $ANTLR start "T__24" + public final void mT__24() throws RecognitionException { + try { + int _type = T__24; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:25:7: ( 'extends' ) + // InternalStatemachine.g:25:9: 'extends' + { + match("extends"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__24" + + // $ANTLR start "T__25" + public final void mT__25() throws RecognitionException { + try { + int _type = T__25; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:26:7: ( '&' ) + // InternalStatemachine.g:26:9: '&' + { + match('&'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__25" + + // $ANTLR start "T__26" + public final void mT__26() throws RecognitionException { + try { + int _type = T__26; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:27:7: ( 'super' ) + // InternalStatemachine.g:27:9: 'super' + { + match("super"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__26" + + // $ANTLR start "T__27" + public final void mT__27() throws RecognitionException { + try { + int _type = T__27; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:28:7: ( '*' ) + // InternalStatemachine.g:28:9: '*' + { + match('*'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__27" + + // $ANTLR start "T__28" + public final void mT__28() throws RecognitionException { + try { + int _type = T__28; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:29:7: ( 'import' ) + // InternalStatemachine.g:29:9: 'import' + { + match("import"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__28" + + // $ANTLR start "T__29" + public final void mT__29() throws RecognitionException { + try { + int _type = T__29; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:30:7: ( 'static' ) + // InternalStatemachine.g:30:9: 'static' + { + match("static"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__29" + + // $ANTLR start "T__30" + public final void mT__30() throws RecognitionException { + try { + int _type = T__30; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:31:7: ( 'extension' ) + // InternalStatemachine.g:31:9: 'extension' + { + match("extension"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__30" + + // $ANTLR start "T__31" + public final void mT__31() throws RecognitionException { + try { + int _type = T__31; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:32:7: ( ';' ) + // InternalStatemachine.g:32:9: ';' + { + match(';'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__31" + + // $ANTLR start "RULE_ID" + public final void mRULE_ID() throws RecognitionException { + try { + int _type = RULE_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:1354:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* ) + // InternalStatemachine.g:1354:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* + { + // InternalStatemachine.g:1354:11: ( '^' )? + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0=='^') ) { + alt1=1; + } + switch (alt1) { + case 1 : + // InternalStatemachine.g:1354:11: '^' + { + match('^'); + + } + break; + + } + + if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + // InternalStatemachine.g:1354:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* + loop2: + do { + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0=='$'||(LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // InternalStatemachine.g: + { + if ( input.LA(1)=='$'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop2; + } + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ID" + + // $ANTLR start "RULE_STRING" + public final void mRULE_STRING() throws RecognitionException { + try { + int _type = RULE_STRING; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:1356:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) ) + // InternalStatemachine.g:1356:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) + { + // InternalStatemachine.g:1356:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) + int alt7=2; + int LA7_0 = input.LA(1); + + if ( (LA7_0=='\"') ) { + alt7=1; + } + else if ( (LA7_0=='\'') ) { + alt7=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 7, 0, input); + + throw nvae; + } + switch (alt7) { + case 1 : + // InternalStatemachine.g:1356:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? + { + match('\"'); + // InternalStatemachine.g:1356:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* + loop3: + do { + int alt3=3; + int LA3_0 = input.LA(1); + + if ( (LA3_0=='\\') ) { + alt3=1; + } + else if ( ((LA3_0>='\u0000' && LA3_0<='!')||(LA3_0>='#' && LA3_0<='[')||(LA3_0>=']' && LA3_0<='\uFFFF')) ) { + alt3=2; + } + + + switch (alt3) { + case 1 : + // InternalStatemachine.g:1356:21: '\\\\' . + { + match('\\'); + matchAny(); + + } + break; + case 2 : + // InternalStatemachine.g:1356:28: ~ ( ( '\\\\' | '\"' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop3; + } + } while (true); + + // InternalStatemachine.g:1356:44: ( '\"' )? + int alt4=2; + int LA4_0 = input.LA(1); + + if ( (LA4_0=='\"') ) { + alt4=1; + } + switch (alt4) { + case 1 : + // InternalStatemachine.g:1356:44: '\"' + { + match('\"'); + + } + break; + + } + + + } + break; + case 2 : + // InternalStatemachine.g:1356:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? + { + match('\''); + // InternalStatemachine.g:1356:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* + loop5: + do { + int alt5=3; + int LA5_0 = input.LA(1); + + if ( (LA5_0=='\\') ) { + alt5=1; + } + else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>=']' && LA5_0<='\uFFFF')) ) { + alt5=2; + } + + + switch (alt5) { + case 1 : + // InternalStatemachine.g:1356:55: '\\\\' . + { + match('\\'); + matchAny(); + + } + break; + case 2 : + // InternalStatemachine.g:1356:62: ~ ( ( '\\\\' | '\\'' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop5; + } + } while (true); + + // InternalStatemachine.g:1356:79: ( '\\'' )? + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0=='\'') ) { + alt6=1; + } + switch (alt6) { + case 1 : + // InternalStatemachine.g:1356:79: '\\'' + { + match('\''); + + } + break; + + } + + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_STRING" + + // $ANTLR start "RULE_ML_COMMENT" + public final void mRULE_ML_COMMENT() throws RecognitionException { + try { + int _type = RULE_ML_COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:1358:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // InternalStatemachine.g:1358:19: '/*' ( options {greedy=false; } : . )* '*/' + { + match("/*"); + + // InternalStatemachine.g:1358:24: ( options {greedy=false; } : . )* + loop8: + do { + int alt8=2; + int LA8_0 = input.LA(1); + + if ( (LA8_0=='*') ) { + int LA8_1 = input.LA(2); + + if ( (LA8_1=='/') ) { + alt8=2; + } + else if ( ((LA8_1>='\u0000' && LA8_1<='.')||(LA8_1>='0' && LA8_1<='\uFFFF')) ) { + alt8=1; + } + + + } + else if ( ((LA8_0>='\u0000' && LA8_0<=')')||(LA8_0>='+' && LA8_0<='\uFFFF')) ) { + alt8=1; + } + + + switch (alt8) { + case 1 : + // InternalStatemachine.g:1358:52: . + { + matchAny(); + + } + break; + + default : + break loop8; + } + } while (true); + + match("*/"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ML_COMMENT" + + // $ANTLR start "RULE_SL_COMMENT" + public final void mRULE_SL_COMMENT() throws RecognitionException { + try { + int _type = RULE_SL_COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:1360:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // InternalStatemachine.g:1360:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + { + match("//"); + + // InternalStatemachine.g:1360:24: (~ ( ( '\\n' | '\\r' ) ) )* + loop9: + do { + int alt9=2; + int LA9_0 = input.LA(1); + + if ( ((LA9_0>='\u0000' && LA9_0<='\t')||(LA9_0>='\u000B' && LA9_0<='\f')||(LA9_0>='\u000E' && LA9_0<='\uFFFF')) ) { + alt9=1; + } + + + switch (alt9) { + case 1 : + // InternalStatemachine.g:1360:24: ~ ( ( '\\n' | '\\r' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop9; + } + } while (true); + + // InternalStatemachine.g:1360:40: ( ( '\\r' )? '\\n' )? + int alt11=2; + int LA11_0 = input.LA(1); + + if ( (LA11_0=='\n'||LA11_0=='\r') ) { + alt11=1; + } + switch (alt11) { + case 1 : + // InternalStatemachine.g:1360:41: ( '\\r' )? '\\n' + { + // InternalStatemachine.g:1360:41: ( '\\r' )? + int alt10=2; + int LA10_0 = input.LA(1); + + if ( (LA10_0=='\r') ) { + alt10=1; + } + switch (alt10) { + case 1 : + // InternalStatemachine.g:1360:41: '\\r' + { + match('\r'); + + } + break; + + } + + match('\n'); + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_SL_COMMENT" + + // $ANTLR start "RULE_WS" + public final void mRULE_WS() throws RecognitionException { + try { + int _type = RULE_WS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:1362:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // InternalStatemachine.g:1362:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + { + // InternalStatemachine.g:1362:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + int cnt12=0; + loop12: + do { + int alt12=2; + int LA12_0 = input.LA(1); + + if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) { + alt12=1; + } + + + switch (alt12) { + case 1 : + // InternalStatemachine.g: + { + if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + if ( cnt12 >= 1 ) break loop12; + EarlyExitException eee = + new EarlyExitException(12, input); + throw eee; + } + cnt12++; + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_WS" + + // $ANTLR start "RULE_ANY_OTHER" + public final void mRULE_ANY_OTHER() throws RecognitionException { + try { + int _type = RULE_ANY_OTHER; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:1364:16: ( . ) + // InternalStatemachine.g:1364:18: . + { + matchAny(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ANY_OTHER" + + public void mTokens() throws RecognitionException { + // InternalStatemachine.g:1:8: ( T__10 | 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 | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) + int alt13=28; + alt13 = dfa13.predict(input); + switch (alt13) { + case 1 : + // InternalStatemachine.g:1:10: T__10 + { + mT__10(); + + } + break; + case 2 : + // InternalStatemachine.g:1:16: T__11 + { + mT__11(); + + } + break; + case 3 : + // InternalStatemachine.g:1:22: T__12 + { + mT__12(); + + } + break; + case 4 : + // InternalStatemachine.g:1:28: T__13 + { + mT__13(); + + } + break; + case 5 : + // InternalStatemachine.g:1:34: T__14 + { + mT__14(); + + } + break; + case 6 : + // InternalStatemachine.g:1:40: T__15 + { + mT__15(); + + } + break; + case 7 : + // InternalStatemachine.g:1:46: T__16 + { + mT__16(); + + } + break; + case 8 : + // InternalStatemachine.g:1:52: T__17 + { + mT__17(); + + } + break; + case 9 : + // InternalStatemachine.g:1:58: T__18 + { + mT__18(); + + } + break; + case 10 : + // InternalStatemachine.g:1:64: T__19 + { + mT__19(); + + } + break; + case 11 : + // InternalStatemachine.g:1:70: T__20 + { + mT__20(); + + } + break; + case 12 : + // InternalStatemachine.g:1:76: T__21 + { + mT__21(); + + } + break; + case 13 : + // InternalStatemachine.g:1:82: T__22 + { + mT__22(); + + } + break; + case 14 : + // InternalStatemachine.g:1:88: T__23 + { + mT__23(); + + } + break; + case 15 : + // InternalStatemachine.g:1:94: T__24 + { + mT__24(); + + } + break; + case 16 : + // InternalStatemachine.g:1:100: T__25 + { + mT__25(); + + } + break; + case 17 : + // InternalStatemachine.g:1:106: T__26 + { + mT__26(); + + } + break; + case 18 : + // InternalStatemachine.g:1:112: T__27 + { + mT__27(); + + } + break; + case 19 : + // InternalStatemachine.g:1:118: T__28 + { + mT__28(); + + } + break; + case 20 : + // InternalStatemachine.g:1:124: T__29 + { + mT__29(); + + } + break; + case 21 : + // InternalStatemachine.g:1:130: T__30 + { + mT__30(); + + } + break; + case 22 : + // InternalStatemachine.g:1:136: T__31 + { + mT__31(); + + } + break; + case 23 : + // InternalStatemachine.g:1:142: RULE_ID + { + mRULE_ID(); + + } + break; + case 24 : + // InternalStatemachine.g:1:150: RULE_STRING + { + mRULE_STRING(); + + } + break; + case 25 : + // InternalStatemachine.g:1:162: RULE_ML_COMMENT + { + mRULE_ML_COMMENT(); + + } + break; + case 26 : + // InternalStatemachine.g:1:178: RULE_SL_COMMENT + { + mRULE_SL_COMMENT(); + + } + break; + case 27 : + // InternalStatemachine.g:1:194: RULE_WS + { + mRULE_WS(); + + } + break; + case 28 : + // InternalStatemachine.g:1:202: RULE_ANY_OTHER + { + mRULE_ANY_OTHER(); + + } + break; + + } + + } + + + protected DFA13 dfa13 = new DFA13(this); + static final String DFA13_eotS = + "\1\uffff\3\34\5\uffff\1\30\6\uffff\1\34\1\uffff\1\30\3\uffff\1\30\2\uffff\3\34\1\uffff\3\34\14\uffff\1\34\5\uffff\1\34\1\72\6\34\1\uffff\7\34\1\112\1\34\1\114\2\34\1\117\2\34\1\uffff\1\122\1\uffff\1\34\1\124\1\uffff\1\125\1\34\1\uffff\1\34\2\uffff\2\34\1\132\1\34\1\uffff\1\134\1\uffff"; + static final String DFA13_eofS = + "\135\uffff"; + static final String DFA13_minS = + "\1\0\1\156\1\164\1\162\5\uffff\1\76\6\uffff\1\155\1\uffff\1\44\3\uffff\1\52\2\uffff\1\145\1\144\1\164\1\uffff\1\141\1\160\1\141\14\uffff\1\160\5\uffff\1\156\1\44\1\145\1\164\1\145\1\156\1\157\1\164\1\uffff\1\156\1\145\1\162\1\163\1\162\1\163\1\144\1\44\1\143\1\44\1\151\1\164\1\44\1\163\1\151\1\uffff\1\44\1\uffff\1\164\1\44\1\uffff\1\44\1\157\1\uffff\1\151\2\uffff\1\156\1\157\1\44\1\156\1\uffff\1\44\1\uffff"; + static final String DFA13_maxS = + "\1\uffff\1\170\1\165\1\162\5\uffff\1\76\6\uffff\1\155\1\uffff\1\172\3\uffff\1\57\2\uffff\1\145\1\144\1\164\1\uffff\1\141\1\160\1\141\14\uffff\1\160\5\uffff\1\156\1\172\1\145\1\164\1\145\1\156\1\157\1\164\1\uffff\1\156\1\151\1\162\1\163\1\162\2\163\1\172\1\143\1\172\1\151\1\164\1\172\1\163\1\151\1\uffff\1\172\1\uffff\1\164\1\172\1\uffff\1\172\1\157\1\uffff\1\151\2\uffff\1\156\1\157\1\172\1\156\1\uffff\1\172\1\uffff"; + static final String DFA13_acceptS = + "\4\uffff\1\5\1\6\1\7\1\10\1\11\1\uffff\1\13\1\14\1\15\1\16\1\20\1\22\1\uffff\1\26\1\uffff\1\27\2\30\1\uffff\1\33\1\34\3\uffff\1\27\3\uffff\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\20\1\22\1\uffff\1\26\1\30\1\31\1\32\1\33\10\uffff\1\2\17\uffff\1\3\1\uffff\1\21\2\uffff\1\1\2\uffff\1\24\1\uffff\1\23\1\17\4\uffff\1\25\1\uffff\1\4"; + static final String DFA13_specialS = + "\1\0\134\uffff}>"; + static final String[] DFA13_transitionS = { + "\11\30\2\27\2\30\1\27\22\30\1\27\1\30\1\24\1\30\1\23\1\30\1\16\1\25\1\7\1\10\1\17\1\30\1\4\1\30\1\14\1\26\13\30\1\21\1\12\1\11\1\13\1\15\1\30\32\23\1\5\1\30\1\6\1\22\1\23\1\30\4\23\1\1\3\23\1\20\11\23\1\2\1\3\6\23\uff85\30", + "\1\32\7\uffff\1\31\1\uffff\1\33", + "\1\35\1\36", + "\1\37", + "", + "", + "", + "", + "", + "\1\45", + "", + "", + "", + "", + "", + "", + "\1\54", + "", + "\1\34\34\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "", + "", + "", + "\1\57\4\uffff\1\60", + "", + "", + "\1\62", + "\1\63", + "\1\64", + "", + "\1\65", + "\1\66", + "\1\67", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\70", + "", + "", + "", + "", + "", + "\1\71", + "\1\34\13\uffff\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\1\73", + "\1\74", + "\1\75", + "\1\76", + "\1\77", + "\1\100", + "", + "\1\101", + "\1\102\3\uffff\1\103", + "\1\104", + "\1\105", + "\1\106", + "\1\107", + "\1\110\16\uffff\1\111", + "\1\34\13\uffff\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\1\113", + "\1\34\13\uffff\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\1\115", + "\1\116", + "\1\34\13\uffff\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\1\120", + "\1\121", + "", + "\1\34\13\uffff\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "", + "\1\123", + "\1\34\13\uffff\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "", + "\1\34\13\uffff\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\1\126", + "", + "\1\127", + "", + "", + "\1\130", + "\1\131", + "\1\34\13\uffff\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\1\133", + "", + "\1\34\13\uffff\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "" + }; + + static final short[] DFA13_eot = DFA.unpackEncodedString(DFA13_eotS); + static final short[] DFA13_eof = DFA.unpackEncodedString(DFA13_eofS); + static final char[] DFA13_min = DFA.unpackEncodedStringToUnsignedChars(DFA13_minS); + static final char[] DFA13_max = DFA.unpackEncodedStringToUnsignedChars(DFA13_maxS); + static final short[] DFA13_accept = DFA.unpackEncodedString(DFA13_acceptS); + static final short[] DFA13_special = DFA.unpackEncodedString(DFA13_specialS); + static final short[][] DFA13_transition; + + static { + int numStates = DFA13_transitionS.length; + DFA13_transition = new short[numStates][]; + for (int i=0; i') ) {s = 11;} + + else if ( (LA13_0=='.') ) {s = 12;} + + else if ( (LA13_0=='?') ) {s = 13;} + + else if ( (LA13_0=='&') ) {s = 14;} + + else if ( (LA13_0=='*') ) {s = 15;} + + else if ( (LA13_0=='i') ) {s = 16;} + + else if ( (LA13_0==';') ) {s = 17;} + + else if ( (LA13_0=='^') ) {s = 18;} + + else if ( (LA13_0=='$'||(LA13_0>='A' && LA13_0<='Z')||LA13_0=='_'||(LA13_0>='a' && LA13_0<='d')||(LA13_0>='f' && LA13_0<='h')||(LA13_0>='j' && LA13_0<='r')||(LA13_0>='u' && LA13_0<='z')) ) {s = 19;} + + else if ( (LA13_0=='\"') ) {s = 20;} + + else if ( (LA13_0=='\'') ) {s = 21;} + + else if ( (LA13_0=='/') ) {s = 22;} + + else if ( ((LA13_0>='\t' && LA13_0<='\n')||LA13_0=='\r'||LA13_0==' ') ) {s = 23;} + + else if ( ((LA13_0>='\u0000' && LA13_0<='\b')||(LA13_0>='\u000B' && LA13_0<='\f')||(LA13_0>='\u000E' && LA13_0<='\u001F')||LA13_0=='!'||LA13_0=='#'||LA13_0=='%'||LA13_0=='+'||LA13_0=='-'||(LA13_0>='0' && LA13_0<=':')||LA13_0=='@'||LA13_0=='\\'||LA13_0=='`'||(LA13_0>='{' && LA13_0<='\uFFFF')) ) {s = 24;} + + if ( s>=0 ) return s; + break; + } + NoViableAltException nvae = + new NoViableAltException(getDescription(), 13, _s, input); + error(nvae); + throw nvae; + } + } + + +} \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineParser.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineParser.java new file mode 100644 index 000000000..21143e945 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineParser.java @@ -0,0 +1,4075 @@ +package de.cognicrypt.order.editor.parser.antlr.internal; + +import org.eclipse.xtext.*; +import org.eclipse.xtext.parser.*; +import org.eclipse.xtext.parser.impl.*; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser; +import org.eclipse.xtext.parser.antlr.XtextTokenStream; +import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; +import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken; +import de.cognicrypt.order.editor.services.StatemachineGrammarAccess; + + + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; +@SuppressWarnings("all") +public class InternalStatemachineParser extends AbstractInternalAntlrParser { + public static final String[] tokenNames = new String[] { + "", "", "", "", "RULE_ID", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'events'", "'end'", "'state'", "'transition'", "','", "'['", "']'", "'('", "')'", "'=>'", "'<'", "'>'", "'.'", "'?'", "'extends'", "'&'", "'super'", "'*'", "'import'", "'static'", "'extension'", "';'" + }; + public static final int RULE_STRING=5; + public static final int RULE_SL_COMMENT=7; + public static final int T__19=19; + public static final int T__15=15; + public static final int T__16=16; + public static final int T__17=17; + public static final int T__18=18; + public static final int T__11=11; + public static final int T__12=12; + public static final int T__13=13; + public static final int T__14=14; + public static final int EOF=-1; + public static final int T__30=30; + public static final int T__31=31; + public static final int T__10=10; + public static final int RULE_ID=4; + public static final int RULE_WS=8; + public static final int RULE_ANY_OTHER=9; + public static final int T__26=26; + public static final int T__27=27; + public static final int T__28=28; + public static final int T__29=29; + public static final int T__22=22; + public static final int RULE_ML_COMMENT=6; + public static final int T__23=23; + public static final int T__24=24; + public static final int T__25=25; + public static final int T__20=20; + public static final int T__21=21; + + // delegates + // delegators + + + public InternalStatemachineParser(TokenStream input) { + this(input, new RecognizerSharedState()); + } + public InternalStatemachineParser(TokenStream input, RecognizerSharedState state) { + super(input, state); + + } + + + public String[] getTokenNames() { return InternalStatemachineParser.tokenNames; } + public String getGrammarFileName() { return "InternalStatemachine.g"; } + + + + private StatemachineGrammarAccess grammarAccess; + + public InternalStatemachineParser(TokenStream input, StatemachineGrammarAccess grammarAccess) { + this(input); + this.grammarAccess = grammarAccess; + registerRules(grammarAccess.getGrammar()); + } + + @Override + protected String getFirstRuleName() { + return "Statemachine"; + } + + @Override + protected StatemachineGrammarAccess getGrammarAccess() { + return grammarAccess; + } + + + + + // $ANTLR start "entryRuleStatemachine" + // InternalStatemachine.g:64:1: entryRuleStatemachine returns [EObject current=null] : iv_ruleStatemachine= ruleStatemachine EOF ; + public final EObject entryRuleStatemachine() throws RecognitionException { + EObject current = null; + + EObject iv_ruleStatemachine = null; + + + try { + // InternalStatemachine.g:64:53: (iv_ruleStatemachine= ruleStatemachine EOF ) + // InternalStatemachine.g:65:2: iv_ruleStatemachine= ruleStatemachine EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getStatemachineRule()); + } + pushFollow(FOLLOW_1); + iv_ruleStatemachine=ruleStatemachine(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleStatemachine; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleStatemachine" + + + // $ANTLR start "ruleStatemachine" + // InternalStatemachine.g:71:1: ruleStatemachine returns [EObject current=null] : ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_transitions_5_0= ruleTransition ) )* ) ; + public final EObject ruleStatemachine() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + EObject lv_events_2_0 = null; + + EObject lv_states_4_0 = null; + + EObject lv_transitions_5_0 = null; + + + + enterRule(); + + try { + // InternalStatemachine.g:77:2: ( ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_transitions_5_0= ruleTransition ) )* ) ) + // InternalStatemachine.g:78:2: ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_transitions_5_0= ruleTransition ) )* ) + { + // InternalStatemachine.g:78:2: ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_transitions_5_0= ruleTransition ) )* ) + // InternalStatemachine.g:79:3: () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_transitions_5_0= ruleTransition ) )* + { + // InternalStatemachine.g:79:3: () + // InternalStatemachine.g:80:4: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getStatemachineAccess().getStatemachineAction_0(), + current); + + } + + } + + // InternalStatemachine.g:86:3: (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0==10) ) { + alt2=1; + } + switch (alt2) { + case 1 : + // InternalStatemachine.g:87:4: otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' + { + otherlv_1=(Token)match(input,10,FOLLOW_3); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getStatemachineAccess().getEventsKeyword_1_0()); + + } + // InternalStatemachine.g:91:4: ( (lv_events_2_0= ruleEvent ) )+ + int cnt1=0; + loop1: + do { + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0==RULE_ID) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // InternalStatemachine.g:92:5: (lv_events_2_0= ruleEvent ) + { + // InternalStatemachine.g:92:5: (lv_events_2_0= ruleEvent ) + // InternalStatemachine.g:93:6: lv_events_2_0= ruleEvent + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_1_1_0()); + + } + pushFollow(FOLLOW_4); + lv_events_2_0=ruleEvent(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getStatemachineRule()); + } + add( + current, + "events", + lv_events_2_0, + "de.cognicrypt.order.editor.Statemachine.Event"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + break; + + default : + if ( cnt1 >= 1 ) break loop1; + if (state.backtracking>0) {state.failed=true; return current;} + EarlyExitException eee = + new EarlyExitException(1, input); + throw eee; + } + cnt1++; + } while (true); + + otherlv_3=(Token)match(input,11,FOLLOW_5); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getStatemachineAccess().getEndKeyword_1_2()); + + } + + } + break; + + } + + // InternalStatemachine.g:115:3: ( (lv_states_4_0= ruleState ) )* + loop3: + do { + int alt3=2; + int LA3_0 = input.LA(1); + + if ( (LA3_0==12) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // InternalStatemachine.g:116:4: (lv_states_4_0= ruleState ) + { + // InternalStatemachine.g:116:4: (lv_states_4_0= ruleState ) + // InternalStatemachine.g:117:5: lv_states_4_0= ruleState + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_2_0()); + + } + pushFollow(FOLLOW_5); + lv_states_4_0=ruleState(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getStatemachineRule()); + } + add( + current, + "states", + lv_states_4_0, + "de.cognicrypt.order.editor.Statemachine.State"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + break; + + default : + break loop3; + } + } while (true); + + // InternalStatemachine.g:134:3: ( (lv_transitions_5_0= ruleTransition ) )* + loop4: + do { + int alt4=2; + int LA4_0 = input.LA(1); + + if ( (LA4_0==13) ) { + alt4=1; + } + + + switch (alt4) { + case 1 : + // InternalStatemachine.g:135:4: (lv_transitions_5_0= ruleTransition ) + { + // InternalStatemachine.g:135:4: (lv_transitions_5_0= ruleTransition ) + // InternalStatemachine.g:136:5: lv_transitions_5_0= ruleTransition + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatemachineAccess().getTransitionsTransitionParserRuleCall_3_0()); + + } + pushFollow(FOLLOW_6); + lv_transitions_5_0=ruleTransition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getStatemachineRule()); + } + add( + current, + "transitions", + lv_transitions_5_0, + "de.cognicrypt.order.editor.Statemachine.Transition"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + break; + + default : + break loop4; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleStatemachine" + + + // $ANTLR start "entryRuleEvent" + // InternalStatemachine.g:157:1: entryRuleEvent returns [EObject current=null] : iv_ruleEvent= ruleEvent EOF ; + public final EObject entryRuleEvent() throws RecognitionException { + EObject current = null; + + EObject iv_ruleEvent = null; + + + try { + // InternalStatemachine.g:157:46: (iv_ruleEvent= ruleEvent EOF ) + // InternalStatemachine.g:158:2: iv_ruleEvent= ruleEvent EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getEventRule()); + } + pushFollow(FOLLOW_1); + iv_ruleEvent=ruleEvent(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleEvent; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleEvent" + + + // $ANTLR start "ruleEvent" + // InternalStatemachine.g:164:1: ruleEvent returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) ; + public final EObject ruleEvent() throws RecognitionException { + EObject current = null; + + Token lv_name_0_0=null; + Token lv_code_1_0=null; + + + enterRule(); + + try { + // InternalStatemachine.g:170:2: ( ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) ) + // InternalStatemachine.g:171:2: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) + { + // InternalStatemachine.g:171:2: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) + // InternalStatemachine.g:172:3: ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) + { + // InternalStatemachine.g:172:3: ( (lv_name_0_0= RULE_ID ) ) + // InternalStatemachine.g:173:4: (lv_name_0_0= RULE_ID ) + { + // InternalStatemachine.g:173:4: (lv_name_0_0= RULE_ID ) + // InternalStatemachine.g:174:5: lv_name_0_0= RULE_ID + { + lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_3); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_0_0, grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getEventRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_0_0, + "org.eclipse.xtext.xbase.Xtype.ID"); + + } + + } + + + } + + // InternalStatemachine.g:190:3: ( (lv_code_1_0= RULE_ID ) ) + // InternalStatemachine.g:191:4: (lv_code_1_0= RULE_ID ) + { + // InternalStatemachine.g:191:4: (lv_code_1_0= RULE_ID ) + // InternalStatemachine.g:192:5: lv_code_1_0= RULE_ID + { + lv_code_1_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_code_1_0, grammarAccess.getEventAccess().getCodeIDTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getEventRule()); + } + setWithLastConsumed( + current, + "code", + lv_code_1_0, + "org.eclipse.xtext.xbase.Xtype.ID"); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleEvent" + + + // $ANTLR start "entryRuleState" + // InternalStatemachine.g:212:1: entryRuleState returns [EObject current=null] : iv_ruleState= ruleState EOF ; + public final EObject entryRuleState() throws RecognitionException { + EObject current = null; + + EObject iv_ruleState = null; + + + try { + // InternalStatemachine.g:212:46: (iv_ruleState= ruleState EOF ) + // InternalStatemachine.g:213:2: iv_ruleState= ruleState EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getStateRule()); + } + pushFollow(FOLLOW_1); + iv_ruleState=ruleState(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleState; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleState" + + + // $ANTLR start "ruleState" + // InternalStatemachine.g:219:1: ruleState returns [EObject current=null] : (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( (lv_transitions_2_0= ruleTransition ) )* otherlv_3= 'end' ) ; + public final EObject ruleState() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_name_1_0=null; + Token otherlv_3=null; + EObject lv_transitions_2_0 = null; + + + + enterRule(); + + try { + // InternalStatemachine.g:225:2: ( (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( (lv_transitions_2_0= ruleTransition ) )* otherlv_3= 'end' ) ) + // InternalStatemachine.g:226:2: (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( (lv_transitions_2_0= ruleTransition ) )* otherlv_3= 'end' ) + { + // InternalStatemachine.g:226:2: (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( (lv_transitions_2_0= ruleTransition ) )* otherlv_3= 'end' ) + // InternalStatemachine.g:227:3: otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( (lv_transitions_2_0= ruleTransition ) )* otherlv_3= 'end' + { + otherlv_0=(Token)match(input,12,FOLLOW_3); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getStateAccess().getStateKeyword_0()); + + } + // InternalStatemachine.g:231:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalStatemachine.g:232:4: (lv_name_1_0= RULE_ID ) + { + // InternalStatemachine.g:232:4: (lv_name_1_0= RULE_ID ) + // InternalStatemachine.g:233:5: lv_name_1_0= RULE_ID + { + lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_7); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_1_0, grammarAccess.getStateAccess().getNameIDTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getStateRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_1_0, + "org.eclipse.xtext.xbase.Xtype.ID"); + + } + + } + + + } + + // InternalStatemachine.g:249:3: ( (lv_transitions_2_0= ruleTransition ) )* + loop5: + do { + int alt5=2; + int LA5_0 = input.LA(1); + + if ( (LA5_0==13) ) { + alt5=1; + } + + + switch (alt5) { + case 1 : + // InternalStatemachine.g:250:4: (lv_transitions_2_0= ruleTransition ) + { + // InternalStatemachine.g:250:4: (lv_transitions_2_0= ruleTransition ) + // InternalStatemachine.g:251:5: lv_transitions_2_0= ruleTransition + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStateAccess().getTransitionsTransitionParserRuleCall_2_0()); + + } + pushFollow(FOLLOW_7); + lv_transitions_2_0=ruleTransition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getStateRule()); + } + add( + current, + "transitions", + lv_transitions_2_0, + "de.cognicrypt.order.editor.Statemachine.Transition"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + break; + + default : + break loop5; + } + } while (true); + + otherlv_3=(Token)match(input,11,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getStateAccess().getEndKeyword_3()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleState" + + + // $ANTLR start "entryRuleTransition" + // InternalStatemachine.g:276:1: entryRuleTransition returns [EObject current=null] : iv_ruleTransition= ruleTransition EOF ; + public final EObject entryRuleTransition() throws RecognitionException { + EObject current = null; + + EObject iv_ruleTransition = null; + + + try { + // InternalStatemachine.g:276:51: (iv_ruleTransition= ruleTransition EOF ) + // InternalStatemachine.g:277:2: iv_ruleTransition= ruleTransition EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getTransitionRule()); + } + pushFollow(FOLLOW_1); + iv_ruleTransition=ruleTransition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleTransition; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleTransition" + + + // $ANTLR start "ruleTransition" + // InternalStatemachine.g:283:1: ruleTransition returns [EObject current=null] : (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) ; + public final EObject ruleTransition() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_name_1_0=null; + Token otherlv_2=null; + Token otherlv_3=null; + Token otherlv_4=null; + Token otherlv_5=null; + Token otherlv_6=null; + Token otherlv_7=null; + + + enterRule(); + + try { + // InternalStatemachine.g:289:2: ( (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) ) + // InternalStatemachine.g:290:2: (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) + { + // InternalStatemachine.g:290:2: (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) + // InternalStatemachine.g:291:3: otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' + { + otherlv_0=(Token)match(input,13,FOLLOW_3); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getTransitionAccess().getTransitionKeyword_0()); + + } + // InternalStatemachine.g:295:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalStatemachine.g:296:4: (lv_name_1_0= RULE_ID ) + { + // InternalStatemachine.g:296:4: (lv_name_1_0= RULE_ID ) + // InternalStatemachine.g:297:5: lv_name_1_0= RULE_ID + { + lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_3); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_1_0, grammarAccess.getTransitionAccess().getNameIDTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getTransitionRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_1_0, + "org.eclipse.xtext.xbase.Xtype.ID"); + + } + + } + + + } + + // InternalStatemachine.g:313:3: ( (otherlv_2= RULE_ID ) ) + // InternalStatemachine.g:314:4: (otherlv_2= RULE_ID ) + { + // InternalStatemachine.g:314:4: (otherlv_2= RULE_ID ) + // InternalStatemachine.g:315:5: otherlv_2= RULE_ID + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getTransitionRule()); + } + + } + otherlv_2=(Token)match(input,RULE_ID,FOLLOW_8); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getTransitionAccess().getFromStateStateCrossReference_2_0()); + + } + + } + + + } + + otherlv_3=(Token)match(input,14,FOLLOW_3); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getTransitionAccess().getCommaKeyword_3()); + + } + // InternalStatemachine.g:330:3: ( (otherlv_4= RULE_ID ) ) + // InternalStatemachine.g:331:4: (otherlv_4= RULE_ID ) + { + // InternalStatemachine.g:331:4: (otherlv_4= RULE_ID ) + // InternalStatemachine.g:332:5: otherlv_4= RULE_ID + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getTransitionRule()); + } + + } + otherlv_4=(Token)match(input,RULE_ID,FOLLOW_8); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getTransitionAccess().getEventEventCrossReference_4_0()); + + } + + } + + + } + + otherlv_5=(Token)match(input,14,FOLLOW_3); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getTransitionAccess().getCommaKeyword_5()); + + } + // InternalStatemachine.g:347:3: ( (otherlv_6= RULE_ID ) ) + // InternalStatemachine.g:348:4: (otherlv_6= RULE_ID ) + { + // InternalStatemachine.g:348:4: (otherlv_6= RULE_ID ) + // InternalStatemachine.g:349:5: otherlv_6= RULE_ID + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getTransitionRule()); + } + + } + otherlv_6=(Token)match(input,RULE_ID,FOLLOW_9); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getTransitionAccess().getEndStateStateCrossReference_6_0()); + + } + + } + + + } + + otherlv_7=(Token)match(input,11,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getTransitionAccess().getEndKeyword_7()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleTransition" + + + // $ANTLR start "entryRuleJvmTypeReference" + // InternalStatemachine.g:368:1: entryRuleJvmTypeReference returns [EObject current=null] : iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ; + public final EObject entryRuleJvmTypeReference() throws RecognitionException { + EObject current = null; + + EObject iv_ruleJvmTypeReference = null; + + + try { + // InternalStatemachine.g:368:57: (iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ) + // InternalStatemachine.g:369:2: iv_ruleJvmTypeReference= ruleJvmTypeReference EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getJvmTypeReferenceRule()); + } + pushFollow(FOLLOW_1); + iv_ruleJvmTypeReference=ruleJvmTypeReference(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleJvmTypeReference; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleJvmTypeReference" + + + // $ANTLR start "ruleJvmTypeReference" + // InternalStatemachine.g:375:1: ruleJvmTypeReference returns [EObject current=null] : ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ; + public final EObject ruleJvmTypeReference() throws RecognitionException { + EObject current = null; + + EObject this_JvmParameterizedTypeReference_0 = null; + + EObject this_XFunctionTypeRef_3 = null; + + + + enterRule(); + + try { + // InternalStatemachine.g:381:2: ( ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ) + // InternalStatemachine.g:382:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) + { + // InternalStatemachine.g:382:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) + int alt7=2; + int LA7_0 = input.LA(1); + + if ( (LA7_0==RULE_ID) ) { + alt7=1; + } + else if ( (LA7_0==17||LA7_0==19) ) { + alt7=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 7, 0, input); + + throw nvae; + } + switch (alt7) { + case 1 : + // InternalStatemachine.g:383:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) + { + // InternalStatemachine.g:383:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) + // InternalStatemachine.g:384:4: this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); + + } + pushFollow(FOLLOW_10); + this_JvmParameterizedTypeReference_0=ruleJvmParameterizedTypeReference(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_JvmParameterizedTypeReference_0; + afterParserOrEnumRuleCall(); + + } + // InternalStatemachine.g:392:4: ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* + loop6: + do { + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0==15) && (synpred1_InternalStatemachine())) { + alt6=1; + } + + + switch (alt6) { + case 1 : + // InternalStatemachine.g:393:5: ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) + { + // InternalStatemachine.g:399:5: ( () ruleArrayBrackets ) + // InternalStatemachine.g:400:6: () ruleArrayBrackets + { + // InternalStatemachine.g:400:6: () + // InternalStatemachine.g:401:7: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0(), + current); + + } + + } + + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); + + } + pushFollow(FOLLOW_10); + ruleArrayBrackets(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + afterParserOrEnumRuleCall(); + + } + + } + + + } + break; + + default : + break loop6; + } + } while (true); + + + } + + + } + break; + case 2 : + // InternalStatemachine.g:418:3: this_XFunctionTypeRef_3= ruleXFunctionTypeRef + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); + + } + pushFollow(FOLLOW_2); + this_XFunctionTypeRef_3=ruleXFunctionTypeRef(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_XFunctionTypeRef_3; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleJvmTypeReference" + + + // $ANTLR start "entryRuleArrayBrackets" + // InternalStatemachine.g:430:1: entryRuleArrayBrackets returns [String current=null] : iv_ruleArrayBrackets= ruleArrayBrackets EOF ; + public final String entryRuleArrayBrackets() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleArrayBrackets = null; + + + try { + // InternalStatemachine.g:430:53: (iv_ruleArrayBrackets= ruleArrayBrackets EOF ) + // InternalStatemachine.g:431:2: iv_ruleArrayBrackets= ruleArrayBrackets EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getArrayBracketsRule()); + } + pushFollow(FOLLOW_1); + iv_ruleArrayBrackets=ruleArrayBrackets(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleArrayBrackets.getText(); + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleArrayBrackets" + + + // $ANTLR start "ruleArrayBrackets" + // InternalStatemachine.g:437:1: ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '[' kw= ']' ) ; + public final AntlrDatatypeRuleToken ruleArrayBrackets() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token kw=null; + + + enterRule(); + + try { + // InternalStatemachine.g:443:2: ( (kw= '[' kw= ']' ) ) + // InternalStatemachine.g:444:2: (kw= '[' kw= ']' ) + { + // InternalStatemachine.g:444:2: (kw= '[' kw= ']' ) + // InternalStatemachine.g:445:3: kw= '[' kw= ']' + { + kw=(Token)match(input,15,FOLLOW_11); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current.merge(kw); + newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); + + } + kw=(Token)match(input,16,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current.merge(kw); + newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleArrayBrackets" + + + // $ANTLR start "entryRuleXFunctionTypeRef" + // InternalStatemachine.g:459:1: entryRuleXFunctionTypeRef returns [EObject current=null] : iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ; + public final EObject entryRuleXFunctionTypeRef() throws RecognitionException { + EObject current = null; + + EObject iv_ruleXFunctionTypeRef = null; + + + try { + // InternalStatemachine.g:459:57: (iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ) + // InternalStatemachine.g:460:2: iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getXFunctionTypeRefRule()); + } + pushFollow(FOLLOW_1); + iv_ruleXFunctionTypeRef=ruleXFunctionTypeRef(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleXFunctionTypeRef; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleXFunctionTypeRef" + + + // $ANTLR start "ruleXFunctionTypeRef" + // InternalStatemachine.g:466:1: ruleXFunctionTypeRef returns [EObject current=null] : ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ; + public final EObject ruleXFunctionTypeRef() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_5=null; + EObject lv_paramTypes_1_0 = null; + + EObject lv_paramTypes_3_0 = null; + + EObject lv_returnType_6_0 = null; + + + + enterRule(); + + try { + // InternalStatemachine.g:472:2: ( ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ) + // InternalStatemachine.g:473:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) + { + // InternalStatemachine.g:473:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:474:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) + { + // InternalStatemachine.g:474:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? + int alt10=2; + int LA10_0 = input.LA(1); + + if ( (LA10_0==17) ) { + alt10=1; + } + switch (alt10) { + case 1 : + // InternalStatemachine.g:475:4: otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' + { + otherlv_0=(Token)match(input,17,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); + + } + // InternalStatemachine.g:479:4: ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? + int alt9=2; + int LA9_0 = input.LA(1); + + if ( (LA9_0==RULE_ID||LA9_0==17||LA9_0==19) ) { + alt9=1; + } + switch (alt9) { + case 1 : + // InternalStatemachine.g:480:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* + { + // InternalStatemachine.g:480:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:481:6: (lv_paramTypes_1_0= ruleJvmTypeReference ) + { + // InternalStatemachine.g:481:6: (lv_paramTypes_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:482:7: lv_paramTypes_1_0= ruleJvmTypeReference + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); + + } + pushFollow(FOLLOW_13); + lv_paramTypes_1_0=ruleJvmTypeReference(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule()); + } + add( + current, + "paramTypes", + lv_paramTypes_1_0, + "org.eclipse.xtext.xbase.Xtype.JvmTypeReference"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalStatemachine.g:499:5: (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* + loop8: + do { + int alt8=2; + int LA8_0 = input.LA(1); + + if ( (LA8_0==14) ) { + alt8=1; + } + + + switch (alt8) { + case 1 : + // InternalStatemachine.g:500:6: otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) + { + otherlv_2=(Token)match(input,14,FOLLOW_14); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); + + } + // InternalStatemachine.g:504:6: ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:505:7: (lv_paramTypes_3_0= ruleJvmTypeReference ) + { + // InternalStatemachine.g:505:7: (lv_paramTypes_3_0= ruleJvmTypeReference ) + // InternalStatemachine.g:506:8: lv_paramTypes_3_0= ruleJvmTypeReference + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); + + } + pushFollow(FOLLOW_13); + lv_paramTypes_3_0=ruleJvmTypeReference(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule()); + } + add( + current, + "paramTypes", + lv_paramTypes_3_0, + "org.eclipse.xtext.xbase.Xtype.JvmTypeReference"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop8; + } + } while (true); + + + } + break; + + } + + otherlv_4=(Token)match(input,18,FOLLOW_15); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); + + } + + } + break; + + } + + otherlv_5=(Token)match(input,19,FOLLOW_14); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); + + } + // InternalStatemachine.g:534:3: ( (lv_returnType_6_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:535:4: (lv_returnType_6_0= ruleJvmTypeReference ) + { + // InternalStatemachine.g:535:4: (lv_returnType_6_0= ruleJvmTypeReference ) + // InternalStatemachine.g:536:5: lv_returnType_6_0= ruleJvmTypeReference + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); + + } + pushFollow(FOLLOW_2); + lv_returnType_6_0=ruleJvmTypeReference(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule()); + } + set( + current, + "returnType", + lv_returnType_6_0, + "org.eclipse.xtext.xbase.Xtype.JvmTypeReference"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleXFunctionTypeRef" + + + // $ANTLR start "entryRuleJvmParameterizedTypeReference" + // InternalStatemachine.g:557:1: entryRuleJvmParameterizedTypeReference returns [EObject current=null] : iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ; + public final EObject entryRuleJvmParameterizedTypeReference() throws RecognitionException { + EObject current = null; + + EObject iv_ruleJvmParameterizedTypeReference = null; + + + try { + // InternalStatemachine.g:557:70: (iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ) + // InternalStatemachine.g:558:2: iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceRule()); + } + pushFollow(FOLLOW_1); + iv_ruleJvmParameterizedTypeReference=ruleJvmParameterizedTypeReference(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleJvmParameterizedTypeReference; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleJvmParameterizedTypeReference" + + + // $ANTLR start "ruleJvmParameterizedTypeReference" + // InternalStatemachine.g:564:1: ruleJvmParameterizedTypeReference returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) ; + public final EObject ruleJvmParameterizedTypeReference() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + Token otherlv_7=null; + Token otherlv_9=null; + Token otherlv_11=null; + Token otherlv_13=null; + EObject lv_arguments_2_0 = null; + + EObject lv_arguments_4_0 = null; + + EObject lv_arguments_10_0 = null; + + EObject lv_arguments_12_0 = null; + + + + enterRule(); + + try { + // InternalStatemachine.g:570:2: ( ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) ) + // InternalStatemachine.g:571:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) + { + // InternalStatemachine.g:571:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) + // InternalStatemachine.g:572:3: ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? + { + // InternalStatemachine.g:572:3: ( ( ruleQualifiedName ) ) + // InternalStatemachine.g:573:4: ( ruleQualifiedName ) + { + // InternalStatemachine.g:573:4: ( ruleQualifiedName ) + // InternalStatemachine.g:574:5: ruleQualifiedName + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getJvmParameterizedTypeReferenceRule()); + } + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); + + } + pushFollow(FOLLOW_16); + ruleQualifiedName(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalStatemachine.g:588:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? + int alt15=2; + int LA15_0 = input.LA(1); + + if ( (LA15_0==20) && (synpred2_InternalStatemachine())) { + alt15=1; + } + switch (alt15) { + case 1 : + // InternalStatemachine.g:589:4: ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* + { + // InternalStatemachine.g:589:4: ( ( '<' )=>otherlv_1= '<' ) + // InternalStatemachine.g:590:5: ( '<' )=>otherlv_1= '<' + { + otherlv_1=(Token)match(input,20,FOLLOW_17); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); + + } + + } + + // InternalStatemachine.g:596:4: ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) + // InternalStatemachine.g:597:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference ) + { + // InternalStatemachine.g:597:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:598:6: lv_arguments_2_0= ruleJvmArgumentTypeReference + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); + + } + pushFollow(FOLLOW_18); + lv_arguments_2_0=ruleJvmArgumentTypeReference(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule()); + } + add( + current, + "arguments", + lv_arguments_2_0, + "org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalStatemachine.g:615:4: (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* + loop11: + do { + int alt11=2; + int LA11_0 = input.LA(1); + + if ( (LA11_0==14) ) { + alt11=1; + } + + + switch (alt11) { + case 1 : + // InternalStatemachine.g:616:5: otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) + { + otherlv_3=(Token)match(input,14,FOLLOW_17); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); + + } + // InternalStatemachine.g:620:5: ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) + // InternalStatemachine.g:621:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference ) + { + // InternalStatemachine.g:621:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:622:7: lv_arguments_4_0= ruleJvmArgumentTypeReference + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); + + } + pushFollow(FOLLOW_18); + lv_arguments_4_0=ruleJvmArgumentTypeReference(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule()); + } + add( + current, + "arguments", + lv_arguments_4_0, + "org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop11; + } + } while (true); + + otherlv_5=(Token)match(input,21,FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); + + } + // InternalStatemachine.g:644:4: ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* + loop14: + do { + int alt14=2; + int LA14_0 = input.LA(1); + + if ( (LA14_0==22) && (synpred3_InternalStatemachine())) { + alt14=1; + } + + + switch (alt14) { + case 1 : + // InternalStatemachine.g:645:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? + { + // InternalStatemachine.g:645:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) + // InternalStatemachine.g:646:6: ( ( () '.' ) )=> ( () otherlv_7= '.' ) + { + // InternalStatemachine.g:652:6: ( () otherlv_7= '.' ) + // InternalStatemachine.g:653:7: () otherlv_7= '.' + { + // InternalStatemachine.g:653:7: () + // InternalStatemachine.g:654:8: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0(), + current); + + } + + } + + otherlv_7=(Token)match(input,22,FOLLOW_3); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); + + } + + } + + + } + + // InternalStatemachine.g:666:5: ( ( ruleValidID ) ) + // InternalStatemachine.g:667:6: ( ruleValidID ) + { + // InternalStatemachine.g:667:6: ( ruleValidID ) + // InternalStatemachine.g:668:7: ruleValidID + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getJvmParameterizedTypeReferenceRule()); + } + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); + + } + pushFollow(FOLLOW_20); + ruleValidID(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalStatemachine.g:682:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? + int alt13=2; + int LA13_0 = input.LA(1); + + if ( (LA13_0==20) && (synpred4_InternalStatemachine())) { + alt13=1; + } + switch (alt13) { + case 1 : + // InternalStatemachine.g:683:6: ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' + { + // InternalStatemachine.g:683:6: ( ( '<' )=>otherlv_9= '<' ) + // InternalStatemachine.g:684:7: ( '<' )=>otherlv_9= '<' + { + otherlv_9=(Token)match(input,20,FOLLOW_17); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_9, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0()); + + } + + } + + // InternalStatemachine.g:690:6: ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) + // InternalStatemachine.g:691:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference ) + { + // InternalStatemachine.g:691:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:692:8: lv_arguments_10_0= ruleJvmArgumentTypeReference + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); + + } + pushFollow(FOLLOW_18); + lv_arguments_10_0=ruleJvmArgumentTypeReference(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule()); + } + add( + current, + "arguments", + lv_arguments_10_0, + "org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalStatemachine.g:709:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* + loop12: + do { + int alt12=2; + int LA12_0 = input.LA(1); + + if ( (LA12_0==14) ) { + alt12=1; + } + + + switch (alt12) { + case 1 : + // InternalStatemachine.g:710:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) + { + otherlv_11=(Token)match(input,14,FOLLOW_17); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_11, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); + + } + // InternalStatemachine.g:714:7: ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) + // InternalStatemachine.g:715:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference ) + { + // InternalStatemachine.g:715:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:716:9: lv_arguments_12_0= ruleJvmArgumentTypeReference + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); + + } + pushFollow(FOLLOW_18); + lv_arguments_12_0=ruleJvmArgumentTypeReference(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule()); + } + add( + current, + "arguments", + lv_arguments_12_0, + "org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop12; + } + } while (true); + + otherlv_13=(Token)match(input,21,FOLLOW_19); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_13, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); + + } + + } + break; + + } + + + } + break; + + default : + break loop14; + } + } while (true); + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleJvmParameterizedTypeReference" + + + // $ANTLR start "entryRuleJvmArgumentTypeReference" + // InternalStatemachine.g:745:1: entryRuleJvmArgumentTypeReference returns [EObject current=null] : iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ; + public final EObject entryRuleJvmArgumentTypeReference() throws RecognitionException { + EObject current = null; + + EObject iv_ruleJvmArgumentTypeReference = null; + + + try { + // InternalStatemachine.g:745:65: (iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ) + // InternalStatemachine.g:746:2: iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceRule()); + } + pushFollow(FOLLOW_1); + iv_ruleJvmArgumentTypeReference=ruleJvmArgumentTypeReference(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleJvmArgumentTypeReference; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleJvmArgumentTypeReference" + + + // $ANTLR start "ruleJvmArgumentTypeReference" + // InternalStatemachine.g:752:1: ruleJvmArgumentTypeReference returns [EObject current=null] : (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ; + public final EObject ruleJvmArgumentTypeReference() throws RecognitionException { + EObject current = null; + + EObject this_JvmTypeReference_0 = null; + + EObject this_JvmWildcardTypeReference_1 = null; + + + + enterRule(); + + try { + // InternalStatemachine.g:758:2: ( (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ) + // InternalStatemachine.g:759:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) + { + // InternalStatemachine.g:759:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) + int alt16=2; + int LA16_0 = input.LA(1); + + if ( (LA16_0==RULE_ID||LA16_0==17||LA16_0==19) ) { + alt16=1; + } + else if ( (LA16_0==23) ) { + alt16=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 16, 0, input); + + throw nvae; + } + switch (alt16) { + case 1 : + // InternalStatemachine.g:760:3: this_JvmTypeReference_0= ruleJvmTypeReference + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); + + } + pushFollow(FOLLOW_2); + this_JvmTypeReference_0=ruleJvmTypeReference(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_JvmTypeReference_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalStatemachine.g:769:3: this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); + + } + pushFollow(FOLLOW_2); + this_JvmWildcardTypeReference_1=ruleJvmWildcardTypeReference(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_JvmWildcardTypeReference_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleJvmArgumentTypeReference" + + + // $ANTLR start "entryRuleJvmWildcardTypeReference" + // InternalStatemachine.g:781:1: entryRuleJvmWildcardTypeReference returns [EObject current=null] : iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ; + public final EObject entryRuleJvmWildcardTypeReference() throws RecognitionException { + EObject current = null; + + EObject iv_ruleJvmWildcardTypeReference = null; + + + try { + // InternalStatemachine.g:781:65: (iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ) + // InternalStatemachine.g:782:2: iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceRule()); + } + pushFollow(FOLLOW_1); + iv_ruleJvmWildcardTypeReference=ruleJvmWildcardTypeReference(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleJvmWildcardTypeReference; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleJvmWildcardTypeReference" + + + // $ANTLR start "ruleJvmWildcardTypeReference" + // InternalStatemachine.g:788:1: ruleJvmWildcardTypeReference returns [EObject current=null] : ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) ; + public final EObject ruleJvmWildcardTypeReference() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + EObject lv_constraints_2_0 = null; + + EObject lv_constraints_3_0 = null; + + EObject lv_constraints_4_0 = null; + + EObject lv_constraints_5_0 = null; + + + + enterRule(); + + try { + // InternalStatemachine.g:794:2: ( ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) ) + // InternalStatemachine.g:795:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) + { + // InternalStatemachine.g:795:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) + // InternalStatemachine.g:796:3: () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? + { + // InternalStatemachine.g:796:3: () + // InternalStatemachine.g:797:4: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,23,FOLLOW_21); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); + + } + // InternalStatemachine.g:807:3: ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? + int alt19=3; + int LA19_0 = input.LA(1); + + if ( (LA19_0==24) ) { + alt19=1; + } + else if ( (LA19_0==26) ) { + alt19=2; + } + switch (alt19) { + case 1 : + // InternalStatemachine.g:808:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) + { + // InternalStatemachine.g:808:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) + // InternalStatemachine.g:809:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* + { + // InternalStatemachine.g:809:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) + // InternalStatemachine.g:810:6: (lv_constraints_2_0= ruleJvmUpperBound ) + { + // InternalStatemachine.g:810:6: (lv_constraints_2_0= ruleJvmUpperBound ) + // InternalStatemachine.g:811:7: lv_constraints_2_0= ruleJvmUpperBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); + + } + pushFollow(FOLLOW_22); + lv_constraints_2_0=ruleJvmUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule()); + } + add( + current, + "constraints", + lv_constraints_2_0, + "org.eclipse.xtext.xbase.Xtype.JvmUpperBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalStatemachine.g:828:5: ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* + loop17: + do { + int alt17=2; + int LA17_0 = input.LA(1); + + if ( (LA17_0==25) ) { + alt17=1; + } + + + switch (alt17) { + case 1 : + // InternalStatemachine.g:829:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded ) + { + // InternalStatemachine.g:829:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded ) + // InternalStatemachine.g:830:7: lv_constraints_3_0= ruleJvmUpperBoundAnded + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); + + } + pushFollow(FOLLOW_22); + lv_constraints_3_0=ruleJvmUpperBoundAnded(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule()); + } + add( + current, + "constraints", + lv_constraints_3_0, + "org.eclipse.xtext.xbase.Xtype.JvmUpperBoundAnded"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + break; + + default : + break loop17; + } + } while (true); + + + } + + + } + break; + case 2 : + // InternalStatemachine.g:849:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) + { + // InternalStatemachine.g:849:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) + // InternalStatemachine.g:850:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* + { + // InternalStatemachine.g:850:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) + // InternalStatemachine.g:851:6: (lv_constraints_4_0= ruleJvmLowerBound ) + { + // InternalStatemachine.g:851:6: (lv_constraints_4_0= ruleJvmLowerBound ) + // InternalStatemachine.g:852:7: lv_constraints_4_0= ruleJvmLowerBound + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); + + } + pushFollow(FOLLOW_22); + lv_constraints_4_0=ruleJvmLowerBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule()); + } + add( + current, + "constraints", + lv_constraints_4_0, + "org.eclipse.xtext.xbase.Xtype.JvmLowerBound"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalStatemachine.g:869:5: ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* + loop18: + do { + int alt18=2; + int LA18_0 = input.LA(1); + + if ( (LA18_0==25) ) { + alt18=1; + } + + + switch (alt18) { + case 1 : + // InternalStatemachine.g:870:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded ) + { + // InternalStatemachine.g:870:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded ) + // InternalStatemachine.g:871:7: lv_constraints_5_0= ruleJvmLowerBoundAnded + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); + + } + pushFollow(FOLLOW_22); + lv_constraints_5_0=ruleJvmLowerBoundAnded(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule()); + } + add( + current, + "constraints", + lv_constraints_5_0, + "org.eclipse.xtext.xbase.Xtype.JvmLowerBoundAnded"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + break; + + default : + break loop18; + } + } while (true); + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleJvmWildcardTypeReference" + + + // $ANTLR start "entryRuleJvmUpperBound" + // InternalStatemachine.g:894:1: entryRuleJvmUpperBound returns [EObject current=null] : iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ; + public final EObject entryRuleJvmUpperBound() throws RecognitionException { + EObject current = null; + + EObject iv_ruleJvmUpperBound = null; + + + try { + // InternalStatemachine.g:894:54: (iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ) + // InternalStatemachine.g:895:2: iv_ruleJvmUpperBound= ruleJvmUpperBound EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getJvmUpperBoundRule()); + } + pushFollow(FOLLOW_1); + iv_ruleJvmUpperBound=ruleJvmUpperBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleJvmUpperBound; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleJvmUpperBound" + + + // $ANTLR start "ruleJvmUpperBound" + // InternalStatemachine.g:901:1: ruleJvmUpperBound returns [EObject current=null] : (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; + public final EObject ruleJvmUpperBound() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + EObject lv_typeReference_1_0 = null; + + + + enterRule(); + + try { + // InternalStatemachine.g:907:2: ( (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) + // InternalStatemachine.g:908:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + { + // InternalStatemachine.g:908:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:909:3: otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + { + otherlv_0=(Token)match(input,24,FOLLOW_14); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); + + } + // InternalStatemachine.g:913:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:914:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + { + // InternalStatemachine.g:914:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:915:5: lv_typeReference_1_0= ruleJvmTypeReference + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); + + } + pushFollow(FOLLOW_2); + lv_typeReference_1_0=ruleJvmTypeReference(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getJvmUpperBoundRule()); + } + set( + current, + "typeReference", + lv_typeReference_1_0, + "org.eclipse.xtext.xbase.Xtype.JvmTypeReference"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleJvmUpperBound" + + + // $ANTLR start "entryRuleJvmUpperBoundAnded" + // InternalStatemachine.g:936:1: entryRuleJvmUpperBoundAnded returns [EObject current=null] : iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ; + public final EObject entryRuleJvmUpperBoundAnded() throws RecognitionException { + EObject current = null; + + EObject iv_ruleJvmUpperBoundAnded = null; + + + try { + // InternalStatemachine.g:936:59: (iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ) + // InternalStatemachine.g:937:2: iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getJvmUpperBoundAndedRule()); + } + pushFollow(FOLLOW_1); + iv_ruleJvmUpperBoundAnded=ruleJvmUpperBoundAnded(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleJvmUpperBoundAnded; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleJvmUpperBoundAnded" + + + // $ANTLR start "ruleJvmUpperBoundAnded" + // InternalStatemachine.g:943:1: ruleJvmUpperBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; + public final EObject ruleJvmUpperBoundAnded() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + EObject lv_typeReference_1_0 = null; + + + + enterRule(); + + try { + // InternalStatemachine.g:949:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) + // InternalStatemachine.g:950:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + { + // InternalStatemachine.g:950:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:951:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + { + otherlv_0=(Token)match(input,25,FOLLOW_14); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); + + } + // InternalStatemachine.g:955:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:956:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + { + // InternalStatemachine.g:956:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:957:5: lv_typeReference_1_0= ruleJvmTypeReference + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); + + } + pushFollow(FOLLOW_2); + lv_typeReference_1_0=ruleJvmTypeReference(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getJvmUpperBoundAndedRule()); + } + set( + current, + "typeReference", + lv_typeReference_1_0, + "org.eclipse.xtext.xbase.Xtype.JvmTypeReference"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleJvmUpperBoundAnded" + + + // $ANTLR start "entryRuleJvmLowerBound" + // InternalStatemachine.g:978:1: entryRuleJvmLowerBound returns [EObject current=null] : iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ; + public final EObject entryRuleJvmLowerBound() throws RecognitionException { + EObject current = null; + + EObject iv_ruleJvmLowerBound = null; + + + try { + // InternalStatemachine.g:978:54: (iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ) + // InternalStatemachine.g:979:2: iv_ruleJvmLowerBound= ruleJvmLowerBound EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getJvmLowerBoundRule()); + } + pushFollow(FOLLOW_1); + iv_ruleJvmLowerBound=ruleJvmLowerBound(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleJvmLowerBound; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleJvmLowerBound" + + + // $ANTLR start "ruleJvmLowerBound" + // InternalStatemachine.g:985:1: ruleJvmLowerBound returns [EObject current=null] : (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; + public final EObject ruleJvmLowerBound() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + EObject lv_typeReference_1_0 = null; + + + + enterRule(); + + try { + // InternalStatemachine.g:991:2: ( (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) + // InternalStatemachine.g:992:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + { + // InternalStatemachine.g:992:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:993:3: otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + { + otherlv_0=(Token)match(input,26,FOLLOW_14); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); + + } + // InternalStatemachine.g:997:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:998:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + { + // InternalStatemachine.g:998:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:999:5: lv_typeReference_1_0= ruleJvmTypeReference + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); + + } + pushFollow(FOLLOW_2); + lv_typeReference_1_0=ruleJvmTypeReference(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getJvmLowerBoundRule()); + } + set( + current, + "typeReference", + lv_typeReference_1_0, + "org.eclipse.xtext.xbase.Xtype.JvmTypeReference"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleJvmLowerBound" + + + // $ANTLR start "entryRuleJvmLowerBoundAnded" + // InternalStatemachine.g:1020:1: entryRuleJvmLowerBoundAnded returns [EObject current=null] : iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ; + public final EObject entryRuleJvmLowerBoundAnded() throws RecognitionException { + EObject current = null; + + EObject iv_ruleJvmLowerBoundAnded = null; + + + try { + // InternalStatemachine.g:1020:59: (iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ) + // InternalStatemachine.g:1021:2: iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getJvmLowerBoundAndedRule()); + } + pushFollow(FOLLOW_1); + iv_ruleJvmLowerBoundAnded=ruleJvmLowerBoundAnded(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleJvmLowerBoundAnded; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleJvmLowerBoundAnded" + + + // $ANTLR start "ruleJvmLowerBoundAnded" + // InternalStatemachine.g:1027:1: ruleJvmLowerBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; + public final EObject ruleJvmLowerBoundAnded() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + EObject lv_typeReference_1_0 = null; + + + + enterRule(); + + try { + // InternalStatemachine.g:1033:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) + // InternalStatemachine.g:1034:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + { + // InternalStatemachine.g:1034:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:1035:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + { + otherlv_0=(Token)match(input,25,FOLLOW_14); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); + + } + // InternalStatemachine.g:1039:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:1040:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + { + // InternalStatemachine.g:1040:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:1041:5: lv_typeReference_1_0= ruleJvmTypeReference + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); + + } + pushFollow(FOLLOW_2); + lv_typeReference_1_0=ruleJvmTypeReference(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getJvmLowerBoundAndedRule()); + } + set( + current, + "typeReference", + lv_typeReference_1_0, + "org.eclipse.xtext.xbase.Xtype.JvmTypeReference"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleJvmLowerBoundAnded" + + + // $ANTLR start "entryRuleQualifiedName" + // InternalStatemachine.g:1062:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ; + public final String entryRuleQualifiedName() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleQualifiedName = null; + + + try { + // InternalStatemachine.g:1062:53: (iv_ruleQualifiedName= ruleQualifiedName EOF ) + // InternalStatemachine.g:1063:2: iv_ruleQualifiedName= ruleQualifiedName EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getQualifiedNameRule()); + } + pushFollow(FOLLOW_1); + iv_ruleQualifiedName=ruleQualifiedName(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleQualifiedName.getText(); + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleQualifiedName" + + + // $ANTLR start "ruleQualifiedName" + // InternalStatemachine.g:1069:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) ; + public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token kw=null; + AntlrDatatypeRuleToken this_ValidID_0 = null; + + AntlrDatatypeRuleToken this_ValidID_2 = null; + + + + enterRule(); + + try { + // InternalStatemachine.g:1075:2: ( (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) ) + // InternalStatemachine.g:1076:2: (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) + { + // InternalStatemachine.g:1076:2: (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) + // InternalStatemachine.g:1077:3: this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); + + } + pushFollow(FOLLOW_19); + this_ValidID_0=ruleValidID(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current.merge(this_ValidID_0); + + } + if ( state.backtracking==0 ) { + + afterParserOrEnumRuleCall(); + + } + // InternalStatemachine.g:1087:3: (kw= '.' this_ValidID_2= ruleValidID )* + loop20: + do { + int alt20=2; + int LA20_0 = input.LA(1); + + if ( (LA20_0==22) ) { + int LA20_2 = input.LA(2); + + if ( (LA20_2==RULE_ID) ) { + alt20=1; + } + + + } + + + switch (alt20) { + case 1 : + // InternalStatemachine.g:1088:4: kw= '.' this_ValidID_2= ruleValidID + { + kw=(Token)match(input,22,FOLLOW_3); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current.merge(kw); + newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); + + } + pushFollow(FOLLOW_19); + this_ValidID_2=ruleValidID(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current.merge(this_ValidID_2); + + } + if ( state.backtracking==0 ) { + + afterParserOrEnumRuleCall(); + + } + + } + break; + + default : + break loop20; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleQualifiedName" + + + // $ANTLR start "entryRuleQualifiedNameWithWildcard" + // InternalStatemachine.g:1108:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ; + public final String entryRuleQualifiedNameWithWildcard() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleQualifiedNameWithWildcard = null; + + + try { + // InternalStatemachine.g:1108:65: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ) + // InternalStatemachine.g:1109:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getQualifiedNameWithWildcardRule()); + } + pushFollow(FOLLOW_1); + iv_ruleQualifiedNameWithWildcard=ruleQualifiedNameWithWildcard(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleQualifiedNameWithWildcard.getText(); + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleQualifiedNameWithWildcard" + + + // $ANTLR start "ruleQualifiedNameWithWildcard" + // InternalStatemachine.g:1115:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ; + public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildcard() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token kw=null; + AntlrDatatypeRuleToken this_QualifiedName_0 = null; + + + + enterRule(); + + try { + // InternalStatemachine.g:1121:2: ( (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ) + // InternalStatemachine.g:1122:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) + { + // InternalStatemachine.g:1122:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) + // InternalStatemachine.g:1123:3: this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); + + } + pushFollow(FOLLOW_23); + this_QualifiedName_0=ruleQualifiedName(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current.merge(this_QualifiedName_0); + + } + if ( state.backtracking==0 ) { + + afterParserOrEnumRuleCall(); + + } + kw=(Token)match(input,22,FOLLOW_24); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current.merge(kw); + newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); + + } + kw=(Token)match(input,27,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current.merge(kw); + newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleQualifiedNameWithWildcard" + + + // $ANTLR start "entryRuleValidID" + // InternalStatemachine.g:1147:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ; + public final String entryRuleValidID() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleValidID = null; + + + try { + // InternalStatemachine.g:1147:47: (iv_ruleValidID= ruleValidID EOF ) + // InternalStatemachine.g:1148:2: iv_ruleValidID= ruleValidID EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getValidIDRule()); + } + pushFollow(FOLLOW_1); + iv_ruleValidID=ruleValidID(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleValidID.getText(); + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleValidID" + + + // $ANTLR start "ruleValidID" + // InternalStatemachine.g:1154:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ; + public final AntlrDatatypeRuleToken ruleValidID() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token this_ID_0=null; + + + enterRule(); + + try { + // InternalStatemachine.g:1160:2: (this_ID_0= RULE_ID ) + // InternalStatemachine.g:1161:2: this_ID_0= RULE_ID + { + this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current.merge(this_ID_0); + + } + if ( state.backtracking==0 ) { + + newLeafNode(this_ID_0, grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); + + } + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleValidID" + + + // $ANTLR start "entryRuleXImportDeclaration" + // InternalStatemachine.g:1171:1: entryRuleXImportDeclaration returns [EObject current=null] : iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ; + public final EObject entryRuleXImportDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleXImportDeclaration = null; + + + try { + // InternalStatemachine.g:1171:59: (iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ) + // InternalStatemachine.g:1172:2: iv_ruleXImportDeclaration= ruleXImportDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getXImportDeclarationRule()); + } + pushFollow(FOLLOW_1); + iv_ruleXImportDeclaration=ruleXImportDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleXImportDeclaration; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleXImportDeclaration" + + + // $ANTLR start "ruleXImportDeclaration" + // InternalStatemachine.g:1178:1: ruleXImportDeclaration returns [EObject current=null] : (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) ; + public final EObject ruleXImportDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_static_1_0=null; + Token lv_extension_2_0=null; + Token lv_wildcard_4_0=null; + Token otherlv_8=null; + AntlrDatatypeRuleToken lv_memberName_5_0 = null; + + AntlrDatatypeRuleToken lv_importedNamespace_7_0 = null; + + + + enterRule(); + + try { + // InternalStatemachine.g:1184:2: ( (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) ) + // InternalStatemachine.g:1185:2: (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) + { + // InternalStatemachine.g:1185:2: (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) + // InternalStatemachine.g:1186:3: otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? + { + otherlv_0=(Token)match(input,28,FOLLOW_25); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getXImportDeclarationAccess().getImportKeyword_0()); + + } + // InternalStatemachine.g:1190:3: ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) + int alt23=3; + alt23 = dfa23.predict(input); + switch (alt23) { + case 1 : + // InternalStatemachine.g:1191:4: ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) + { + // InternalStatemachine.g:1191:4: ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) + // InternalStatemachine.g:1192:5: ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) + { + // InternalStatemachine.g:1192:5: ( (lv_static_1_0= 'static' ) ) + // InternalStatemachine.g:1193:6: (lv_static_1_0= 'static' ) + { + // InternalStatemachine.g:1193:6: (lv_static_1_0= 'static' ) + // InternalStatemachine.g:1194:7: lv_static_1_0= 'static' + { + lv_static_1_0=(Token)match(input,29,FOLLOW_26); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_static_1_0, grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getXImportDeclarationRule()); + } + setWithLastConsumed(current, "static", lv_static_1_0 != null, "static"); + + } + + } + + + } + + // InternalStatemachine.g:1206:5: ( (lv_extension_2_0= 'extension' ) )? + int alt21=2; + int LA21_0 = input.LA(1); + + if ( (LA21_0==30) ) { + alt21=1; + } + switch (alt21) { + case 1 : + // InternalStatemachine.g:1207:6: (lv_extension_2_0= 'extension' ) + { + // InternalStatemachine.g:1207:6: (lv_extension_2_0= 'extension' ) + // InternalStatemachine.g:1208:7: lv_extension_2_0= 'extension' + { + lv_extension_2_0=(Token)match(input,30,FOLLOW_26); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_extension_2_0, grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getXImportDeclarationRule()); + } + setWithLastConsumed(current, "extension", lv_extension_2_0 != null, "extension"); + + } + + } + + + } + break; + + } + + // InternalStatemachine.g:1220:5: ( ( ruleQualifiedNameInStaticImport ) ) + // InternalStatemachine.g:1221:6: ( ruleQualifiedNameInStaticImport ) + { + // InternalStatemachine.g:1221:6: ( ruleQualifiedNameInStaticImport ) + // InternalStatemachine.g:1222:7: ruleQualifiedNameInStaticImport + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getXImportDeclarationRule()); + } + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_0_2_0()); + + } + pushFollow(FOLLOW_27); + ruleQualifiedNameInStaticImport(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalStatemachine.g:1236:5: ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) + int alt22=2; + int LA22_0 = input.LA(1); + + if ( (LA22_0==27) ) { + alt22=1; + } + else if ( (LA22_0==RULE_ID) ) { + alt22=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 22, 0, input); + + throw nvae; + } + switch (alt22) { + case 1 : + // InternalStatemachine.g:1237:6: ( (lv_wildcard_4_0= '*' ) ) + { + // InternalStatemachine.g:1237:6: ( (lv_wildcard_4_0= '*' ) ) + // InternalStatemachine.g:1238:7: (lv_wildcard_4_0= '*' ) + { + // InternalStatemachine.g:1238:7: (lv_wildcard_4_0= '*' ) + // InternalStatemachine.g:1239:8: lv_wildcard_4_0= '*' + { + lv_wildcard_4_0=(Token)match(input,27,FOLLOW_28); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_wildcard_4_0, grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_1_0_3_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getXImportDeclarationRule()); + } + setWithLastConsumed(current, "wildcard", lv_wildcard_4_0 != null, "*"); + + } + + } + + + } + + + } + break; + case 2 : + // InternalStatemachine.g:1252:6: ( (lv_memberName_5_0= ruleValidID ) ) + { + // InternalStatemachine.g:1252:6: ( (lv_memberName_5_0= ruleValidID ) ) + // InternalStatemachine.g:1253:7: (lv_memberName_5_0= ruleValidID ) + { + // InternalStatemachine.g:1253:7: (lv_memberName_5_0= ruleValidID ) + // InternalStatemachine.g:1254:8: lv_memberName_5_0= ruleValidID + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_1_0_3_1_0()); + + } + pushFollow(FOLLOW_28); + lv_memberName_5_0=ruleValidID(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getXImportDeclarationRule()); + } + set( + current, + "memberName", + lv_memberName_5_0, + "org.eclipse.xtext.xbase.Xtype.ValidID"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + break; + case 2 : + // InternalStatemachine.g:1274:4: ( ( ruleQualifiedName ) ) + { + // InternalStatemachine.g:1274:4: ( ( ruleQualifiedName ) ) + // InternalStatemachine.g:1275:5: ( ruleQualifiedName ) + { + // InternalStatemachine.g:1275:5: ( ruleQualifiedName ) + // InternalStatemachine.g:1276:6: ruleQualifiedName + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getXImportDeclarationRule()); + } + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_1_0()); + + } + pushFollow(FOLLOW_28); + ruleQualifiedName(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + case 3 : + // InternalStatemachine.g:1291:4: ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) + { + // InternalStatemachine.g:1291:4: ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) + // InternalStatemachine.g:1292:5: (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) + { + // InternalStatemachine.g:1292:5: (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) + // InternalStatemachine.g:1293:6: lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_2_0()); + + } + pushFollow(FOLLOW_28); + lv_importedNamespace_7_0=ruleQualifiedNameWithWildcard(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getXImportDeclarationRule()); + } + set( + current, + "importedNamespace", + lv_importedNamespace_7_0, + "org.eclipse.xtext.xbase.Xtype.QualifiedNameWithWildcard"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + // InternalStatemachine.g:1311:3: (otherlv_8= ';' )? + int alt24=2; + int LA24_0 = input.LA(1); + + if ( (LA24_0==31) ) { + alt24=1; + } + switch (alt24) { + case 1 : + // InternalStatemachine.g:1312:4: otherlv_8= ';' + { + otherlv_8=(Token)match(input,31,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_8, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2()); + + } + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleXImportDeclaration" + + + // $ANTLR start "entryRuleQualifiedNameInStaticImport" + // InternalStatemachine.g:1321:1: entryRuleQualifiedNameInStaticImport returns [String current=null] : iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ; + public final String entryRuleQualifiedNameInStaticImport() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleQualifiedNameInStaticImport = null; + + + try { + // InternalStatemachine.g:1321:67: (iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ) + // InternalStatemachine.g:1322:2: iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getQualifiedNameInStaticImportRule()); + } + pushFollow(FOLLOW_1); + iv_ruleQualifiedNameInStaticImport=ruleQualifiedNameInStaticImport(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleQualifiedNameInStaticImport.getText(); + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleQualifiedNameInStaticImport" + + + // $ANTLR start "ruleQualifiedNameInStaticImport" + // InternalStatemachine.g:1328:1: ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID kw= '.' )+ ; + public final AntlrDatatypeRuleToken ruleQualifiedNameInStaticImport() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token kw=null; + AntlrDatatypeRuleToken this_ValidID_0 = null; + + + + enterRule(); + + try { + // InternalStatemachine.g:1334:2: ( (this_ValidID_0= ruleValidID kw= '.' )+ ) + // InternalStatemachine.g:1335:2: (this_ValidID_0= ruleValidID kw= '.' )+ + { + // InternalStatemachine.g:1335:2: (this_ValidID_0= ruleValidID kw= '.' )+ + int cnt25=0; + loop25: + do { + int alt25=2; + int LA25_0 = input.LA(1); + + if ( (LA25_0==RULE_ID) ) { + int LA25_2 = input.LA(2); + + if ( (LA25_2==22) ) { + alt25=1; + } + + + } + + + switch (alt25) { + case 1 : + // InternalStatemachine.g:1336:3: this_ValidID_0= ruleValidID kw= '.' + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); + + } + pushFollow(FOLLOW_23); + this_ValidID_0=ruleValidID(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current.merge(this_ValidID_0); + + } + if ( state.backtracking==0 ) { + + afterParserOrEnumRuleCall(); + + } + kw=(Token)match(input,22,FOLLOW_29); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current.merge(kw); + newLeafNode(kw, grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); + + } + + } + break; + + default : + if ( cnt25 >= 1 ) break loop25; + if (state.backtracking>0) {state.failed=true; return current;} + EarlyExitException eee = + new EarlyExitException(25, input); + throw eee; + } + cnt25++; + } while (true); + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleQualifiedNameInStaticImport" + + // $ANTLR start synpred1_InternalStatemachine + public final void synpred1_InternalStatemachine_fragment() throws RecognitionException { + // InternalStatemachine.g:393:5: ( ( () ruleArrayBrackets ) ) + // InternalStatemachine.g:393:6: ( () ruleArrayBrackets ) + { + // InternalStatemachine.g:393:6: ( () ruleArrayBrackets ) + // InternalStatemachine.g:394:6: () ruleArrayBrackets + { + // InternalStatemachine.g:394:6: () + // InternalStatemachine.g:395:6: + { + } + + pushFollow(FOLLOW_2); + ruleArrayBrackets(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + } + // $ANTLR end synpred1_InternalStatemachine + + // $ANTLR start synpred2_InternalStatemachine + public final void synpred2_InternalStatemachine_fragment() throws RecognitionException { + // InternalStatemachine.g:590:5: ( '<' ) + // InternalStatemachine.g:590:6: '<' + { + match(input,20,FOLLOW_2); if (state.failed) return ; + + } + } + // $ANTLR end synpred2_InternalStatemachine + + // $ANTLR start synpred3_InternalStatemachine + public final void synpred3_InternalStatemachine_fragment() throws RecognitionException { + // InternalStatemachine.g:646:6: ( ( () '.' ) ) + // InternalStatemachine.g:646:7: ( () '.' ) + { + // InternalStatemachine.g:646:7: ( () '.' ) + // InternalStatemachine.g:647:7: () '.' + { + // InternalStatemachine.g:647:7: () + // InternalStatemachine.g:648:7: + { + } + + match(input,22,FOLLOW_2); if (state.failed) return ; + + } + + + } + } + // $ANTLR end synpred3_InternalStatemachine + + // $ANTLR start synpred4_InternalStatemachine + public final void synpred4_InternalStatemachine_fragment() throws RecognitionException { + // InternalStatemachine.g:684:7: ( '<' ) + // InternalStatemachine.g:684:8: '<' + { + match(input,20,FOLLOW_2); if (state.failed) return ; + + } + } + // $ANTLR end synpred4_InternalStatemachine + + // Delegated rules + + public final boolean synpred4_InternalStatemachine() { + state.backtracking++; + int start = input.mark(); + try { + synpred4_InternalStatemachine_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred2_InternalStatemachine() { + state.backtracking++; + int start = input.mark(); + try { + synpred2_InternalStatemachine_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred3_InternalStatemachine() { + state.backtracking++; + int start = input.mark(); + try { + synpred3_InternalStatemachine_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred1_InternalStatemachine() { + state.backtracking++; + int start = input.mark(); + try { + synpred1_InternalStatemachine_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + + + protected DFA23 dfa23 = new DFA23(this); + static final String dfa_1s = "\7\uffff"; + static final String dfa_2s = "\2\uffff\1\4\3\uffff\1\4"; + static final String dfa_3s = "\1\4\1\uffff\1\26\1\4\2\uffff\1\26"; + static final String dfa_4s = "\1\35\1\uffff\1\37\1\33\2\uffff\1\37"; + static final String dfa_5s = "\1\uffff\1\1\2\uffff\1\2\1\3\1\uffff"; + static final String dfa_6s = "\7\uffff}>"; + static final String[] dfa_7s = { + "\1\2\30\uffff\1\1", + "", + "\1\3\10\uffff\1\4", + "\1\6\26\uffff\1\5", + "", + "", + "\1\3\10\uffff\1\4" + }; + + static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s); + static final short[] dfa_2 = DFA.unpackEncodedString(dfa_2s); + static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s); + static final char[] dfa_4 = DFA.unpackEncodedStringToUnsignedChars(dfa_4s); + static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s); + static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s); + static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s); + + class DFA23 extends DFA { + + public DFA23(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 23; + this.eot = dfa_1; + this.eof = dfa_2; + this.min = dfa_3; + this.max = dfa_4; + this.accept = dfa_5; + this.special = dfa_6; + this.transition = dfa_7; + } + public String getDescription() { + return "1190:3: ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) )"; + } + } + + + 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[]{0x0000000000000010L}); + public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000810L}); + public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000003002L}); + public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000002002L}); + public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000002800L}); + public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000008002L}); + public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x00000000000E0010L}); + public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000044000L}); + public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x00000000000A0010L}); + public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000100002L}); + public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x00000000008A0010L}); + public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000204000L}); + public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000400002L}); + public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000500002L}); + public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000005000002L}); + public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000002000002L}); + public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000020000010L}); + public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000040000010L}); + public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000008000010L}); + public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000080000002L}); + public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000000000012L}); + +} \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/scoping/AbstractStatemachineScopeProvider.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/scoping/AbstractStatemachineScopeProvider.java new file mode 100644 index 000000000..6f22991fd --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/scoping/AbstractStatemachineScopeProvider.java @@ -0,0 +1,9 @@ +/* + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.scoping; + +import org.eclipse.xtext.xbase.scoping.XtypeScopeProvider; + +public abstract class AbstractStatemachineScopeProvider extends XtypeScopeProvider { +} diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/serializer/StatemachineSemanticSequencer.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/serializer/StatemachineSemanticSequencer.java new file mode 100644 index 000000000..2be58d521 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/serializer/StatemachineSemanticSequencer.java @@ -0,0 +1,199 @@ +/* + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.serializer; + +import com.google.inject.Inject; +import de.cognicrypt.order.editor.services.StatemachineGrammarAccess; +import de.cognicrypt.order.editor.statemachine.Event; +import de.cognicrypt.order.editor.statemachine.State; +import de.cognicrypt.order.editor.statemachine.Statemachine; +import de.cognicrypt.order.editor.statemachine.StatemachinePackage; +import de.cognicrypt.order.editor.statemachine.Transition; +import java.util.Set; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.xtext.Action; +import org.eclipse.xtext.Parameter; +import org.eclipse.xtext.ParserRule; +import org.eclipse.xtext.common.types.JvmGenericArrayTypeReference; +import org.eclipse.xtext.common.types.JvmInnerTypeReference; +import org.eclipse.xtext.common.types.JvmLowerBound; +import org.eclipse.xtext.common.types.JvmParameterizedTypeReference; +import org.eclipse.xtext.common.types.JvmTypeParameter; +import org.eclipse.xtext.common.types.JvmUpperBound; +import org.eclipse.xtext.common.types.JvmWildcardTypeReference; +import org.eclipse.xtext.common.types.TypesPackage; +import org.eclipse.xtext.serializer.ISerializationContext; +import org.eclipse.xtext.serializer.acceptor.SequenceFeeder; +import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient; +import org.eclipse.xtext.xbase.serializer.XtypeSemanticSequencer; +import org.eclipse.xtext.xtype.XFunctionTypeRef; +import org.eclipse.xtext.xtype.XImportDeclaration; +import org.eclipse.xtext.xtype.XImportSection; +import org.eclipse.xtext.xtype.XtypePackage; + +@SuppressWarnings("all") +public class StatemachineSemanticSequencer extends XtypeSemanticSequencer { + + @Inject + private StatemachineGrammarAccess grammarAccess; + + @Override + public void sequence(ISerializationContext context, EObject semanticObject) { + EPackage epackage = semanticObject.eClass().getEPackage(); + ParserRule rule = context.getParserRule(); + Action action = context.getAssignedAction(); + Set parameters = context.getEnabledBooleanParameters(); + if (epackage == StatemachinePackage.eINSTANCE) + switch (semanticObject.eClass().getClassifierID()) { + case StatemachinePackage.EVENT: + sequence_Event(context, (Event) semanticObject); + return; + case StatemachinePackage.STATE: + sequence_State(context, (State) semanticObject); + return; + case StatemachinePackage.STATEMACHINE: + sequence_Statemachine(context, (Statemachine) semanticObject); + return; + case StatemachinePackage.TRANSITION: + sequence_Transition(context, (Transition) semanticObject); + return; + } + else if (epackage == TypesPackage.eINSTANCE) + switch (semanticObject.eClass().getClassifierID()) { + case TypesPackage.JVM_GENERIC_ARRAY_TYPE_REFERENCE: + sequence_JvmTypeReference(context, (JvmGenericArrayTypeReference) semanticObject); + return; + case TypesPackage.JVM_INNER_TYPE_REFERENCE: + sequence_JvmParameterizedTypeReference(context, (JvmInnerTypeReference) semanticObject); + return; + case TypesPackage.JVM_LOWER_BOUND: + if (rule == grammarAccess.getJvmLowerBoundAndedRule()) { + sequence_JvmLowerBoundAnded(context, (JvmLowerBound) semanticObject); + return; + } + else if (rule == grammarAccess.getJvmLowerBoundRule()) { + sequence_JvmLowerBound(context, (JvmLowerBound) semanticObject); + return; + } + else break; + case TypesPackage.JVM_PARAMETERIZED_TYPE_REFERENCE: + if (action == grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0()) { + sequence_JvmParameterizedTypeReference_JvmInnerTypeReference_1_4_0_0_0(context, (JvmParameterizedTypeReference) semanticObject); + return; + } + else if (rule == grammarAccess.getJvmTypeReferenceRule() + || action == grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0() + || rule == grammarAccess.getJvmParameterizedTypeReferenceRule() + || rule == grammarAccess.getJvmArgumentTypeReferenceRule()) { + sequence_JvmParameterizedTypeReference(context, (JvmParameterizedTypeReference) semanticObject); + return; + } + else break; + case TypesPackage.JVM_TYPE_PARAMETER: + sequence_JvmTypeParameter(context, (JvmTypeParameter) semanticObject); + return; + case TypesPackage.JVM_UPPER_BOUND: + if (rule == grammarAccess.getJvmUpperBoundAndedRule()) { + sequence_JvmUpperBoundAnded(context, (JvmUpperBound) semanticObject); + return; + } + else if (rule == grammarAccess.getJvmUpperBoundRule()) { + sequence_JvmUpperBound(context, (JvmUpperBound) semanticObject); + return; + } + else break; + case TypesPackage.JVM_WILDCARD_TYPE_REFERENCE: + sequence_JvmWildcardTypeReference(context, (JvmWildcardTypeReference) semanticObject); + return; + } + else if (epackage == XtypePackage.eINSTANCE) + switch (semanticObject.eClass().getClassifierID()) { + case XtypePackage.XFUNCTION_TYPE_REF: + sequence_XFunctionTypeRef(context, (XFunctionTypeRef) semanticObject); + return; + case XtypePackage.XIMPORT_DECLARATION: + sequence_XImportDeclaration(context, (XImportDeclaration) semanticObject); + return; + case XtypePackage.XIMPORT_SECTION: + sequence_XImportSection(context, (XImportSection) semanticObject); + return; + } + if (errorAcceptor != null) + errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context)); + } + + /** + * Contexts: + * Event returns Event + * + * Constraint: + * (name=ID code=ID) + */ + protected void sequence_Event(ISerializationContext context, Event semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, StatemachinePackage.Literals.EVENT__NAME) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, StatemachinePackage.Literals.EVENT__NAME)); + if (transientValues.isValueTransient(semanticObject, StatemachinePackage.Literals.EVENT__CODE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, StatemachinePackage.Literals.EVENT__CODE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0_0(), semanticObject.getName()); + feeder.accept(grammarAccess.getEventAccess().getCodeIDTerminalRuleCall_1_0(), semanticObject.getCode()); + feeder.finish(); + } + + + /** + * Contexts: + * State returns State + * + * Constraint: + * (name=ID transitions+=Transition*) + */ + protected void sequence_State(ISerializationContext context, State semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Statemachine returns Statemachine + * + * Constraint: + * (events+=Event* states+=State* transitions+=Transition*) + */ + protected void sequence_Statemachine(ISerializationContext context, Statemachine semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * Transition returns Transition + * + * Constraint: + * (name=ID fromState=[State|ID] event=[Event|ID] endState=[State|ID]) + */ + protected void sequence_Transition(ISerializationContext context, Transition semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, StatemachinePackage.Literals.TRANSITION__NAME) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, StatemachinePackage.Literals.TRANSITION__NAME)); + if (transientValues.isValueTransient(semanticObject, StatemachinePackage.Literals.TRANSITION__FROM_STATE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, StatemachinePackage.Literals.TRANSITION__FROM_STATE)); + if (transientValues.isValueTransient(semanticObject, StatemachinePackage.Literals.TRANSITION__EVENT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, StatemachinePackage.Literals.TRANSITION__EVENT)); + if (transientValues.isValueTransient(semanticObject, StatemachinePackage.Literals.TRANSITION__END_STATE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, StatemachinePackage.Literals.TRANSITION__END_STATE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getTransitionAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName()); + feeder.accept(grammarAccess.getTransitionAccess().getFromStateStateIDTerminalRuleCall_2_0_1(), semanticObject.eGet(StatemachinePackage.Literals.TRANSITION__FROM_STATE, false)); + feeder.accept(grammarAccess.getTransitionAccess().getEventEventIDTerminalRuleCall_4_0_1(), semanticObject.eGet(StatemachinePackage.Literals.TRANSITION__EVENT, false)); + feeder.accept(grammarAccess.getTransitionAccess().getEndStateStateIDTerminalRuleCall_6_0_1(), semanticObject.eGet(StatemachinePackage.Literals.TRANSITION__END_STATE, false)); + feeder.finish(); + } + + +} diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/serializer/StatemachineSyntacticSequencer.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/serializer/StatemachineSyntacticSequencer.java new file mode 100644 index 000000000..6ca9529a3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/serializer/StatemachineSyntacticSequencer.java @@ -0,0 +1,91 @@ +/* + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.serializer; + +import com.google.inject.Inject; +import de.cognicrypt.order.editor.services.StatemachineGrammarAccess; +import java.util.List; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.IGrammarAccess; +import org.eclipse.xtext.RuleCall; +import org.eclipse.xtext.nodemodel.INode; +import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias; +import org.eclipse.xtext.serializer.analysis.GrammarAlias.GroupAlias; +import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias; +import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable; +import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition; +import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer; + +@SuppressWarnings("all") +public class StatemachineSyntacticSequencer extends AbstractSyntacticSequencer { + + protected StatemachineGrammarAccess grammarAccess; + protected AbstractElementAlias match_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q; + protected AbstractElementAlias match_XImportDeclaration_SemicolonKeyword_2_q; + + @Inject + protected void init(IGrammarAccess access) { + grammarAccess = (StatemachineGrammarAccess) access; + match_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()), new TokenAlias(false, false, grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2())); + match_XImportDeclaration_SemicolonKeyword_2_q = new TokenAlias(false, true, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2()); + } + + @Override + protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) { + if (ruleCall.getRule() == grammarAccess.getArrayBracketsRule()) + return getArrayBracketsToken(semanticObject, ruleCall, node); + return ""; + } + + /** + * ArrayBrackets : + * '[' ']' + * ; + */ + protected String getArrayBracketsToken(EObject semanticObject, RuleCall ruleCall, INode node) { + if (node != null) + return getTokenText(node); + return "[ ]"; + } + + @Override + protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) { + if (transition.getAmbiguousSyntaxes().isEmpty()) return; + List transitionNodes = collectNodes(fromNode, toNode); + for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) { + List syntaxNodes = getNodesFor(transitionNodes, syntax); + if (match_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q.equals(syntax)) + emit_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_XImportDeclaration_SemicolonKeyword_2_q.equals(syntax)) + emit_XImportDeclaration_SemicolonKeyword_2_q(semanticObject, getLastNavigableState(), syntaxNodes); + else acceptNodes(getLastNavigableState(), syntaxNodes); + } + } + + /** + * Ambiguous syntax: + * ('(' ')')? + * + * This ambiguous syntax occurs at: + * (rule start) (ambiguity) '=>' returnType=JvmTypeReference + */ + protected void emit_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * ';'? + * + * This ambiguous syntax occurs at: + * importedNamespace=QualifiedNameWithWildcard (ambiguity) (rule end) + * importedType=[JvmDeclaredType|QualifiedName] (ambiguity) (rule end) + * memberName=ValidID (ambiguity) (rule end) + * wildcard?='*' (ambiguity) (rule end) + */ + protected void emit_XImportDeclaration_SemicolonKeyword_2_q(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + +} diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/services/StatemachineGrammarAccess.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/services/StatemachineGrammarAccess.java new file mode 100644 index 000000000..4971ea3bf --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/services/StatemachineGrammarAccess.java @@ -0,0 +1,552 @@ +/* + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.services; + +import com.google.inject.Inject; +import com.google.inject.Singleton; +import java.util.List; +import org.eclipse.xtext.Action; +import org.eclipse.xtext.Assignment; +import org.eclipse.xtext.CrossReference; +import org.eclipse.xtext.Grammar; +import org.eclipse.xtext.GrammarUtil; +import org.eclipse.xtext.Group; +import org.eclipse.xtext.Keyword; +import org.eclipse.xtext.ParserRule; +import org.eclipse.xtext.RuleCall; +import org.eclipse.xtext.TerminalRule; +import org.eclipse.xtext.service.AbstractElementFinder; +import org.eclipse.xtext.service.GrammarProvider; +import org.eclipse.xtext.xbase.services.XtypeGrammarAccess; + +@Singleton +public class StatemachineGrammarAccess extends AbstractElementFinder.AbstractGrammarElementFinder { + + public class StatemachineElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.cognicrypt.order.editor.Statemachine.Statemachine"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cStatemachineAction_0 = (Action)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Keyword cEventsKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final Assignment cEventsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cEventsEventParserRuleCall_1_1_0 = (RuleCall)cEventsAssignment_1_1.eContents().get(0); + private final Keyword cEndKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2); + private final Assignment cStatesAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cStatesStateParserRuleCall_2_0 = (RuleCall)cStatesAssignment_2.eContents().get(0); + private final Assignment cTransitionsAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cTransitionsTransitionParserRuleCall_3_0 = (RuleCall)cTransitionsAssignment_3.eContents().get(0); + + //Statemachine : + // {Statemachine} + // ('events' + // events+=Event+ + // 'end')? + // states+=State* + // transitions+=Transition* + //; + @Override public ParserRule getRule() { return rule; } + + //{Statemachine} + //('events' + // events+=Event+ + //'end')? + //states+=State* + //transitions+=Transition* + public Group getGroup() { return cGroup; } + + //{Statemachine} + public Action getStatemachineAction_0() { return cStatemachineAction_0; } + + //('events' + // events+=Event+ + //'end')? + public Group getGroup_1() { return cGroup_1; } + + //'events' + public Keyword getEventsKeyword_1_0() { return cEventsKeyword_1_0; } + + //events+=Event+ + public Assignment getEventsAssignment_1_1() { return cEventsAssignment_1_1; } + + //Event + public RuleCall getEventsEventParserRuleCall_1_1_0() { return cEventsEventParserRuleCall_1_1_0; } + + //'end' + public Keyword getEndKeyword_1_2() { return cEndKeyword_1_2; } + + //states+=State* + public Assignment getStatesAssignment_2() { return cStatesAssignment_2; } + + //State + public RuleCall getStatesStateParserRuleCall_2_0() { return cStatesStateParserRuleCall_2_0; } + + //transitions+=Transition* + public Assignment getTransitionsAssignment_3() { return cTransitionsAssignment_3; } + + //Transition + public RuleCall getTransitionsTransitionParserRuleCall_3_0() { return cTransitionsTransitionParserRuleCall_3_0; } + } + public class EventElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.cognicrypt.order.editor.Statemachine.Event"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cNameIDTerminalRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0); + private final Assignment cCodeAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cCodeIDTerminalRuleCall_1_0 = (RuleCall)cCodeAssignment_1.eContents().get(0); + + //Event: + // name=ID code=ID + //; + @Override public ParserRule getRule() { return rule; } + + //name=ID code=ID + public Group getGroup() { return cGroup; } + + //name=ID + public Assignment getNameAssignment_0() { return cNameAssignment_0; } + + //ID + public RuleCall getNameIDTerminalRuleCall_0_0() { return cNameIDTerminalRuleCall_0_0; } + + //code=ID + public Assignment getCodeAssignment_1() { return cCodeAssignment_1; } + + //ID + public RuleCall getCodeIDTerminalRuleCall_1_0() { return cCodeIDTerminalRuleCall_1_0; } + } + public class StateElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.cognicrypt.order.editor.Statemachine.State"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cStateKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Assignment cTransitionsAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cTransitionsTransitionParserRuleCall_2_0 = (RuleCall)cTransitionsAssignment_2.eContents().get(0); + private final Keyword cEndKeyword_3 = (Keyword)cGroup.eContents().get(3); + + //State: + // 'state' name=ID + // transitions+=Transition* + // 'end' + //; + @Override public ParserRule getRule() { return rule; } + + //'state' name=ID + // transitions+=Transition* + //'end' + public Group getGroup() { return cGroup; } + + //'state' + public Keyword getStateKeyword_0() { return cStateKeyword_0; } + + //name=ID + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //ID + public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } + + //transitions+=Transition* + public Assignment getTransitionsAssignment_2() { return cTransitionsAssignment_2; } + + //Transition + public RuleCall getTransitionsTransitionParserRuleCall_2_0() { return cTransitionsTransitionParserRuleCall_2_0; } + + //'end' + public Keyword getEndKeyword_3() { return cEndKeyword_3; } + } + public class TransitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.cognicrypt.order.editor.Statemachine.Transition"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cTransitionKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Assignment cFromStateAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final CrossReference cFromStateStateCrossReference_2_0 = (CrossReference)cFromStateAssignment_2.eContents().get(0); + private final RuleCall cFromStateStateIDTerminalRuleCall_2_0_1 = (RuleCall)cFromStateStateCrossReference_2_0.eContents().get(1); + private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Assignment cEventAssignment_4 = (Assignment)cGroup.eContents().get(4); + private final CrossReference cEventEventCrossReference_4_0 = (CrossReference)cEventAssignment_4.eContents().get(0); + private final RuleCall cEventEventIDTerminalRuleCall_4_0_1 = (RuleCall)cEventEventCrossReference_4_0.eContents().get(1); + private final Keyword cCommaKeyword_5 = (Keyword)cGroup.eContents().get(5); + private final Assignment cEndStateAssignment_6 = (Assignment)cGroup.eContents().get(6); + private final CrossReference cEndStateStateCrossReference_6_0 = (CrossReference)cEndStateAssignment_6.eContents().get(0); + private final RuleCall cEndStateStateIDTerminalRuleCall_6_0_1 = (RuleCall)cEndStateStateCrossReference_6_0.eContents().get(1); + private final Keyword cEndKeyword_7 = (Keyword)cGroup.eContents().get(7); + + //Transition: + // 'transition' name=ID + // fromState=[State] ',' event=[Event] ',' endState=[State] + // 'end' + //; + @Override public ParserRule getRule() { return rule; } + + //'transition' name=ID + //fromState=[State] ',' event=[Event] ',' endState=[State] + //'end' + public Group getGroup() { return cGroup; } + + //'transition' + public Keyword getTransitionKeyword_0() { return cTransitionKeyword_0; } + + //name=ID + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //ID + public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } + + //fromState=[State] + public Assignment getFromStateAssignment_2() { return cFromStateAssignment_2; } + + //[State] + public CrossReference getFromStateStateCrossReference_2_0() { return cFromStateStateCrossReference_2_0; } + + //ID + public RuleCall getFromStateStateIDTerminalRuleCall_2_0_1() { return cFromStateStateIDTerminalRuleCall_2_0_1; } + + //',' + public Keyword getCommaKeyword_3() { return cCommaKeyword_3; } + + //event=[Event] + public Assignment getEventAssignment_4() { return cEventAssignment_4; } + + //[Event] + public CrossReference getEventEventCrossReference_4_0() { return cEventEventCrossReference_4_0; } + + //ID + public RuleCall getEventEventIDTerminalRuleCall_4_0_1() { return cEventEventIDTerminalRuleCall_4_0_1; } + + //',' + public Keyword getCommaKeyword_5() { return cCommaKeyword_5; } + + //endState=[State] + public Assignment getEndStateAssignment_6() { return cEndStateAssignment_6; } + + //[State] + public CrossReference getEndStateStateCrossReference_6_0() { return cEndStateStateCrossReference_6_0; } + + //ID + public RuleCall getEndStateStateIDTerminalRuleCall_6_0_1() { return cEndStateStateIDTerminalRuleCall_6_0_1; } + + //'end' + public Keyword getEndKeyword_7() { return cEndKeyword_7; } + } + + + private final StatemachineElements pStatemachine; + private final EventElements pEvent; + private final StateElements pState; + private final TransitionElements pTransition; + + private final Grammar grammar; + + private final XtypeGrammarAccess gaXtype; + + @Inject + public StatemachineGrammarAccess(GrammarProvider grammarProvider, + XtypeGrammarAccess gaXtype) { + this.grammar = internalFindGrammar(grammarProvider); + this.gaXtype = gaXtype; + this.pStatemachine = new StatemachineElements(); + this.pEvent = new EventElements(); + this.pState = new StateElements(); + this.pTransition = new TransitionElements(); + } + + protected Grammar internalFindGrammar(GrammarProvider grammarProvider) { + Grammar grammar = grammarProvider.getGrammar(this); + while (grammar != null) { + if ("de.cognicrypt.order.editor.Statemachine".equals(grammar.getName())) { + return grammar; + } + List grammars = grammar.getUsedGrammars(); + if (!grammars.isEmpty()) { + grammar = grammars.iterator().next(); + } else { + return null; + } + } + return grammar; + } + + @Override + public Grammar getGrammar() { + return grammar; + } + + + public XtypeGrammarAccess getXtypeGrammarAccess() { + return gaXtype; + } + + + //Statemachine : + // {Statemachine} + // ('events' + // events+=Event+ + // 'end')? + // states+=State* + // transitions+=Transition* + //; + public StatemachineElements getStatemachineAccess() { + return pStatemachine; + } + + public ParserRule getStatemachineRule() { + return getStatemachineAccess().getRule(); + } + + //Event: + // name=ID code=ID + //; + public EventElements getEventAccess() { + return pEvent; + } + + public ParserRule getEventRule() { + return getEventAccess().getRule(); + } + + //State: + // 'state' name=ID + // transitions+=Transition* + // 'end' + //; + public StateElements getStateAccess() { + return pState; + } + + public ParserRule getStateRule() { + return getStateAccess().getRule(); + } + + //Transition: + // 'transition' name=ID + // fromState=[State] ',' event=[Event] ',' endState=[State] + // 'end' + //; + public TransitionElements getTransitionAccess() { + return pTransition; + } + + public ParserRule getTransitionRule() { + return getTransitionAccess().getRule(); + } + + //JvmTypeReference: + // JvmParameterizedTypeReference =>({JvmGenericArrayTypeReference.componentType=current} ArrayBrackets)* + // | XFunctionTypeRef; + public XtypeGrammarAccess.JvmTypeReferenceElements getJvmTypeReferenceAccess() { + return gaXtype.getJvmTypeReferenceAccess(); + } + + public ParserRule getJvmTypeReferenceRule() { + return getJvmTypeReferenceAccess().getRule(); + } + + //ArrayBrackets : + // '[' ']' + //; + public XtypeGrammarAccess.ArrayBracketsElements getArrayBracketsAccess() { + return gaXtype.getArrayBracketsAccess(); + } + + public ParserRule getArrayBracketsRule() { + return getArrayBracketsAccess().getRule(); + } + + //XFunctionTypeRef: + // ('(' (paramTypes+=JvmTypeReference (',' paramTypes+=JvmTypeReference)*)? ')')? '=>' returnType=JvmTypeReference; + public XtypeGrammarAccess.XFunctionTypeRefElements getXFunctionTypeRefAccess() { + return gaXtype.getXFunctionTypeRefAccess(); + } + + public ParserRule getXFunctionTypeRefRule() { + return getXFunctionTypeRefAccess().getRule(); + } + + //JvmParameterizedTypeReference: + // type=[JvmType|QualifiedName] ( + // =>'<' arguments+=JvmArgumentTypeReference (',' arguments+=JvmArgumentTypeReference)* '>' + // (=>({JvmInnerTypeReference.outer=current} '.') type=[JvmType|ValidID] (=>'<' arguments+=JvmArgumentTypeReference (',' arguments+=JvmArgumentTypeReference)* '>')?)* + // )?; + public XtypeGrammarAccess.JvmParameterizedTypeReferenceElements getJvmParameterizedTypeReferenceAccess() { + return gaXtype.getJvmParameterizedTypeReferenceAccess(); + } + + public ParserRule getJvmParameterizedTypeReferenceRule() { + return getJvmParameterizedTypeReferenceAccess().getRule(); + } + + //JvmArgumentTypeReference returns JvmTypeReference: + // JvmTypeReference | JvmWildcardTypeReference; + public XtypeGrammarAccess.JvmArgumentTypeReferenceElements getJvmArgumentTypeReferenceAccess() { + return gaXtype.getJvmArgumentTypeReferenceAccess(); + } + + public ParserRule getJvmArgumentTypeReferenceRule() { + return getJvmArgumentTypeReferenceAccess().getRule(); + } + + //JvmWildcardTypeReference: + // {JvmWildcardTypeReference} '?' ( + // constraints+=JvmUpperBound (constraints+=JvmUpperBoundAnded)* + // | constraints+=JvmLowerBound (constraints+=JvmLowerBoundAnded)* + // )?; + public XtypeGrammarAccess.JvmWildcardTypeReferenceElements getJvmWildcardTypeReferenceAccess() { + return gaXtype.getJvmWildcardTypeReferenceAccess(); + } + + public ParserRule getJvmWildcardTypeReferenceRule() { + return getJvmWildcardTypeReferenceAccess().getRule(); + } + + //JvmUpperBound : + // 'extends' typeReference=JvmTypeReference; + public XtypeGrammarAccess.JvmUpperBoundElements getJvmUpperBoundAccess() { + return gaXtype.getJvmUpperBoundAccess(); + } + + public ParserRule getJvmUpperBoundRule() { + return getJvmUpperBoundAccess().getRule(); + } + + //JvmUpperBoundAnded returns JvmUpperBound: + // '&' typeReference=JvmTypeReference; + public XtypeGrammarAccess.JvmUpperBoundAndedElements getJvmUpperBoundAndedAccess() { + return gaXtype.getJvmUpperBoundAndedAccess(); + } + + public ParserRule getJvmUpperBoundAndedRule() { + return getJvmUpperBoundAndedAccess().getRule(); + } + + //JvmLowerBound : + // 'super' typeReference=JvmTypeReference; + public XtypeGrammarAccess.JvmLowerBoundElements getJvmLowerBoundAccess() { + return gaXtype.getJvmLowerBoundAccess(); + } + + public ParserRule getJvmLowerBoundRule() { + return getJvmLowerBoundAccess().getRule(); + } + + //JvmLowerBoundAnded returns JvmLowerBound: + // '&' typeReference=JvmTypeReference; + public XtypeGrammarAccess.JvmLowerBoundAndedElements getJvmLowerBoundAndedAccess() { + return gaXtype.getJvmLowerBoundAndedAccess(); + } + + public ParserRule getJvmLowerBoundAndedRule() { + return getJvmLowerBoundAndedAccess().getRule(); + } + + //JvmTypeParameter : + // name=ValidID + // (constraints+=JvmUpperBound (constraints+=JvmUpperBoundAnded)*)?; + public XtypeGrammarAccess.JvmTypeParameterElements getJvmTypeParameterAccess() { + return gaXtype.getJvmTypeParameterAccess(); + } + + public ParserRule getJvmTypeParameterRule() { + return getJvmTypeParameterAccess().getRule(); + } + + //QualifiedName: + // ValidID ('.' ValidID)*; + public XtypeGrammarAccess.QualifiedNameElements getQualifiedNameAccess() { + return gaXtype.getQualifiedNameAccess(); + } + + public ParserRule getQualifiedNameRule() { + return getQualifiedNameAccess().getRule(); + } + + //QualifiedNameWithWildcard : + // QualifiedName '.' '*'; + public XtypeGrammarAccess.QualifiedNameWithWildcardElements getQualifiedNameWithWildcardAccess() { + return gaXtype.getQualifiedNameWithWildcardAccess(); + } + + public ParserRule getQualifiedNameWithWildcardRule() { + return getQualifiedNameWithWildcardAccess().getRule(); + } + + //ValidID: + // ID; + public XtypeGrammarAccess.ValidIDElements getValidIDAccess() { + return gaXtype.getValidIDAccess(); + } + + public ParserRule getValidIDRule() { + return getValidIDAccess().getRule(); + } + + //XImportSection: + // importDeclarations+=XImportDeclaration+; + public XtypeGrammarAccess.XImportSectionElements getXImportSectionAccess() { + return gaXtype.getXImportSectionAccess(); + } + + public ParserRule getXImportSectionRule() { + return getXImportSectionAccess().getRule(); + } + + //XImportDeclaration: + // 'import' ( + // (static?='static' extension?='extension'? importedType=[JvmDeclaredType|QualifiedNameInStaticImport] (wildcard?='*' | memberName=ValidID)) + // | importedType=[JvmDeclaredType|QualifiedName] + // | importedNamespace=QualifiedNameWithWildcard) ';'? + //; + public XtypeGrammarAccess.XImportDeclarationElements getXImportDeclarationAccess() { + return gaXtype.getXImportDeclarationAccess(); + } + + public ParserRule getXImportDeclarationRule() { + return getXImportDeclarationAccess().getRule(); + } + + //QualifiedNameInStaticImport: + // (ValidID '.')+ + //; + public XtypeGrammarAccess.QualifiedNameInStaticImportElements getQualifiedNameInStaticImportAccess() { + return gaXtype.getQualifiedNameInStaticImportAccess(); + } + + public ParserRule getQualifiedNameInStaticImportRule() { + return getQualifiedNameInStaticImportAccess().getRule(); + } + + //terminal ID: + // '^'? ('a'..'z'|'A'..'Z'|'$'|'_') ('a'..'z'|'A'..'Z'|'$'|'_'|'0'..'9')*; + public TerminalRule getIDRule() { + return gaXtype.getIDRule(); + } + + //terminal STRING: + // '"' ( '\\' . /* ('b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\') */ | !('\\'|'"') )* '"'? | + // "'" ( '\\' . /* ('b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\') */ | !('\\'|"'") )* "'"?; + public TerminalRule getSTRINGRule() { + return gaXtype.getSTRINGRule(); + } + + //terminal ML_COMMENT: '/*' -> '*/'; + public TerminalRule getML_COMMENTRule() { + return gaXtype.getML_COMMENTRule(); + } + + //terminal SL_COMMENT: '//' !('\n'|'\r')* ('\r'? '\n')?; + public TerminalRule getSL_COMMENTRule() { + return gaXtype.getSL_COMMENTRule(); + } + + //terminal WS: (' '|'\t'|'\r'|'\n')+; + public TerminalRule getWSRule() { + return gaXtype.getWSRule(); + } + + //terminal ANY_OTHER: .; + public TerminalRule getANY_OTHERRule() { + return gaXtype.getANY_OTHERRule(); + } +} diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Event.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Event.java new file mode 100644 index 000000000..ad2a6c349 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Event.java @@ -0,0 +1,71 @@ +/** + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.statemachine; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Event'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link de.cognicrypt.order.editor.statemachine.Event#getName Name}
  • + *
  • {@link de.cognicrypt.order.editor.statemachine.Event#getCode Code}
  • + *
+ * + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getEvent() + * @model + * @generated + */ +public interface Event extends EObject +{ + /** + * Returns the value of the 'Name' attribute. + * + * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getEvent_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link de.cognicrypt.order.editor.statemachine.Event#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Code' attribute. + * + * + * @return the value of the 'Code' attribute. + * @see #setCode(String) + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getEvent_Code() + * @model + * @generated + */ + String getCode(); + + /** + * Sets the value of the '{@link de.cognicrypt.order.editor.statemachine.Event#getCode Code}' attribute. + * + * + * @param value the new value of the 'Code' attribute. + * @see #getCode() + * @generated + */ + void setCode(String value); + +} // Event diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/State.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/State.java new file mode 100644 index 000000000..69d10e1df --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/State.java @@ -0,0 +1,63 @@ +/** + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.statemachine; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'State'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link de.cognicrypt.order.editor.statemachine.State#getName Name}
  • + *
  • {@link de.cognicrypt.order.editor.statemachine.State#getTransitions Transitions}
  • + *
+ * + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getState() + * @model + * @generated + */ +public interface State extends EObject +{ + /** + * Returns the value of the 'Name' attribute. + * + * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getState_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link de.cognicrypt.order.editor.statemachine.State#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Transitions' containment reference list. + * The list contents are of type {@link de.cognicrypt.order.editor.statemachine.Transition}. + * + * + * @return the value of the 'Transitions' containment reference list. + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getState_Transitions() + * @model containment="true" + * @generated + */ + EList getTransitions(); + +} // State diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java new file mode 100644 index 000000000..ca52c195e --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java @@ -0,0 +1,66 @@ +/** + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.statemachine; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Statemachine'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link de.cognicrypt.order.editor.statemachine.Statemachine#getEvents Events}
  • + *
  • {@link de.cognicrypt.order.editor.statemachine.Statemachine#getStates States}
  • + *
  • {@link de.cognicrypt.order.editor.statemachine.Statemachine#getTransitions Transitions}
  • + *
+ * + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getStatemachine() + * @model + * @generated + */ +public interface Statemachine extends EObject +{ + /** + * Returns the value of the 'Events' containment reference list. + * The list contents are of type {@link de.cognicrypt.order.editor.statemachine.Event}. + * + * + * @return the value of the 'Events' containment reference list. + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getStatemachine_Events() + * @model containment="true" + * @generated + */ + EList getEvents(); + + /** + * Returns the value of the 'States' containment reference list. + * The list contents are of type {@link de.cognicrypt.order.editor.statemachine.State}. + * + * + * @return the value of the 'States' containment reference list. + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getStatemachine_States() + * @model containment="true" + * @generated + */ + EList getStates(); + + /** + * Returns the value of the 'Transitions' containment reference list. + * The list contents are of type {@link de.cognicrypt.order.editor.statemachine.Transition}. + * + * + * @return the value of the 'Transitions' containment reference list. + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getStatemachine_Transitions() + * @model containment="true" + * @generated + */ + EList getTransitions(); + +} // Statemachine diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachineFactory.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachineFactory.java new file mode 100644 index 000000000..7398dbb47 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachineFactory.java @@ -0,0 +1,71 @@ +/** + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.statemachine; + +import org.eclipse.emf.ecore.EFactory; + +/** + * + * The Factory for the model. + * It provides a create method for each non-abstract class of the model. + * + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage + * @generated + */ +public interface StatemachineFactory extends EFactory +{ + /** + * The singleton instance of the factory. + * + * + * @generated + */ + StatemachineFactory eINSTANCE = de.cognicrypt.order.editor.statemachine.impl.StatemachineFactoryImpl.init(); + + /** + * Returns a new object of class 'Statemachine'. + * + * + * @return a new object of class 'Statemachine'. + * @generated + */ + Statemachine createStatemachine(); + + /** + * Returns a new object of class 'Event'. + * + * + * @return a new object of class 'Event'. + * @generated + */ + Event createEvent(); + + /** + * Returns a new object of class 'State'. + * + * + * @return a new object of class 'State'. + * @generated + */ + State createState(); + + /** + * Returns a new object of class 'Transition'. + * + * + * @return a new object of class 'Transition'. + * @generated + */ + Transition createTransition(); + + /** + * Returns the package supported by this factory. + * + * + * @return the package supported by this factory. + * @generated + */ + StatemachinePackage getStatemachinePackage(); + +} //StatemachineFactory diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachinePackage.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachinePackage.java new file mode 100644 index 000000000..97e9a8721 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachinePackage.java @@ -0,0 +1,550 @@ +/** + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.statemachine; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +/** + * + * The Package for the model. + * It contains accessors for the meta objects to represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @see de.cognicrypt.order.editor.statemachine.StatemachineFactory + * @model kind="package" + * @generated + */ +public interface StatemachinePackage extends EPackage +{ + /** + * The package name. + * + * + * @generated + */ + String eNAME = "statemachine"; + + /** + * The package namespace URI. + * + * + * @generated + */ + String eNS_URI = "http://www.cognicrypt.de/order/editor/Statemachine"; + + /** + * The package namespace name. + * + * + * @generated + */ + String eNS_PREFIX = "statemachine"; + + /** + * The singleton instance of the package. + * + * + * @generated + */ + StatemachinePackage eINSTANCE = de.cognicrypt.order.editor.statemachine.impl.StatemachinePackageImpl.init(); + + /** + * The meta object id for the '{@link de.cognicrypt.order.editor.statemachine.impl.StatemachineImpl Statemachine}' class. + * + * + * @see de.cognicrypt.order.editor.statemachine.impl.StatemachineImpl + * @see de.cognicrypt.order.editor.statemachine.impl.StatemachinePackageImpl#getStatemachine() + * @generated + */ + int STATEMACHINE = 0; + + /** + * The feature id for the 'Events' containment reference list. + * + * + * @generated + * @ordered + */ + int STATEMACHINE__EVENTS = 0; + + /** + * The feature id for the 'States' containment reference list. + * + * + * @generated + * @ordered + */ + int STATEMACHINE__STATES = 1; + + /** + * The feature id for the 'Transitions' containment reference list. + * + * + * @generated + * @ordered + */ + int STATEMACHINE__TRANSITIONS = 2; + + /** + * The number of structural features of the 'Statemachine' class. + * + * + * @generated + * @ordered + */ + int STATEMACHINE_FEATURE_COUNT = 3; + + /** + * The meta object id for the '{@link de.cognicrypt.order.editor.statemachine.impl.EventImpl Event}' class. + * + * + * @see de.cognicrypt.order.editor.statemachine.impl.EventImpl + * @see de.cognicrypt.order.editor.statemachine.impl.StatemachinePackageImpl#getEvent() + * @generated + */ + int EVENT = 1; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EVENT__NAME = 0; + + /** + * The feature id for the 'Code' attribute. + * + * + * @generated + * @ordered + */ + int EVENT__CODE = 1; + + /** + * The number of structural features of the 'Event' class. + * + * + * @generated + * @ordered + */ + int EVENT_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link de.cognicrypt.order.editor.statemachine.impl.StateImpl State}' class. + * + * + * @see de.cognicrypt.order.editor.statemachine.impl.StateImpl + * @see de.cognicrypt.order.editor.statemachine.impl.StatemachinePackageImpl#getState() + * @generated + */ + int STATE = 2; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE__NAME = 0; + + /** + * The feature id for the 'Transitions' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE__TRANSITIONS = 1; + + /** + * The number of structural features of the 'State' class. + * + * + * @generated + * @ordered + */ + int STATE_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link de.cognicrypt.order.editor.statemachine.impl.TransitionImpl Transition}' class. + * + * + * @see de.cognicrypt.order.editor.statemachine.impl.TransitionImpl + * @see de.cognicrypt.order.editor.statemachine.impl.StatemachinePackageImpl#getTransition() + * @generated + */ + int TRANSITION = 3; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION__NAME = 0; + + /** + * The feature id for the 'From State' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION__FROM_STATE = 1; + + /** + * The feature id for the 'Event' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION__EVENT = 2; + + /** + * The feature id for the 'End State' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION__END_STATE = 3; + + /** + * The number of structural features of the 'Transition' class. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_COUNT = 4; + + + /** + * Returns the meta object for class '{@link de.cognicrypt.order.editor.statemachine.Statemachine Statemachine}'. + * + * + * @return the meta object for class 'Statemachine'. + * @see de.cognicrypt.order.editor.statemachine.Statemachine + * @generated + */ + EClass getStatemachine(); + + /** + * Returns the meta object for the containment reference list '{@link de.cognicrypt.order.editor.statemachine.Statemachine#getEvents Events}'. + * + * + * @return the meta object for the containment reference list 'Events'. + * @see de.cognicrypt.order.editor.statemachine.Statemachine#getEvents() + * @see #getStatemachine() + * @generated + */ + EReference getStatemachine_Events(); + + /** + * Returns the meta object for the containment reference list '{@link de.cognicrypt.order.editor.statemachine.Statemachine#getStates States}'. + * + * + * @return the meta object for the containment reference list 'States'. + * @see de.cognicrypt.order.editor.statemachine.Statemachine#getStates() + * @see #getStatemachine() + * @generated + */ + EReference getStatemachine_States(); + + /** + * Returns the meta object for the containment reference list '{@link de.cognicrypt.order.editor.statemachine.Statemachine#getTransitions Transitions}'. + * + * + * @return the meta object for the containment reference list 'Transitions'. + * @see de.cognicrypt.order.editor.statemachine.Statemachine#getTransitions() + * @see #getStatemachine() + * @generated + */ + EReference getStatemachine_Transitions(); + + /** + * Returns the meta object for class '{@link de.cognicrypt.order.editor.statemachine.Event Event}'. + * + * + * @return the meta object for class 'Event'. + * @see de.cognicrypt.order.editor.statemachine.Event + * @generated + */ + EClass getEvent(); + + /** + * Returns the meta object for the attribute '{@link de.cognicrypt.order.editor.statemachine.Event#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see de.cognicrypt.order.editor.statemachine.Event#getName() + * @see #getEvent() + * @generated + */ + EAttribute getEvent_Name(); + + /** + * Returns the meta object for the attribute '{@link de.cognicrypt.order.editor.statemachine.Event#getCode Code}'. + * + * + * @return the meta object for the attribute 'Code'. + * @see de.cognicrypt.order.editor.statemachine.Event#getCode() + * @see #getEvent() + * @generated + */ + EAttribute getEvent_Code(); + + /** + * Returns the meta object for class '{@link de.cognicrypt.order.editor.statemachine.State State}'. + * + * + * @return the meta object for class 'State'. + * @see de.cognicrypt.order.editor.statemachine.State + * @generated + */ + EClass getState(); + + /** + * Returns the meta object for the attribute '{@link de.cognicrypt.order.editor.statemachine.State#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see de.cognicrypt.order.editor.statemachine.State#getName() + * @see #getState() + * @generated + */ + EAttribute getState_Name(); + + /** + * Returns the meta object for the containment reference list '{@link de.cognicrypt.order.editor.statemachine.State#getTransitions Transitions}'. + * + * + * @return the meta object for the containment reference list 'Transitions'. + * @see de.cognicrypt.order.editor.statemachine.State#getTransitions() + * @see #getState() + * @generated + */ + EReference getState_Transitions(); + + /** + * Returns the meta object for class '{@link de.cognicrypt.order.editor.statemachine.Transition Transition}'. + * + * + * @return the meta object for class 'Transition'. + * @see de.cognicrypt.order.editor.statemachine.Transition + * @generated + */ + EClass getTransition(); + + /** + * Returns the meta object for the attribute '{@link de.cognicrypt.order.editor.statemachine.Transition#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see de.cognicrypt.order.editor.statemachine.Transition#getName() + * @see #getTransition() + * @generated + */ + EAttribute getTransition_Name(); + + /** + * Returns the meta object for the reference '{@link de.cognicrypt.order.editor.statemachine.Transition#getFromState From State}'. + * + * + * @return the meta object for the reference 'From State'. + * @see de.cognicrypt.order.editor.statemachine.Transition#getFromState() + * @see #getTransition() + * @generated + */ + EReference getTransition_FromState(); + + /** + * Returns the meta object for the reference '{@link de.cognicrypt.order.editor.statemachine.Transition#getEvent Event}'. + * + * + * @return the meta object for the reference 'Event'. + * @see de.cognicrypt.order.editor.statemachine.Transition#getEvent() + * @see #getTransition() + * @generated + */ + EReference getTransition_Event(); + + /** + * Returns the meta object for the reference '{@link de.cognicrypt.order.editor.statemachine.Transition#getEndState End State}'. + * + * + * @return the meta object for the reference 'End State'. + * @see de.cognicrypt.order.editor.statemachine.Transition#getEndState() + * @see #getTransition() + * @generated + */ + EReference getTransition_EndState(); + + /** + * Returns the factory that creates the instances of the model. + * + * + * @return the factory that creates the instances of the model. + * @generated + */ + StatemachineFactory getStatemachineFactory(); + + /** + * + * Defines literals for the meta objects that represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @generated + */ + interface Literals + { + /** + * The meta object literal for the '{@link de.cognicrypt.order.editor.statemachine.impl.StatemachineImpl Statemachine}' class. + * + * + * @see de.cognicrypt.order.editor.statemachine.impl.StatemachineImpl + * @see de.cognicrypt.order.editor.statemachine.impl.StatemachinePackageImpl#getStatemachine() + * @generated + */ + EClass STATEMACHINE = eINSTANCE.getStatemachine(); + + /** + * The meta object literal for the 'Events' containment reference list feature. + * + * + * @generated + */ + EReference STATEMACHINE__EVENTS = eINSTANCE.getStatemachine_Events(); + + /** + * The meta object literal for the 'States' containment reference list feature. + * + * + * @generated + */ + EReference STATEMACHINE__STATES = eINSTANCE.getStatemachine_States(); + + /** + * The meta object literal for the 'Transitions' containment reference list feature. + * + * + * @generated + */ + EReference STATEMACHINE__TRANSITIONS = eINSTANCE.getStatemachine_Transitions(); + + /** + * The meta object literal for the '{@link de.cognicrypt.order.editor.statemachine.impl.EventImpl Event}' class. + * + * + * @see de.cognicrypt.order.editor.statemachine.impl.EventImpl + * @see de.cognicrypt.order.editor.statemachine.impl.StatemachinePackageImpl#getEvent() + * @generated + */ + EClass EVENT = eINSTANCE.getEvent(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute EVENT__NAME = eINSTANCE.getEvent_Name(); + + /** + * The meta object literal for the 'Code' attribute feature. + * + * + * @generated + */ + EAttribute EVENT__CODE = eINSTANCE.getEvent_Code(); + + /** + * The meta object literal for the '{@link de.cognicrypt.order.editor.statemachine.impl.StateImpl State}' class. + * + * + * @see de.cognicrypt.order.editor.statemachine.impl.StateImpl + * @see de.cognicrypt.order.editor.statemachine.impl.StatemachinePackageImpl#getState() + * @generated + */ + EClass STATE = eINSTANCE.getState(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute STATE__NAME = eINSTANCE.getState_Name(); + + /** + * The meta object literal for the 'Transitions' containment reference list feature. + * + * + * @generated + */ + EReference STATE__TRANSITIONS = eINSTANCE.getState_Transitions(); + + /** + * The meta object literal for the '{@link de.cognicrypt.order.editor.statemachine.impl.TransitionImpl Transition}' class. + * + * + * @see de.cognicrypt.order.editor.statemachine.impl.TransitionImpl + * @see de.cognicrypt.order.editor.statemachine.impl.StatemachinePackageImpl#getTransition() + * @generated + */ + EClass TRANSITION = eINSTANCE.getTransition(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute TRANSITION__NAME = eINSTANCE.getTransition_Name(); + + /** + * The meta object literal for the 'From State' reference feature. + * + * + * @generated + */ + EReference TRANSITION__FROM_STATE = eINSTANCE.getTransition_FromState(); + + /** + * The meta object literal for the 'Event' reference feature. + * + * + * @generated + */ + EReference TRANSITION__EVENT = eINSTANCE.getTransition_Event(); + + /** + * The meta object literal for the 'End State' reference feature. + * + * + * @generated + */ + EReference TRANSITION__END_STATE = eINSTANCE.getTransition_EndState(); + + } + +} //StatemachinePackage diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Transition.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Transition.java new file mode 100644 index 000000000..c6ccc021a --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Transition.java @@ -0,0 +1,117 @@ +/** + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.statemachine; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Transition'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link de.cognicrypt.order.editor.statemachine.Transition#getName Name}
  • + *
  • {@link de.cognicrypt.order.editor.statemachine.Transition#getFromState From State}
  • + *
  • {@link de.cognicrypt.order.editor.statemachine.Transition#getEvent Event}
  • + *
  • {@link de.cognicrypt.order.editor.statemachine.Transition#getEndState End State}
  • + *
+ * + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getTransition() + * @model + * @generated + */ +public interface Transition extends EObject +{ + /** + * Returns the value of the 'Name' attribute. + * + * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getTransition_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link de.cognicrypt.order.editor.statemachine.Transition#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'From State' reference. + * + * + * @return the value of the 'From State' reference. + * @see #setFromState(State) + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getTransition_FromState() + * @model + * @generated + */ + State getFromState(); + + /** + * Sets the value of the '{@link de.cognicrypt.order.editor.statemachine.Transition#getFromState From State}' reference. + * + * + * @param value the new value of the 'From State' reference. + * @see #getFromState() + * @generated + */ + void setFromState(State value); + + /** + * Returns the value of the 'Event' reference. + * + * + * @return the value of the 'Event' reference. + * @see #setEvent(Event) + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getTransition_Event() + * @model + * @generated + */ + Event getEvent(); + + /** + * Sets the value of the '{@link de.cognicrypt.order.editor.statemachine.Transition#getEvent Event}' reference. + * + * + * @param value the new value of the 'Event' reference. + * @see #getEvent() + * @generated + */ + void setEvent(Event value); + + /** + * Returns the value of the 'End State' reference. + * + * + * @return the value of the 'End State' reference. + * @see #setEndState(State) + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getTransition_EndState() + * @model + * @generated + */ + State getEndState(); + + /** + * Sets the value of the '{@link de.cognicrypt.order.editor.statemachine.Transition#getEndState End State}' reference. + * + * + * @param value the new value of the 'End State' reference. + * @see #getEndState() + * @generated + */ + void setEndState(State value); + +} // Transition diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/EventImpl.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/EventImpl.java new file mode 100644 index 000000000..eb3b838a5 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/EventImpl.java @@ -0,0 +1,238 @@ +/** + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.statemachine.impl; + +import de.cognicrypt.order.editor.statemachine.Event; +import de.cognicrypt.order.editor.statemachine.StatemachinePackage; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Event'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link de.cognicrypt.order.editor.statemachine.impl.EventImpl#getName Name}
  • + *
  • {@link de.cognicrypt.order.editor.statemachine.impl.EventImpl#getCode Code}
  • + *
+ * + * @generated + */ +public class EventImpl extends MinimalEObjectImpl.Container implements Event +{ + /** + * 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 #getCode() Code}' attribute. + * + * + * @see #getCode() + * @generated + * @ordered + */ + protected static final String CODE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getCode() Code}' attribute. + * + * + * @see #getCode() + * @generated + * @ordered + */ + protected String code = CODE_EDEFAULT; + + /** + * + * + * @generated + */ + protected EventImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StatemachinePackage.Literals.EVENT; + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.EVENT__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + @Override + public String getCode() + { + return code; + } + + /** + * + * + * @generated + */ + @Override + public void setCode(String newCode) + { + String oldCode = code; + code = newCode; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.EVENT__CODE, oldCode, code)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StatemachinePackage.EVENT__NAME: + return getName(); + case StatemachinePackage.EVENT__CODE: + return getCode(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StatemachinePackage.EVENT__NAME: + setName((String)newValue); + return; + case StatemachinePackage.EVENT__CODE: + setCode((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StatemachinePackage.EVENT__NAME: + setName(NAME_EDEFAULT); + return; + case StatemachinePackage.EVENT__CODE: + setCode(CODE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StatemachinePackage.EVENT__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case StatemachinePackage.EVENT__CODE: + return CODE_EDEFAULT == null ? code != null : !CODE_EDEFAULT.equals(code); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(", code: "); + result.append(code); + result.append(')'); + return result.toString(); + } + +} //EventImpl diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StateImpl.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StateImpl.java new file mode 100644 index 000000000..bf04722a2 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StateImpl.java @@ -0,0 +1,244 @@ +/** + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.statemachine.impl; + +import de.cognicrypt.order.editor.statemachine.State; +import de.cognicrypt.order.editor.statemachine.StatemachinePackage; +import de.cognicrypt.order.editor.statemachine.Transition; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'State'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link de.cognicrypt.order.editor.statemachine.impl.StateImpl#getName Name}
  • + *
  • {@link de.cognicrypt.order.editor.statemachine.impl.StateImpl#getTransitions Transitions}
  • + *
+ * + * @generated + */ +public class StateImpl extends MinimalEObjectImpl.Container implements State +{ + /** + * The default value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * The cached value of the '{@link #getTransitions() Transitions}' containment reference list. + * + * + * @see #getTransitions() + * @generated + * @ordered + */ + protected EList transitions; + + /** + * + * + * @generated + */ + protected StateImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StatemachinePackage.Literals.STATE; + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.STATE__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + @Override + public EList getTransitions() + { + if (transitions == null) + { + transitions = new EObjectContainmentEList(Transition.class, this, StatemachinePackage.STATE__TRANSITIONS); + } + return transitions; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case StatemachinePackage.STATE__TRANSITIONS: + return ((InternalEList)getTransitions()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StatemachinePackage.STATE__NAME: + return getName(); + case StatemachinePackage.STATE__TRANSITIONS: + return getTransitions(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StatemachinePackage.STATE__NAME: + setName((String)newValue); + return; + case StatemachinePackage.STATE__TRANSITIONS: + getTransitions().clear(); + getTransitions().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StatemachinePackage.STATE__NAME: + setName(NAME_EDEFAULT); + return; + case StatemachinePackage.STATE__TRANSITIONS: + getTransitions().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StatemachinePackage.STATE__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case StatemachinePackage.STATE__TRANSITIONS: + return transitions != null && !transitions.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + +} //StateImpl diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineFactoryImpl.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineFactoryImpl.java new file mode 100644 index 000000000..7cfbed492 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineFactoryImpl.java @@ -0,0 +1,148 @@ +/** + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.statemachine.impl; + +import de.cognicrypt.order.editor.statemachine.*; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.impl.EFactoryImpl; + +import org.eclipse.emf.ecore.plugin.EcorePlugin; + +/** + * + * An implementation of the model Factory. + * + * @generated + */ +public class StatemachineFactoryImpl extends EFactoryImpl implements StatemachineFactory +{ + /** + * Creates the default factory implementation. + * + * + * @generated + */ + public static StatemachineFactory init() + { + try + { + StatemachineFactory theStatemachineFactory = (StatemachineFactory)EPackage.Registry.INSTANCE.getEFactory(StatemachinePackage.eNS_URI); + if (theStatemachineFactory != null) + { + return theStatemachineFactory; + } + } + catch (Exception exception) + { + EcorePlugin.INSTANCE.log(exception); + } + return new StatemachineFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * + * + * @generated + */ + public StatemachineFactoryImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + public EObject create(EClass eClass) + { + switch (eClass.getClassifierID()) + { + case StatemachinePackage.STATEMACHINE: return createStatemachine(); + case StatemachinePackage.EVENT: return createEvent(); + case StatemachinePackage.STATE: return createState(); + case StatemachinePackage.TRANSITION: return createTransition(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + @Override + public Statemachine createStatemachine() + { + StatemachineImpl statemachine = new StatemachineImpl(); + return statemachine; + } + + /** + * + * + * @generated + */ + @Override + public Event createEvent() + { + EventImpl event = new EventImpl(); + return event; + } + + /** + * + * + * @generated + */ + @Override + public State createState() + { + StateImpl state = new StateImpl(); + return state; + } + + /** + * + * + * @generated + */ + @Override + public Transition createTransition() + { + TransitionImpl transition = new TransitionImpl(); + return transition; + } + + /** + * + * + * @generated + */ + @Override + public StatemachinePackage getStatemachinePackage() + { + return (StatemachinePackage)getEPackage(); + } + + /** + * + * + * @deprecated + * @generated + */ + @Deprecated + public static StatemachinePackage getPackage() + { + return StatemachinePackage.eINSTANCE; + } + +} //StatemachineFactoryImpl diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineImpl.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineImpl.java new file mode 100644 index 000000000..95f1bf593 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineImpl.java @@ -0,0 +1,249 @@ +/** + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.statemachine.impl; + +import de.cognicrypt.order.editor.statemachine.Event; +import de.cognicrypt.order.editor.statemachine.State; +import de.cognicrypt.order.editor.statemachine.Statemachine; +import de.cognicrypt.order.editor.statemachine.StatemachinePackage; +import de.cognicrypt.order.editor.statemachine.Transition; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'Statemachine'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link de.cognicrypt.order.editor.statemachine.impl.StatemachineImpl#getEvents Events}
  • + *
  • {@link de.cognicrypt.order.editor.statemachine.impl.StatemachineImpl#getStates States}
  • + *
  • {@link de.cognicrypt.order.editor.statemachine.impl.StatemachineImpl#getTransitions Transitions}
  • + *
+ * + * @generated + */ +public class StatemachineImpl extends MinimalEObjectImpl.Container implements Statemachine +{ + /** + * The cached value of the '{@link #getEvents() Events}' containment reference list. + * + * + * @see #getEvents() + * @generated + * @ordered + */ + protected EList events; + + /** + * The cached value of the '{@link #getStates() States}' containment reference list. + * + * + * @see #getStates() + * @generated + * @ordered + */ + protected EList states; + + /** + * The cached value of the '{@link #getTransitions() Transitions}' containment reference list. + * + * + * @see #getTransitions() + * @generated + * @ordered + */ + protected EList transitions; + + /** + * + * + * @generated + */ + protected StatemachineImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StatemachinePackage.Literals.STATEMACHINE; + } + + /** + * + * + * @generated + */ + @Override + public EList getEvents() + { + if (events == null) + { + events = new EObjectContainmentEList(Event.class, this, StatemachinePackage.STATEMACHINE__EVENTS); + } + return events; + } + + /** + * + * + * @generated + */ + @Override + public EList getStates() + { + if (states == null) + { + states = new EObjectContainmentEList(State.class, this, StatemachinePackage.STATEMACHINE__STATES); + } + return states; + } + + /** + * + * + * @generated + */ + @Override + public EList getTransitions() + { + if (transitions == null) + { + transitions = new EObjectContainmentEList(Transition.class, this, StatemachinePackage.STATEMACHINE__TRANSITIONS); + } + return transitions; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case StatemachinePackage.STATEMACHINE__EVENTS: + return ((InternalEList)getEvents()).basicRemove(otherEnd, msgs); + case StatemachinePackage.STATEMACHINE__STATES: + return ((InternalEList)getStates()).basicRemove(otherEnd, msgs); + case StatemachinePackage.STATEMACHINE__TRANSITIONS: + return ((InternalEList)getTransitions()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StatemachinePackage.STATEMACHINE__EVENTS: + return getEvents(); + case StatemachinePackage.STATEMACHINE__STATES: + return getStates(); + case StatemachinePackage.STATEMACHINE__TRANSITIONS: + return getTransitions(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StatemachinePackage.STATEMACHINE__EVENTS: + getEvents().clear(); + getEvents().addAll((Collection)newValue); + return; + case StatemachinePackage.STATEMACHINE__STATES: + getStates().clear(); + getStates().addAll((Collection)newValue); + return; + case StatemachinePackage.STATEMACHINE__TRANSITIONS: + getTransitions().clear(); + getTransitions().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StatemachinePackage.STATEMACHINE__EVENTS: + getEvents().clear(); + return; + case StatemachinePackage.STATEMACHINE__STATES: + getStates().clear(); + return; + case StatemachinePackage.STATEMACHINE__TRANSITIONS: + getTransitions().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StatemachinePackage.STATEMACHINE__EVENTS: + return events != null && !events.isEmpty(); + case StatemachinePackage.STATEMACHINE__STATES: + return states != null && !states.isEmpty(); + case StatemachinePackage.STATEMACHINE__TRANSITIONS: + return transitions != null && !transitions.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //StatemachineImpl diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachinePackageImpl.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachinePackageImpl.java new file mode 100644 index 000000000..6c70815e9 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachinePackageImpl.java @@ -0,0 +1,389 @@ +/** + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.statemachine.impl; + +import de.cognicrypt.order.editor.statemachine.Event; +import de.cognicrypt.order.editor.statemachine.State; +import de.cognicrypt.order.editor.statemachine.Statemachine; +import de.cognicrypt.order.editor.statemachine.StatemachineFactory; +import de.cognicrypt.order.editor.statemachine.StatemachinePackage; +import de.cognicrypt.order.editor.statemachine.Transition; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +import org.eclipse.emf.ecore.impl.EPackageImpl; + +/** + * + * An implementation of the model Package. + * + * @generated + */ +public class StatemachinePackageImpl extends EPackageImpl implements StatemachinePackage +{ + /** + * + * + * @generated + */ + private EClass statemachineEClass = null; + + /** + * + * + * @generated + */ + private EClass eventEClass = null; + + /** + * + * + * @generated + */ + private EClass stateEClass = null; + + /** + * + * + * @generated + */ + private EClass transitionEClass = null; + + /** + * Creates an instance of the model Package, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + *

Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * + * + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#eNS_URI + * @see #init() + * @generated + */ + private StatemachinePackageImpl() + { + super(eNS_URI, StatemachineFactory.eINSTANCE); + } + + /** + * + * + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the Package for this model, and for any others upon which it depends. + * + *

This method is used to initialize {@link StatemachinePackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * + * + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static StatemachinePackage init() + { + if (isInited) return (StatemachinePackage)EPackage.Registry.INSTANCE.getEPackage(StatemachinePackage.eNS_URI); + + // Obtain or create and register package + Object registeredStatemachinePackage = EPackage.Registry.INSTANCE.get(eNS_URI); + StatemachinePackageImpl theStatemachinePackage = registeredStatemachinePackage instanceof StatemachinePackageImpl ? (StatemachinePackageImpl)registeredStatemachinePackage : new StatemachinePackageImpl(); + + isInited = true; + + // Create package meta-data objects + theStatemachinePackage.createPackageContents(); + + // Initialize created meta-data + theStatemachinePackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theStatemachinePackage.freeze(); + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(StatemachinePackage.eNS_URI, theStatemachinePackage); + return theStatemachinePackage; + } + + /** + * + * + * @generated + */ + @Override + public EClass getStatemachine() + { + return statemachineEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getStatemachine_Events() + { + return (EReference)statemachineEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStatemachine_States() + { + return (EReference)statemachineEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStatemachine_Transitions() + { + return (EReference)statemachineEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getEvent() + { + return eventEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getEvent_Name() + { + return (EAttribute)eventEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getEvent_Code() + { + return (EAttribute)eventEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getState() + { + return stateEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getState_Name() + { + return (EAttribute)stateEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getState_Transitions() + { + return (EReference)stateEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getTransition() + { + return transitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getTransition_Name() + { + return (EAttribute)transitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTransition_FromState() + { + return (EReference)transitionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTransition_Event() + { + return (EReference)transitionEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTransition_EndState() + { + return (EReference)transitionEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public StatemachineFactory getStatemachineFactory() + { + return (StatemachineFactory)getEFactoryInstance(); + } + + /** + * + * + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void createPackageContents() + { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + statemachineEClass = createEClass(STATEMACHINE); + createEReference(statemachineEClass, STATEMACHINE__EVENTS); + createEReference(statemachineEClass, STATEMACHINE__STATES); + createEReference(statemachineEClass, STATEMACHINE__TRANSITIONS); + + eventEClass = createEClass(EVENT); + createEAttribute(eventEClass, EVENT__NAME); + createEAttribute(eventEClass, EVENT__CODE); + + stateEClass = createEClass(STATE); + createEAttribute(stateEClass, STATE__NAME); + createEReference(stateEClass, STATE__TRANSITIONS); + + transitionEClass = createEClass(TRANSITION); + createEAttribute(transitionEClass, TRANSITION__NAME); + createEReference(transitionEClass, TRANSITION__FROM_STATE); + createEReference(transitionEClass, TRANSITION__EVENT); + createEReference(transitionEClass, TRANSITION__END_STATE); + } + + /** + * + * + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void initializePackageContents() + { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + + // Initialize classes and features; add operations and parameters + initEClass(statemachineEClass, Statemachine.class, "Statemachine", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getStatemachine_Events(), this.getEvent(), null, "events", null, 0, -1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getStatemachine_States(), this.getState(), null, "states", null, 0, -1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getStatemachine_Transitions(), this.getTransition(), null, "transitions", null, 0, -1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(eventEClass, Event.class, "Event", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getEvent_Name(), ecorePackage.getEString(), "name", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getEvent_Code(), ecorePackage.getEString(), "code", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(stateEClass, State.class, "State", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getState_Name(), ecorePackage.getEString(), "name", null, 0, 1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getState_Transitions(), this.getTransition(), null, "transitions", null, 0, -1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(transitionEClass, Transition.class, "Transition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getTransition_Name(), ecorePackage.getEString(), "name", null, 0, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTransition_FromState(), this.getState(), null, "fromState", null, 0, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTransition_Event(), this.getEvent(), null, "event", null, 0, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTransition_EndState(), this.getState(), null, "endState", null, 0, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Create resource + createResource(eNS_URI); + } + +} //StatemachinePackageImpl diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/TransitionImpl.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/TransitionImpl.java new file mode 100644 index 000000000..5603b1e8a --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/TransitionImpl.java @@ -0,0 +1,384 @@ +/** + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.statemachine.impl; + +import de.cognicrypt.order.editor.statemachine.Event; +import de.cognicrypt.order.editor.statemachine.State; +import de.cognicrypt.order.editor.statemachine.StatemachinePackage; +import de.cognicrypt.order.editor.statemachine.Transition; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Transition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link de.cognicrypt.order.editor.statemachine.impl.TransitionImpl#getName Name}
  • + *
  • {@link de.cognicrypt.order.editor.statemachine.impl.TransitionImpl#getFromState From State}
  • + *
  • {@link de.cognicrypt.order.editor.statemachine.impl.TransitionImpl#getEvent Event}
  • + *
  • {@link de.cognicrypt.order.editor.statemachine.impl.TransitionImpl#getEndState End State}
  • + *
+ * + * @generated + */ +public class TransitionImpl extends MinimalEObjectImpl.Container implements Transition +{ + /** + * The default value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * The cached value of the '{@link #getFromState() From State}' reference. + * + * + * @see #getFromState() + * @generated + * @ordered + */ + protected State fromState; + + /** + * The cached value of the '{@link #getEvent() Event}' reference. + * + * + * @see #getEvent() + * @generated + * @ordered + */ + protected Event event; + + /** + * The cached value of the '{@link #getEndState() End State}' reference. + * + * + * @see #getEndState() + * @generated + * @ordered + */ + protected State endState; + + /** + * + * + * @generated + */ + protected TransitionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StatemachinePackage.Literals.TRANSITION; + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.TRANSITION__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + @Override + public State getFromState() + { + if (fromState != null && fromState.eIsProxy()) + { + InternalEObject oldFromState = (InternalEObject)fromState; + fromState = (State)eResolveProxy(oldFromState); + if (fromState != oldFromState) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, StatemachinePackage.TRANSITION__FROM_STATE, oldFromState, fromState)); + } + } + return fromState; + } + + /** + * + * + * @generated + */ + public State basicGetFromState() + { + return fromState; + } + + /** + * + * + * @generated + */ + @Override + public void setFromState(State newFromState) + { + State oldFromState = fromState; + fromState = newFromState; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.TRANSITION__FROM_STATE, oldFromState, fromState)); + } + + /** + * + * + * @generated + */ + @Override + public Event getEvent() + { + if (event != null && event.eIsProxy()) + { + InternalEObject oldEvent = (InternalEObject)event; + event = (Event)eResolveProxy(oldEvent); + if (event != oldEvent) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, StatemachinePackage.TRANSITION__EVENT, oldEvent, event)); + } + } + return event; + } + + /** + * + * + * @generated + */ + public Event basicGetEvent() + { + return event; + } + + /** + * + * + * @generated + */ + @Override + public void setEvent(Event newEvent) + { + Event oldEvent = event; + event = newEvent; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.TRANSITION__EVENT, oldEvent, event)); + } + + /** + * + * + * @generated + */ + @Override + public State getEndState() + { + if (endState != null && endState.eIsProxy()) + { + InternalEObject oldEndState = (InternalEObject)endState; + endState = (State)eResolveProxy(oldEndState); + if (endState != oldEndState) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, StatemachinePackage.TRANSITION__END_STATE, oldEndState, endState)); + } + } + return endState; + } + + /** + * + * + * @generated + */ + public State basicGetEndState() + { + return endState; + } + + /** + * + * + * @generated + */ + @Override + public void setEndState(State newEndState) + { + State oldEndState = endState; + endState = newEndState; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.TRANSITION__END_STATE, oldEndState, endState)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StatemachinePackage.TRANSITION__NAME: + return getName(); + case StatemachinePackage.TRANSITION__FROM_STATE: + if (resolve) return getFromState(); + return basicGetFromState(); + case StatemachinePackage.TRANSITION__EVENT: + if (resolve) return getEvent(); + return basicGetEvent(); + case StatemachinePackage.TRANSITION__END_STATE: + if (resolve) return getEndState(); + return basicGetEndState(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StatemachinePackage.TRANSITION__NAME: + setName((String)newValue); + return; + case StatemachinePackage.TRANSITION__FROM_STATE: + setFromState((State)newValue); + return; + case StatemachinePackage.TRANSITION__EVENT: + setEvent((Event)newValue); + return; + case StatemachinePackage.TRANSITION__END_STATE: + setEndState((State)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StatemachinePackage.TRANSITION__NAME: + setName(NAME_EDEFAULT); + return; + case StatemachinePackage.TRANSITION__FROM_STATE: + setFromState((State)null); + return; + case StatemachinePackage.TRANSITION__EVENT: + setEvent((Event)null); + return; + case StatemachinePackage.TRANSITION__END_STATE: + setEndState((State)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StatemachinePackage.TRANSITION__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case StatemachinePackage.TRANSITION__FROM_STATE: + return fromState != null; + case StatemachinePackage.TRANSITION__EVENT: + return event != null; + case StatemachinePackage.TRANSITION__END_STATE: + return endState != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + +} //TransitionImpl diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineAdapterFactory.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineAdapterFactory.java new file mode 100644 index 000000000..819905b71 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineAdapterFactory.java @@ -0,0 +1,193 @@ +/** + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.statemachine.util; + +import de.cognicrypt.order.editor.statemachine.*; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; + +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * The Adapter Factory for the model. + * It provides an adapter createXXX method for each class of the model. + * + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage + * @generated + */ +public class StatemachineAdapterFactory extends AdapterFactoryImpl +{ + /** + * The cached model package. + * + * + * @generated + */ + protected static StatemachinePackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * + * + * @generated + */ + public StatemachineAdapterFactory() + { + if (modelPackage == null) + { + modelPackage = StatemachinePackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * + * This implementation returns true if the object is either the model's package or is an instance object of the model. + * + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) + { + if (object == modelPackage) + { + return true; + } + if (object instanceof EObject) + { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch that delegates to the createXXX methods. + * + * + * @generated + */ + protected StatemachineSwitch modelSwitch = + new StatemachineSwitch() + { + @Override + public Adapter caseStatemachine(Statemachine object) + { + return createStatemachineAdapter(); + } + @Override + public Adapter caseEvent(Event object) + { + return createEventAdapter(); + } + @Override + public Adapter caseState(State object) + { + return createStateAdapter(); + } + @Override + public Adapter caseTransition(Transition object) + { + return createTransitionAdapter(); + } + @Override + public Adapter defaultCase(EObject object) + { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the target. + * + * + * @param target the object to adapt. + * @return the adapter for the target. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) + { + return modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link de.cognicrypt.order.editor.statemachine.Statemachine Statemachine}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see de.cognicrypt.order.editor.statemachine.Statemachine + * @generated + */ + public Adapter createStatemachineAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link de.cognicrypt.order.editor.statemachine.Event Event}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see de.cognicrypt.order.editor.statemachine.Event + * @generated + */ + public Adapter createEventAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link de.cognicrypt.order.editor.statemachine.State State}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see de.cognicrypt.order.editor.statemachine.State + * @generated + */ + public Adapter createStateAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link de.cognicrypt.order.editor.statemachine.Transition Transition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see de.cognicrypt.order.editor.statemachine.Transition + * @generated + */ + public Adapter createTransitionAdapter() + { + return null; + } + + /** + * Creates a new adapter for the default case. + * + * This default implementation returns null. + * + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() + { + return null; + } + +} //StatemachineAdapterFactory diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineSwitch.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineSwitch.java new file mode 100644 index 000000000..8b8f75357 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineSwitch.java @@ -0,0 +1,189 @@ +/** + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.statemachine.util; + +import de.cognicrypt.order.editor.statemachine.*; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.util.Switch; + +/** + * + * The Switch for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the caseXXX method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage + * @generated + */ +public class StatemachineSwitch extends Switch +{ + /** + * The cached model package + * + * + * @generated + */ + protected static StatemachinePackage modelPackage; + + /** + * Creates an instance of the switch. + * + * + * @generated + */ + public StatemachineSwitch() + { + if (modelPackage == null) + { + modelPackage = StatemachinePackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * + * + * @param ePackage the package in question. + * @return whether this is a switch for the given package. + * @generated + */ + @Override + protected boolean isSwitchFor(EPackage ePackage) + { + return ePackage == modelPackage; + } + + /** + * Calls caseXXX for each class of the model until one returns a non null result; it yields that result. + * + * + * @return the first non-null result returned by a caseXXX call. + * @generated + */ + @Override + protected T doSwitch(int classifierID, EObject theEObject) + { + switch (classifierID) + { + case StatemachinePackage.STATEMACHINE: + { + Statemachine statemachine = (Statemachine)theEObject; + T result = caseStatemachine(statemachine); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StatemachinePackage.EVENT: + { + Event event = (Event)theEObject; + T result = caseEvent(event); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StatemachinePackage.STATE: + { + State state = (State)theEObject; + T result = caseState(state); + if (result == null) result = defaultCase(theEObject); + return result; + } + case StatemachinePackage.TRANSITION: + { + Transition transition = (Transition)theEObject; + T result = caseTransition(transition); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of 'Statemachine'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Statemachine'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStatemachine(Statemachine object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Event'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Event'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEvent(Event object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'State'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'State'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseState(State object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Transition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Transition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTransition(Transition object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'EObject'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'EObject'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + @Override + public T defaultCase(EObject object) + { + return null; + } + +} //StatemachineSwitch diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/validation/AbstractStatemachineValidator.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/validation/AbstractStatemachineValidator.java new file mode 100644 index 000000000..53adaaf07 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/validation/AbstractStatemachineValidator.java @@ -0,0 +1,21 @@ +/* + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.validation; + +import java.util.ArrayList; +import java.util.List; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.xtext.xbase.validation.XtypeValidator; + +public abstract class AbstractStatemachineValidator extends XtypeValidator { + + @Override + protected List getEPackages() { + List result = new ArrayList(super.getEPackages()); + result.add(de.cognicrypt.order.editor.statemachine.StatemachinePackage.eINSTANCE); + result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/xtext/common/JavaVMTypes")); + result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/xtext/xbase/Xtype")); + return result; + } +} diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/validation/StatemachineConfigurableIssueCodesProvider.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/validation/StatemachineConfigurableIssueCodesProvider.java new file mode 100644 index 000000000..bc9f3a571 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/validation/StatemachineConfigurableIssueCodesProvider.java @@ -0,0 +1,22 @@ +/* + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.validation; + +import org.eclipse.xtext.preferences.PreferenceKey; +import org.eclipse.xtext.util.IAcceptor; +import org.eclipse.xtext.validation.ConfigurableIssueCodesProvider; +import org.eclipse.xtext.validation.SeverityConverter; + +@SuppressWarnings("restriction") +public class StatemachineConfigurableIssueCodesProvider extends ConfigurableIssueCodesProvider { + protected static final String ISSUE_CODE_PREFIX = "de.cognicrypt.order.editor."; + + public static final String DEPRECATED_MODEL_PART = ISSUE_CODE_PREFIX + "deprecatedModelPart"; + + @Override + protected void initialize(IAcceptor acceptor) { + super.initialize(acceptor); + acceptor.accept(create(DEPRECATED_MODEL_PART, SeverityConverter.SEVERITY_WARNING)); + } +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Activator.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Activator.java new file mode 100644 index 000000000..dd8e056e9 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Activator.java @@ -0,0 +1,75 @@ +/******************************************************************************** + * Copyright (c) 2015-2019 TU Darmstadt, Paderborn University + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + ********************************************************************************/ + +package de.cognicrypt.order.editor; + +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends AbstractUIPlugin { + + // The plug-in ID + public static final String PLUGIN_ID = "de.cognicrypt.order.editor"; //$NON-NLS-1$ + + // The shared instance + private static Activator plugin; + + /** + * The constructor + */ + public Activator() {} + + @Override + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + } + + @Override + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } + + private void log(final int severity, final String message, final Exception ex) { + getLog().log(new Status(severity, Activator.PLUGIN_ID, message, ex)); + } + + public void logError(final Exception ex) { + logError(ex, ex.getMessage()); + } + + public void logError(final Exception ex, final String message) { + log(IStatus.ERROR, message, ex); + } + + public void logError(final String message) { + log(IStatus.ERROR, message, null); + } + + public void logInfo(final String message) { + log(IStatus.INFO, message, null); + } + +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Constants.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Constants.java new file mode 100644 index 000000000..c83fabe4a --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Constants.java @@ -0,0 +1,30 @@ +/******************************************************************************** + * Copyright (c) 2015-2019 TU Darmstadt, Paderborn University + * + + * http://www.eclipse.org/legal/epl-2.0. SPDX-License-Identifier: EPL-2.0 + ********************************************************************************/ + +package de.cognicrypt.order.editor; + +/** + * This class comprises all constants that are used by the plugin. + */ +public class Constants { + + public static final String innerFileSeparator = "/"; + //public static final String rsrcPath = "src" + innerFileSeparator + "main" + innerFileSeparator + "resources" + innerFileSeparator; + + public final static String RELATIVE_STATEMACHINE_CONFIG_DIR = "config" + innerFileSeparator; + public final static String RELATIVE_STATEMACHINE_MODELS_DIR = "output" + innerFileSeparator; + + public static final String STATEMACHINE_EXTENSION = ".statemachine"; + public static final String XML_EXTENSION = ".xml"; + + public final static String RELATIVE_JCA_FOLDER = innerFileSeparator + "git" + innerFileSeparator + "Crypto-API-Rules" + innerFileSeparator + "JavaCryptographicArchitecture" + innerFileSeparator + "src"; + public final static String RELATIVE_BC_FOLDER = innerFileSeparator + "git" + innerFileSeparator + "Crypto-API-Rules" + innerFileSeparator + "BouncyCastle" + innerFileSeparator + "src"; + public final static String RELATIVE_BC_JCA_FOLDER = innerFileSeparator + "git" + innerFileSeparator + "Crypto-API-Rules" + innerFileSeparator + "BouncyCastle-JCA" + innerFileSeparator + "src"; + public final static String RELATIVE_TINK_FOLDER = innerFileSeparator + "git" + innerFileSeparator + "Crypto-API-Rules" + innerFileSeparator + "Tink" + innerFileSeparator + "src"; + + public static final String ERROR_MESSAGE_NO_FILE = "No file found"; +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/GenerateStatemachine.mwe2 b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/GenerateStatemachine.mwe2 new file mode 100644 index 000000000..a1d1f66c5 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/GenerateStatemachine.mwe2 @@ -0,0 +1,60 @@ +module de.cognicrypt.order.editor.GenerateStatemachine + +import org.eclipse.xtext.xtext.generator.* +import org.eclipse.xtext.xtext.generator.model.project.* + +var rootPath = ".." + +Workflow { + + component = XtextGenerator { + configuration = { + project = StandardProjectConfig { + baseName = "de.cognicrypt.order.editor" + rootPath = rootPath + runtimeTest = { + enabled = true + } + eclipsePlugin = { + enabled = true + } + eclipsePluginTest = { + enabled = true + } + createEclipseMetaData = true + } + code = { + encoding = "windows-1252" + lineDelimiter = "\r\n" + fileHeader = "/*\n * generated by Xtext \${version}\n */" + preferXtendStubs = false + } + } + language = StandardLanguage { + name = "de.cognicrypt.order.editor.Statemachine" + fileExtensions = "statemachine" + scopeProvider = { + generateXtendStub = false + } + + serializer = { + generateStub = false + } + validator = { + // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" + // Generates checks for @Deprecated grammar annotations, an IssueProvider and a corresponding PropertyPage + generateDeprecationValidation = true + } + generator = { + generateXtendStub = true + generateJavaMain = true + } + fileWizard = { + generate = true + } + junitSupport = { + junitVersion = "5" + } + } + } +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext new file mode 100644 index 000000000..600f4f0da --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext @@ -0,0 +1,29 @@ +grammar de.cognicrypt.order.editor.Statemachine with org.eclipse.xtext.xbase.Xtype // with org.eclipse.xtext.common.Terminals + +generate statemachine "http://www.cognicrypt.de/order/editor/Statemachine" + +Statemachine : + {Statemachine} + ('events' + events+=Event+ + 'end')? + states+=State* + transitions+=Transition* +; + +Event: + name=ID code=ID +; + +State: + 'state' name=ID + transitions+=Transition* + 'end' +; + +Transition: + 'transition' name=ID + fromState=[State] ',' event=[Event] ',' endState=[State] + 'end' +; + \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/StatemachineRuntimeModule.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/StatemachineRuntimeModule.java new file mode 100644 index 000000000..353dbb68a --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/StatemachineRuntimeModule.java @@ -0,0 +1,11 @@ +/* + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor; + + +/** + * Use this class to register components to be used at runtime / without the Equinox extension registry. + */ +public class StatemachineRuntimeModule extends AbstractStatemachineRuntimeModule { +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/StatemachineStandaloneSetup.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/StatemachineStandaloneSetup.java new file mode 100644 index 000000000..523319819 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/StatemachineStandaloneSetup.java @@ -0,0 +1,15 @@ +/* + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor; + + +/** + * Initialization support for running Xtext languages without Equinox extension registry. + */ +public class StatemachineStandaloneSetup extends StatemachineStandaloneSetupGenerated { + + public static void doSetup() { + new StatemachineStandaloneSetup().createInjectorAndDoEMFRegistration(); + } +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/actions/RunOrderEditorHandler.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/actions/RunOrderEditorHandler.java new file mode 100644 index 000000000..9380dfd97 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/actions/RunOrderEditorHandler.java @@ -0,0 +1,32 @@ +/******************************************************************************** + * Copyright (c) 2015-2019 TU Darmstadt, Paderborn University + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + ********************************************************************************/ + +package de.cognicrypt.order.editor.actions; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.ui.PlatformUI; + +import de.cognicrypt.core.Constants; +import de.cognicrypt.order.editor.wizard.OrderEditorWizard; +import de.cognicrypt.order.editor.wizard.OrderEditorWizardDialog; + +public class RunOrderEditorHandler extends AbstractHandler { + + @Override + public Object execute(ExecutionEvent event) throws ExecutionException { + Constants.WizardActionFromContextMenuFlag = true; + final OrderEditorWizardDialog dialog = new OrderEditorWizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), new OrderEditorWizard()); + dialog.setHelpAvailable(false); + return dialog.open(); + } + +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/config/CryslFile.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/config/CryslFile.java new file mode 100644 index 000000000..c07dcb4ed --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/config/CryslFile.java @@ -0,0 +1,27 @@ +package de.cognicrypt.order.editor.config; + +public class CryslFile { //represents a CryslFile object from config.xml + + private String rule; + private String path; + + public String getRule() { + return rule; + } + + public String getRuleName() { + return rule.substring(0, rule.length()-6); + } + + public void setRule(String rule) { + this.rule = rule; + } + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/config/StaxParser.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/config/StaxParser.java new file mode 100644 index 000000000..c647058c7 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/config/StaxParser.java @@ -0,0 +1,70 @@ +package de.cognicrypt.order.editor.config; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; + +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.events.EndElement; +import javax.xml.stream.events.StartElement; +import javax.xml.stream.events.XMLEvent; + + +import de.cognicrypt.order.editor.parser.StatemachineParser; + + +public class StaxParser { + + static final String CRYSLFILE = "cryslFile"; + static final String RULE = "rule"; + static final String PATH = "path"; + + @SuppressWarnings({ "unchecked", "null" }) + public List readConfig(String configFile) { + List cryslFileList = new ArrayList(); + try { + XMLInputFactory inputFactory = XMLInputFactory.newInstance(); + InputStream in = new FileInputStream(configFile); + XMLEventReader eventReader = inputFactory.createXMLEventReader(in); + CryslFile cryslFile = null; + + while (eventReader.hasNext()) { + XMLEvent event = eventReader.nextEvent(); + + if (event.isStartElement()) { + StartElement startElement = event.asStartElement(); + String elementName = startElement.getName().getLocalPart(); + switch (elementName) { + case CRYSLFILE: + cryslFile = new CryslFile(); + break; + case RULE: + event = eventReader.nextEvent(); + cryslFile.setRule(event.asCharacters().getData()); + break; + case PATH: + event = eventReader.nextEvent(); + cryslFile.setPath(event.asCharacters().getData()); + break; + } + } + if (event.isEndElement()) { + EndElement endElement = event.asEndElement(); + if (endElement.getName().getLocalPart().equals(CRYSLFILE)) { + cryslFileList.add(cryslFile); + } + } + + } + } catch (FileNotFoundException | XMLStreamException e) { + e.printStackTrace(); + } + StatemachineParser.generate(cryslFileList); + return cryslFileList; + } +} + diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/config/StaxWriter.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/config/StaxWriter.java new file mode 100644 index 000000000..4b04aeb43 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/config/StaxWriter.java @@ -0,0 +1,178 @@ +package de.cognicrypt.order.editor.config; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.net.URLConnection; +import java.util.Arrays; +import java.util.Enumeration; + +import javax.xml.stream.XMLEventFactory; +import javax.xml.stream.XMLEventWriter; +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.events.Characters; +import javax.xml.stream.events.EndElement; +import javax.xml.stream.events.StartDocument; +import javax.xml.stream.events.StartElement; +import javax.xml.stream.events.XMLEvent; + +import org.eclipse.core.runtime.FileLocator; +import org.eclipse.core.runtime.Platform; +import org.osgi.framework.Bundle; + +import de.cognicrypt.order.editor.Activator; +import de.cognicrypt.order.editor.Constants; +import de.cognicrypt.utils.Utils; + +public class StaxWriter { + private File f; + + public void setFile(String configFile) { + + final Bundle bundle = Platform.getBundle(de.cognicrypt.order.editor.Activator.PLUGIN_ID); + + URL entry = null; + URL resolvedURL = null; + if (bundle == null) { + } + else { + entry = bundle.getEntry(Constants.RELATIVE_STATEMACHINE_CONFIG_DIR); + } + if (entry == null) { + } + try { + resolvedURL = FileLocator.toFileURL(entry); + } catch (IOException e8) { + e8.printStackTrace(); + } + java.net.URI resolvedURI = null; + if (!(resolvedURL == null)) { + try { + resolvedURI = new java.net.URI(resolvedURL.getProtocol(), resolvedURL.getPath(), null); + } catch (URISyntaxException e) { + e.printStackTrace(); + }finally { + + }} + else { + try { + resolvedURI = FileLocator.resolve(entry).toURI(); + } catch (URISyntaxException e1) { + e1.printStackTrace(); + } catch (IOException e1) { + e1.printStackTrace(); + } + } + + java.net.URI fileUri = null; + + try { + fileUri = new java.net.URI(resolvedURI + configFile); + } catch (URISyntaxException e8) { + e8.printStackTrace(); + } + + File file = new File(fileUri); + + if(!file.exists()) { + try { + file.createNewFile(); + } catch (IOException e1) { + e1.printStackTrace(); + } + } + f = file; + } + + public void saveConfig() throws Exception { + + File folderJCA = new File(System.getProperty("user.home") + Constants.RELATIVE_JCA_FOLDER); + File folderBC = new File(System.getProperty("user.home") + Constants.RELATIVE_BC_FOLDER); + File folderBCJCA = new File(System.getProperty("user.home") + Constants.RELATIVE_BC_JCA_FOLDER); + File folderTink = new File(System.getProperty("user.home") + Constants.RELATIVE_TINK_FOLDER); + + File[] listOfFilesJCA = folderJCA.listFiles(); + File[] listOfFilesBC = folderBC.listFiles(); + File[] listOfFilesBCJCA = folderBCJCA.listFiles(); + File[] listOfFilesTink = folderTink.listFiles(); + File[] all = concatAll(listOfFilesJCA, listOfFilesBC, listOfFilesBCJCA, listOfFilesTink); + + XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); + XMLEventWriter eventWriter = outputFactory + .createXMLEventWriter(new FileOutputStream(f)); + XMLEventFactory eventFactory = XMLEventFactory.newInstance(); + XMLEvent end = eventFactory.createDTD("\n"); + + StartDocument startDocument = eventFactory.createStartDocument(); + eventWriter.add(startDocument); + + eventWriter.add(eventFactory.createStartElement("", + "", "folders")); + + for (int i = 0; i < all.length; i++) { + if (all[i].isFile()) { + if(all[i].getName().contains("crysl")) { + + StartElement folderStartElement = eventFactory.createStartElement("", + "", "cryslFile"); + eventWriter.add(folderStartElement); + createNode(eventWriter, "rule", all[i].getName()); + createNode(eventWriter, "path", all[i].getAbsolutePath()); + eventWriter.add(eventFactory.createEndElement("", "", "cryslFile")); + eventWriter.add(end); + } + } + } + + eventWriter.add(end); + + eventWriter.add(eventFactory.createEndElement("", "", "folders")); + eventWriter.add(end); + + eventWriter.add(eventFactory.createEndDocument()); + eventWriter.close(); + } + + private void createNode(XMLEventWriter eventWriter, String name, + String value) throws XMLStreamException { + + XMLEventFactory eventFactory = XMLEventFactory.newInstance(); + XMLEvent end = eventFactory.createDTD("\n"); + XMLEvent tab = eventFactory.createDTD("\t"); + + StartElement sElement = eventFactory.createStartElement("", "", name); + eventWriter.add(tab); + eventWriter.add(sElement); + + Characters characters = eventFactory.createCharacters(value); + eventWriter.add(characters); + + EndElement eElement = eventFactory.createEndElement("", "", name); + eventWriter.add(eElement); + eventWriter.add(end); + } + + public static T[] concatAll(T[] head, T[]... tail) { + int totalLength = head.length; + for (T[] array : tail) { + totalLength += array.length; + } + T[] result = Arrays.copyOf(head, totalLength); + int offset = head.length; + for (T[] array : tail) { + System.arraycopy(array, 0, result, offset, array.length); + offset += array.length; + } + return result; + } + + public File getFile() { + return f; + } +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/generator/Main.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/generator/Main.java new file mode 100644 index 000000000..16df1ba4d --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/generator/Main.java @@ -0,0 +1,68 @@ +/* + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.generator; + +import com.google.inject.Inject; +import com.google.inject.Injector; +import com.google.inject.Provider; +import de.cognicrypt.order.editor.StatemachineStandaloneSetup; +import java.util.List; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.xtext.generator.GeneratorContext; +import org.eclipse.xtext.generator.GeneratorDelegate; +import org.eclipse.xtext.generator.JavaIoFileSystemAccess; +import org.eclipse.xtext.util.CancelIndicator; +import org.eclipse.xtext.validation.CheckMode; +import org.eclipse.xtext.validation.IResourceValidator; +import org.eclipse.xtext.validation.Issue; + +public class Main { + + public static void main(String[] args) { + if (args.length == 0) { + System.err.println("Aborting: no path to EMF resource provided!"); + return; + } + Injector injector = new StatemachineStandaloneSetup().createInjectorAndDoEMFRegistration(); + Main main = injector.getInstance(Main.class); + main.runGenerator(args[0]); + } + + @Inject + private Provider resourceSetProvider; + + @Inject + private IResourceValidator validator; + + @Inject + private GeneratorDelegate generator; + + @Inject + private JavaIoFileSystemAccess fileAccess; + + protected void runGenerator(String string) { + // Load the resource + ResourceSet set = resourceSetProvider.get(); + Resource resource = set.getResource(URI.createFileURI(string), true); + + // Validate the resource + List list = validator.validate(resource, CheckMode.ALL, CancelIndicator.NullImpl); + if (!list.isEmpty()) { + for (Issue issue : list) { + System.err.println(issue); + } + return; + } + + // Configure and start the generator + fileAccess.setOutputPath("src-gen/"); + GeneratorContext context = new GeneratorContext(); + context.setCancelIndicator(CancelIndicator.NullImpl); + generator.generate(resource, fileAccess, context); + + System.out.println("Code generation finished."); + } +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/generator/StatemachineGenerator.xtend b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/generator/StatemachineGenerator.xtend new file mode 100644 index 000000000..e621c60de --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/generator/StatemachineGenerator.xtend @@ -0,0 +1,25 @@ +/* + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext + +/** + * Generates code from your model files on save. + * + * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation + */ +class StatemachineGenerator extends AbstractGenerator { + + override void doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) { +// fsa.generateFile('greetings.txt', 'People to greet: ' + +// resource.allContents +// .filter(Greeting) +// .map[name] +// .join(', ')) + } +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java new file mode 100644 index 000000000..27452bad4 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java @@ -0,0 +1,251 @@ +package de.cognicrypt.order.editor.parser; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.List; +import java.util.Set; + +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.FileLocator; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.URIConverter; +import org.eclipse.emf.ecore.resource.URIHandler; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.xtext.common.types.access.impl.ClasspathTypeProvider; +import org.eclipse.xtext.resource.SaveOptions; +import org.eclipse.xtext.resource.XtextResource; +import org.eclipse.xtext.resource.XtextResourceSet; +import org.osgi.framework.Bundle; + +import com.google.inject.Injector; + +import de.cognicrypt.order.editor.Activator; +import de.cognicrypt.order.editor.Constants; +import de.cognicrypt.order.editor.config.CryslFile; +import de.darmstadt.tu.crossing.CrySLStandaloneSetup; +import de.darmstadt.tu.crossing.StatemachineStandaloneSetup; +import de.darmstadt.tu.crossing.crySL.Domainmodel; +import de.darmstadt.tu.crossing.crySL.Expression; +import de.darmstadt.tu.crossing.crySL.SuperType; +import de.darmstadt.tu.crossing.statemachine.StateMachineGraph; +import de.darmstadt.tu.crossing.statemachine.StateMachineGraphBuilder; +import de.darmstadt.tu.crossing.statemachine.StateNode; +import de.darmstadt.tu.crossing.statemachine.Statemachine; +import de.darmstadt.tu.crossing.statemachine.StatemachineFactory; +import de.darmstadt.tu.crossing.statemachine.StatemachinePackage; +import de.darmstadt.tu.crossing.statemachine.TransitionEdge; + +public class StatemachineParser { + + public static void generate(List cryslFileList) { + HashMap selfs = new HashMap(); + for(CryslFile f : cryslFileList) { + + try { + EObject self = provideCrySLEObject(f.getPath()); + generateStatemachineXtextResource(self, f.getRuleName()); + } catch (MalformedURLException e2) { + e2.printStackTrace(); + } + } + } + + public static void generateStatemachineXtextResource(EObject self, String ruleName) { + final Domainmodel dm = (Domainmodel) self; + Expression order = dm.getOrder(); + + StateMachineGraph smgb = new StateMachineGraphBuilder(order).buildSMG(); + Set stateNodes = smgb.getNodes(); + java.util.List transitionEdges = smgb.getEdges(); + java.util.List myTransitionEvents = new ArrayList(); // only for labels as they do not provide info what is source and target + + for(TransitionEdge e : transitionEdges) { + myTransitionEvents.add(e.getLabel()); + } + + StatemachineStandaloneSetup.doSetup(); + + StatemachineStandaloneSetup stmStandaloneSetup = new StatemachineStandaloneSetup(); + final Injector injector = stmStandaloneSetup.createInjectorAndDoEMFRegistration(); + stmStandaloneSetup.register(injector); + + ResourceSet resourceSet = new ResourceSetImpl(); + StatemachinePackage.eINSTANCE.eClass(); + + String path = Activator.PLUGIN_ID + "/output/" + ruleName + Constants.STATEMACHINE_EXTENSION; + Resource resource = createAndAddXtextResourcePlatformPluginURI(path, resourceSet); + + resourceSet.getResources().add(resource); + + Statemachine statemachine = StatemachineFactory.eINSTANCE.createStatemachine(); + + de.darmstadt.tu.crossing.statemachine.State state = null; + de.darmstadt.tu.crossing.statemachine.Event event = null; + de.darmstadt.tu.crossing.statemachine.Transition transition = null; + HashMap stateNodeMap = new HashMap(); + + SuperType ev = null; + int counter = 0; + + //process stateNodes separately, still unsorted + for(StateNode s: stateNodes) { + state = StatemachineFactory.eINSTANCE.createState(); + state.setName("s" + s.getName()); + statemachine.getStates().add(state); + counter++; + stateNodeMap.put(s, state); + } + + //process transition edges for states and transitions + for(int i = 0; i < transitionEdges.size(); i++) { + if(transitionEdges.get(i).getLabel() instanceof SuperType) { + ev = (SuperType) transitionEdges.get(i).getLabel(); + event = StatemachineFactory.eINSTANCE.createEvent(); + // check for duplicate events to avoid same naming for different edges (causes serialization error) + if(sameEvent(transitionEdges, transitionEdges.get(i))) { + event.setName(((SuperType) ev).getName() + i); + event.setCode(((SuperType) ev).getName() + i); + } + else { + event.setName(((SuperType) ev).getName()); + event.setCode(((SuperType) ev).getName()); + } + statemachine.getEvents().add(event); + } + + transition = StatemachineFactory.eINSTANCE.createTransition(); + + transition.setName("t" + i); + transition.setEvent(event); + transition.setFromState(stateNodeMap.get(transitionEdges.get(i).from())); + transition.setEndState(stateNodeMap.get(transitionEdges.get(i).to())); + transition.getFromState().getTransitions().add(transition); + statemachine.getTransitions().add(transition); + } + + resource.getContents().add(statemachine); + + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + + try { + resource.save(outputStream, SaveOptions.newBuilder().format().getOptions().toOptionsMap()); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + outputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + // store in file + java.net.URI resolvedURI = null; + + try { + final Bundle bundle = Platform.getBundle(de.cognicrypt.order.editor.Activator.PLUGIN_ID); + final URL entry = bundle.getEntry(Constants.RELATIVE_STATEMACHINE_MODELS_DIR); + final URL resolvedURL = FileLocator.toFileURL(entry); + if (!(resolvedURL == null)) { + resolvedURI = new URI(resolvedURL.getProtocol(), resolvedURL.getPath(), null); + } else { + resolvedURI = FileLocator.resolve(entry).toURI(); + } + } + catch (final IOException ex) { + Activator.getDefault().logError(ex, Constants.ERROR_MESSAGE_NO_FILE); + } catch (URISyntaxException ex) { + Activator.getDefault().logError(ex); + } + java.net.URI fileURI = null; + + try { + fileURI = new java.net.URI(resolvedURI + ruleName + Constants.STATEMACHINE_EXTENSION); + } catch (URISyntaxException e3) { + e3.printStackTrace(); + } + + File file = new File(fileURI); + + if(!file.exists()) { + try { + file.createNewFile(); + } catch (IOException e1) { + e1.printStackTrace(); + } + } + + try (OutputStream fileOutputStream = new FileOutputStream(file)) { + try { + outputStream.writeTo(fileOutputStream); + } catch (IOException ioe) { + ioe.printStackTrace(); + } finally { + fileOutputStream.close(); + } + } catch (IOException e2) { + e2.printStackTrace(); + } + } + + // method for checking whether events occur more frequently + public static boolean sameEvent(List edges, TransitionEdge e) { + int counter = 0; + for(TransitionEdge ed: edges) { + if(ed != e) { + if(ed.getLabel().equals(e.getLabel())) { + counter++; + } + } + } + if(counter > 0) { + return true; + } + return false; + } + + public static XtextResource createAndAddXtextResourcePlatformPluginURI(String outputFile, ResourceSet resourceSet) { + // parsing a plug-in-based path string, with an option to encode the created URI + org.eclipse.emf.common.util.URI uri = org.eclipse.emf.common.util.URI.createPlatformPluginURI(outputFile, false); + XtextResource resource = (XtextResource) resourceSet.createResource(uri); + return resource; + } + + public static EObject provideCrySLEObject(String pathToCryslFile) throws MalformedURLException { + // Loading model + CrySLStandaloneSetup crySLStandaloneSetup = new CrySLStandaloneSetup(); + final Injector injector = crySLStandaloneSetup.createInjectorAndDoEMFRegistration(); + XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class); + String a = System.getProperty("java.class.path"); + String[] l = a.split(";"); + URL[] classpath = new URL[l.length]; + for (int i = 0; i < classpath.length; i++) { + classpath[i] = new File(l[i]).toURI().toURL(); + } + URLClassLoader ucl = new URLClassLoader(classpath); + resourceSet.setClasspathURIContext(new URLClassLoader(classpath)); + new ClasspathTypeProvider(ucl, resourceSet, null, null); + resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE); + final Resource resource = resourceSet.getResource(org.eclipse.emf.common.util.URI.createFileURI(pathToCryslFile), true); + final EObject eObject = resource.getContents().get(0); + return eObject; + } +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/scoping/StatemachineScopeProvider.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/scoping/StatemachineScopeProvider.java new file mode 100644 index 000000000..c5af0d9e8 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/scoping/StatemachineScopeProvider.java @@ -0,0 +1,15 @@ +/* + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.scoping; + + +/** + * This class contains custom scoping description. + * + * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping + * on how and when to use it. + */ +public class StatemachineScopeProvider extends AbstractStatemachineScopeProvider { + +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/validation/StatemachineValidator.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/validation/StatemachineValidator.java new file mode 100644 index 000000000..bb828f593 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/validation/StatemachineValidator.java @@ -0,0 +1,25 @@ +/* + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.validation; + + +/** + * This class contains custom validation rules. + * + * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation + */ +public class StatemachineValidator extends AbstractStatemachineValidator { + +// public static final String INVALID_NAME = "invalidName"; +// +// @Check +// public void checkGreetingStartsWithCapital(Greeting greeting) { +// if (!Character.isUpperCase(greeting.getName().charAt(0))) { +// warning("Name should start with a capital", +// StatemachinePackage.Literals.GREETING__NAME, +// INVALID_NAME); +// } +// } + +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/wizard/OrderEditorWizard.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/wizard/OrderEditorWizard.java new file mode 100644 index 000000000..536a98507 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/wizard/OrderEditorWizard.java @@ -0,0 +1,32 @@ +/******************************************************************************** + * Copyright (c) 2015-2019 TU Darmstadt, Paderborn University + * + + * http://www.eclipse.org/legal/epl-2.0. SPDX-License-Identifier: EPL-2.0 + ********************************************************************************/ + +package de.cognicrypt.order.editor.wizard; + +import org.eclipse.jface.wizard.Wizard; +import de.cognicrypt.core.Constants; + +public class OrderEditorWizard extends Wizard { + + public OrderEditorWizard() { + + } + + @Override + public void addPages() { + addPage(new PageForOrderDiagramWizard(Constants.PAGE_NAME_FOR_MODE_OF_WIZARD, Constants.PAGE_TITLE_FOR_MODE_OF_WIZARD, Constants.PAGE_DESCRIPTION_FOR_MODE_OF_WIZARD)); + + //addPage(new PageForTaskIntegratorWizard(Constants.PAGE_NAME_FOR_LINK_ANSWERS, Constants.PAGE_TITLE_FOR_LINK_ANSWERS, Constants.PAGE_DESCIPTION_FOR_LINK_ANSWERS)); + + } + + @Override + public boolean performFinish() { + // TODO Auto-generated method stub + return false; + } +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/wizard/OrderEditorWizardDialog.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/wizard/OrderEditorWizardDialog.java new file mode 100644 index 000000000..9c9837904 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/wizard/OrderEditorWizardDialog.java @@ -0,0 +1,33 @@ +/******************************************************************************** + * Copyright (c) 2015-2019 TU Darmstadt, Paderborn University + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + ********************************************************************************/ + +package de.cognicrypt.order.editor.wizard; + +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.wizard.IWizard; +import org.eclipse.jface.wizard.WizardDialog; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Shell; + +public class OrderEditorWizardDialog extends WizardDialog { + + public OrderEditorWizardDialog(final Shell parentShell, final IWizard newWizard) { + super(parentShell, newWizard); + } + + @Override + protected void createButtonsForButtonBar(final Composite parent) { + super.createButtonsForButtonBar(parent); + final Button finishButton = getButton(IDialogConstants.FINISH_ID); + finishButton.setText("Generate"); + } + +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/wizard/PageForOrderDiagramWizard.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/wizard/PageForOrderDiagramWizard.java new file mode 100644 index 000000000..ff96659a7 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/wizard/PageForOrderDiagramWizard.java @@ -0,0 +1,83 @@ +/******************************************************************************** + * Copyright (c) 2015-2019 TU Darmstadt, Paderborn University + * + + * http://www.eclipse.org/legal/epl-2.0. SPDX-License-Identifier: EPL-2.0 + ********************************************************************************/ + +/** + * + */ +package de.cognicrypt.order.editor.wizard; + +import java.util.List; +import org.eclipse.jface.wizard.WizardPage; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; + +import de.cognicrypt.order.editor.Constants; +import de.cognicrypt.order.editor.config.CryslFile; +import de.cognicrypt.order.editor.config.StaxParser; +import de.cognicrypt.order.editor.config.StaxWriter; + +public class PageForOrderDiagramWizard extends WizardPage { + + /** + * Create the wizard. + */ + public PageForOrderDiagramWizard(final String name, final String title, final String description) { + super(name); + setTitle(title); + setDescription(description); + setPageComplete(false); + } + + /** + * Create contents of the wizard. + * + * @param parent + */ + @Override + public void createControl(final Composite parent) { + final Composite container = new Composite(parent, SWT.NONE); + setControl(container); + + container.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); + container.setLayout(new GridLayout(2, false)); + + // needs to be replaced by file selection drop down menu later + final Button button = new Button(container, SWT.PUSH); + button.setText("Generate Statemachine Models"); + + button.addSelectionListener(new SelectionListener() { + + + @Override + public void widgetSelected(SelectionEvent e) { + // TODO Auto-generated method stub + + StaxWriter configFile = new StaxWriter(); + + configFile.setFile("config" + Constants.XML_EXTENSION); + try { + configFile.saveConfig(); + } catch (Exception ex) { + ex.printStackTrace(); + } + StaxParser read = new StaxParser(); + List readConfig = read.readConfig(configFile.getFile().getPath()); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + // TODO Auto-generated method stub + + } + }); + } +} diff --git a/plugins/de.cognicrypt.order.editor/xtend-gen/de/cognicrypt/order/editor/generator/.StatemachineGenerator.java._trace b/plugins/de.cognicrypt.order.editor/xtend-gen/de/cognicrypt/order/editor/generator/.StatemachineGenerator.java._trace new file mode 100644 index 0000000000000000000000000000000000000000..5977d03553b8caa5219fa965b62199ecb71bb584 GIT binary patch literal 414 zcmY+-KTE?v7{~E@@<&o4m|SYw3W6>Qg3VAzhr4IV;-rg{5R#(?G0~7gN72Q}cTn&} z_%58fy7d*fItbo9p%AC!bKm?fj4>AgKOkn7JeFVn1ehpPlGpR9%$vu%HmRFJHHj+9 zwr-NSs#KGiw~IDw)oqqvmz7G_r_+a4RfP?QU^5F2EQf)d$tQn%eLJ(|Of38@W3ku_ zbYF^9VEUJOQyKXDjpF5^H~9C6Y&*RuWza4MepP@j6@myg*7q8mk;q06~`^aYsu z)M8&Z!1FO_pKIB8Ip{Q?U0;A%*N#jByxFBMPe!!6k2*!P>kIJ3p_V$dd)*_Q?a=Ox RcQSvsurI)OkJ^=Ic7HG2M_d2^ literal 0 HcmV?d00001 diff --git a/plugins/de.cognicrypt.order.editor/xtend-gen/de/cognicrypt/order/editor/generator/.StatemachineGenerator.xtendbin b/plugins/de.cognicrypt.order.editor/xtend-gen/de/cognicrypt/order/editor/generator/.StatemachineGenerator.xtendbin new file mode 100644 index 0000000000000000000000000000000000000000..3a8a8672ec9ec5b8d914eb595f1d7a3173c119da GIT binary patch literal 2311 zcmaJ@c{mi_8XjvVWMr&ATZQZ;TegtN*qN-6tb-9l#xi5g7+d^GLK%CAEJYbRWl5wV zM#O~1zK^Yt?Q;M5=|1<~_xy3rbDnd)^F7b|e((9r4C&~>0463TfNdPFIp73Xj@EE* zHyIZnq(2<#kIJ%e@*yjMQXySwh2M}11bZ?8H571H(@4_FQRo4y4Zb`&fdE{P*{H#$ z^_;QO2kVW*Z?VPf&kIP{-K$oqI3*J4xAlc;bv60l~_*wFB38&O(JoWQ&&05>9M!ND$%5}+3wq*K(y+CNK6Y?DD z{%4{9QoT4sb1J%P`RMGn&h<&0=UCn{u7fR>H#ONG0rQ1dDT|AR_KGR%O0D8$*HU7v zzwjf^u(PNbo7|#NbRzYh6N*YQAqT3Zj=Dv&A8PWdR@b-#e2f?bml#z{hjH`kTscu7 zX$DQ)##zFJ%Cbcy{M!D|IA470xKL9kdVOsculGnodhL^n_)B*qWG&DD8+ev@5+Oy8oj|#6qZq`8gCtg3#aU3u$VXs%d z%u#kF(uvKyITX#LL*prS+SrfdaShX2Wh6(>%~FB`aM`9JQ$p#~JTV{?lSYk#Mel(Z z`AUlypDOI=6|IU#i&IEgQD>OvXrb_Vy>u>H85QYTV=s5Ab8CN{&Ud?St=a-5m#8@I z+J^Rqa3EaCbam>D@@51~HvyrLnd+wZ&Ky?ZEJ;P0Jx#x1 zQK^cZVf_Q8T*UYcM4DsQ;Y1&6xXGT9V1UJScyITGIgTNWmbz4E#k|U+G}*;{HH)qv z3mt=Cp0eF(=KcjIyGwPQi0VRj!3o2!G26*ik~-?P%I(%X<*aKz>(9L^pFgY|j7WVy z-ZOTyvwnQJ-Rp3BXu;}D&MNpfN6W?mZNtiB47N&`R1waY>E`+ZZ{BOpViFp6ceP9=Fw9+ z0N{`b05JQX1r0tbXg@g0C&14IF5?PEx%eS`{SiLMrWE7516n*EbC#PoKb$Xne(DA& zcq7Rv2$puI%+cCT8q3++W0JjOqJQPy%X>AJ|f&(xgQ#{JWl`FZ*Ny*lil+H>83G8n$U`8*=;U`O93#@gRhXKFSnN#b!;*y$ zq}lPY#IQ3?tA}BOHgrnAAzi92Z4}>`sXd#S=~Y;Pb2V{mCn{?;GM_sWOWeClDdMq#<#->PNJh6(%X6!$(M3+@j%c( z$7%X*c_0>b(bHyYJ@{aq{CzVBebat#{h)0p77DkSdv8!&J5FgGZDQyi2paxnIY*xQ z%~)WEsGa)7jJRQ@^ako%$6l48T{G`6&6<;-TROV>nqX%?4F`-V7T7;)+G7UOW+lIU;?_r)V#=GSIwS)JJ6x6@*gR&@ zm3?29RBY5C1hb>B+(nv9nvXL^~-d^YSAw0iyQ>@5+|V{EGCwz_52Cxp&-w1bhv(Y zbBs0_3+vXM;gXcgSbEPS#bMN44fk`;XIkO7%aWidI|hp4)F|RsX;a*o8);FH3beef z(FO^3UWxOvt-Q<9;h*2ea%S@^5)iBa|1iy{AvS!B zy>8=M#Ewd+GW29o7+u{=on+~6N~`#Ob9mkCsX?c=HPe^+D1Eg%9`OoJ{-!h7LKb4 zb@ag;kl8Oj`>Jp3ExOE3ZAVQDfKs960Va%f4G&9wjV6jC0wK{CMY1g@xORQc?BuKE ztrGF>7HHcE3}<#K8Wznha>t4yDz_qZ%&(qIi_8le06^j2{L;{Z0sk})Ctc{6;XiS* zl`u2>^X5s_9J|y%=sR+?|K?f$8R2AJf4*&Zl<7&WnHe%1?EnCDN2B^^Ry*=c0N`K! CgB*PT literal 0 HcmV?d00001 diff --git a/plugins/de.cognicrypt.order.editor/xtend-gen/de/cognicrypt/order/editor/generator/StatemachineGenerator.java b/plugins/de.cognicrypt.order.editor/xtend-gen/de/cognicrypt/order/editor/generator/StatemachineGenerator.java new file mode 100644 index 000000000..8e31ae68d --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/xtend-gen/de/cognicrypt/order/editor/generator/StatemachineGenerator.java @@ -0,0 +1,21 @@ +/** + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.generator; + +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.xtext.generator.AbstractGenerator; +import org.eclipse.xtext.generator.IFileSystemAccess2; +import org.eclipse.xtext.generator.IGeneratorContext; + +/** + * Generates code from your model files on save. + * + * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation + */ +@SuppressWarnings("all") +public class StatemachineGenerator extends AbstractGenerator { + @Override + public void doGenerate(final Resource resource, final IFileSystemAccess2 fsa, final IGeneratorContext context) { + } +} From ecdd65c4648a28bcd009edd7f9858031b52c67b6 Mon Sep 17 00:00:00 2001 From: Anemone Date: Wed, 1 Sep 2021 15:37:20 +0200 Subject: [PATCH 02/18] Add some classes to resolve wrong imports in parser, add project to pom MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Anemone Kampkötter --- .../build.properties | 4 +- .../editor/parser/StatemachineParser.java | 49 +- .../order/editor/statemachine/CrySLEvent.java | 25 + .../editor/statemachine/CrySLMethod.java | 110 ++++ .../editor/statemachine/CryslReaderUtils.java | 76 +++ .../statemachine/StateMachineGraph.java | 127 +++++ .../StateMachineGraphBuilder.java | 473 ++++++++++++++++++ .../order/editor/statemachine/StateNode.java | 112 +++++ .../editor/statemachine/StateTransition.java | 11 + .../editor/statemachine/TransitionEdge.java | 90 ++++ pom.xml | 1 + 11 files changed, 1049 insertions(+), 29 deletions(-) create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/CrySLEvent.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/CrySLMethod.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/CryslReaderUtils.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/StateMachineGraph.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/StateMachineGraphBuilder.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/StateNode.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/StateTransition.java create mode 100644 plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/TransitionEdge.java diff --git a/plugins/de.cognicrypt.order.editor/build.properties b/plugins/de.cognicrypt.order.editor/build.properties index 2587971a6..33156c43b 100644 --- a/plugins/de.cognicrypt.order.editor/build.properties +++ b/plugins/de.cognicrypt.order.editor/build.properties @@ -4,6 +4,4 @@ source.. = src/,\ bin.includes = model/generated/,\ .,\ META-INF/,\ - plugin.xml\ - lib/claferchocoig.jar,\ - lib/dom4j-2.0.0.jar + plugin.xml diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java index 27452bad4..a25ebd45e 100644 --- a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java @@ -2,32 +2,24 @@ import java.io.ByteArrayOutputStream; import java.io.File; -import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; -import java.io.PrintWriter; import java.net.MalformedURLException; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.net.URLClassLoader; import java.util.ArrayList; -import java.util.Enumeration; import java.util.HashMap; import java.util.List; import java.util.Set; -import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Platform; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.resource.URIConverter; -import org.eclipse.emf.ecore.resource.URIHandler; import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; import org.eclipse.xtext.common.types.access.impl.ClasspathTypeProvider; import org.eclipse.xtext.resource.SaveOptions; @@ -40,18 +32,21 @@ import de.cognicrypt.order.editor.Activator; import de.cognicrypt.order.editor.Constants; import de.cognicrypt.order.editor.config.CryslFile; +import de.cognicrypt.order.editor.statemachine.Statemachine; +import de.cognicrypt.order.editor.statemachine.StatemachineFactory; +import de.cognicrypt.order.editor.statemachine.StatemachinePackage; import de.darmstadt.tu.crossing.CrySLStandaloneSetup; -import de.darmstadt.tu.crossing.StatemachineStandaloneSetup; +import de.cognicrypt.order.editor.StatemachineStandaloneSetup; import de.darmstadt.tu.crossing.crySL.Domainmodel; import de.darmstadt.tu.crossing.crySL.Expression; import de.darmstadt.tu.crossing.crySL.SuperType; -import de.darmstadt.tu.crossing.statemachine.StateMachineGraph; -import de.darmstadt.tu.crossing.statemachine.StateMachineGraphBuilder; -import de.darmstadt.tu.crossing.statemachine.StateNode; -import de.darmstadt.tu.crossing.statemachine.Statemachine; -import de.darmstadt.tu.crossing.statemachine.StatemachineFactory; -import de.darmstadt.tu.crossing.statemachine.StatemachinePackage; -import de.darmstadt.tu.crossing.statemachine.TransitionEdge; +import de.cognicrypt.order.editor.statemachine.Event; +import de.cognicrypt.order.editor.statemachine.State; +import de.cognicrypt.order.editor.statemachine.Transition; +import de.cognicrypt.order.editor.statemachine.StateMachineGraph; +import de.cognicrypt.order.editor.statemachine.StateMachineGraphBuilder; +import de.cognicrypt.order.editor.statemachine.StateNode; +import de.cognicrypt.order.editor.statemachine.TransitionEdge; public class StatemachineParser { @@ -75,10 +70,11 @@ public static void generateStatemachineXtextResource(EObject self, String ruleNa StateMachineGraph smgb = new StateMachineGraphBuilder(order).buildSMG(); Set stateNodes = smgb.getNodes(); java.util.List transitionEdges = smgb.getEdges(); - java.util.List myTransitionEvents = new ArrayList(); // only for labels as they do not provide info what is source and target + java.util.List myTransitionEvents = new ArrayList(); // only for labels as they do not provide info what is source and target + //java.util.List myTransitionEvents = new ArrayList(); // only for labels as they do not provide info what is source and target for(TransitionEdge e : transitionEdges) { - myTransitionEvents.add(e.getLabel()); + myTransitionEvents.add((de.darmstadt.tu.crossing.crySL.Event) e.getLabel()); } StatemachineStandaloneSetup.doSetup(); @@ -97,19 +93,20 @@ public static void generateStatemachineXtextResource(EObject self, String ruleNa Statemachine statemachine = StatemachineFactory.eINSTANCE.createStatemachine(); - de.darmstadt.tu.crossing.statemachine.State state = null; - de.darmstadt.tu.crossing.statemachine.Event event = null; - de.darmstadt.tu.crossing.statemachine.Transition transition = null; - HashMap stateNodeMap = new HashMap(); + State state = null; + Event event = null; + //de.darmstadt.tu.crossing.statemachine.Transition transition = null; + Transition transition = null; + HashMap stateNodeMap = new HashMap(); SuperType ev = null; int counter = 0; //process stateNodes separately, still unsorted for(StateNode s: stateNodes) { - state = StatemachineFactory.eINSTANCE.createState(); + state = (State) StatemachineFactory.eINSTANCE.createState(); state.setName("s" + s.getName()); - statemachine.getStates().add(state); + statemachine.getStates().add((de.cognicrypt.order.editor.statemachine.State) state); counter++; stateNodeMap.put(s, state); } @@ -118,7 +115,7 @@ public static void generateStatemachineXtextResource(EObject self, String ruleNa for(int i = 0; i < transitionEdges.size(); i++) { if(transitionEdges.get(i).getLabel() instanceof SuperType) { ev = (SuperType) transitionEdges.get(i).getLabel(); - event = StatemachineFactory.eINSTANCE.createEvent(); + event = (Event) StatemachineFactory.eINSTANCE.createEvent(); // check for duplicate events to avoid same naming for different edges (causes serialization error) if(sameEvent(transitionEdges, transitionEdges.get(i))) { event.setName(((SuperType) ev).getName() + i); @@ -128,7 +125,7 @@ public static void generateStatemachineXtextResource(EObject self, String ruleNa event.setName(((SuperType) ev).getName()); event.setCode(((SuperType) ev).getName()); } - statemachine.getEvents().add(event); + statemachine.getEvents().add((de.cognicrypt.order.editor.statemachine.Event) event); } transition = StatemachineFactory.eINSTANCE.createTransition(); diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/CrySLEvent.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/CrySLEvent.java new file mode 100644 index 000000000..96b1743eb --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/CrySLEvent.java @@ -0,0 +1,25 @@ +package de.cognicrypt.order.editor.statemachine; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.TreeIterator; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.resource.Resource; + +import de.darmstadt.tu.crossing.crySL.Event; +import de.darmstadt.tu.crossing.crySL.impl.EventImpl; + +public class CrySLEvent extends EventImpl { + + + public CrySLEvent() { + super(); + } +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/CrySLMethod.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/CrySLMethod.java new file mode 100644 index 000000000..4ebb6bac5 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/CrySLMethod.java @@ -0,0 +1,110 @@ +package de.cognicrypt.order.editor.statemachine; + +import java.io.Serializable; +import java.util.List; +import java.util.Map.Entry; + +public class CrySLMethod implements Serializable { + + private static final long serialVersionUID = 1L; + private final String methodName; + private final Entry retObject; + private final List> parameters; + private final List backward; + + public CrySLMethod(String methName, List> pars, List backw, Entry returnObject) { + methodName = methName; + parameters = pars; + backward = backw; + retObject = returnObject; + } + + /** + * @return the FQ methodName + */ + public String getMethodName() { + return methodName; + } + + /** + * @return the short methodName + */ + public String getShortMethodName() { + return methodName.substring(methodName.lastIndexOf(".") + 1); + } + + + /** + * @return the parameters + */ + public List> getParameters() { + return parameters; + } + + /** + * @return the backward + */ + public List getBackward() { + return backward; + } + + + public Entry getRetObject() { + return retObject; + } + public String toString() { + return getName(); + } + + public String getName() { + StringBuilder stmntBuilder = new StringBuilder(); + String returnValue = retObject.getKey(); + if (!"_".equals(returnValue)) { + stmntBuilder.append(returnValue); + stmntBuilder.append(" = "); + } + + stmntBuilder.append(this.methodName); + stmntBuilder.append("("); + + + for (Entry par: parameters) { + stmntBuilder.append(" "); + stmntBuilder.append(par.getKey()); +// if (backward != null && backward.size() == parameters.size()) { +// stmntBuilder.append(" ("); +// stmntBuilder.append(backward.get(parameters.indexOf(par))); +// stmntBuilder.append("),"); +// } + } + + stmntBuilder.append(");"); + return stmntBuilder.toString(); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((backward == null) ? 0 : backward.hashCode()); + result = prime * result + ((methodName == null) ? 0 : methodName.hashCode()); + result = prime * result + ((parameters == null) ? 0 : parameters.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (!(obj instanceof CrySLMethod)) { + return false; + } + CrySLMethod other = (CrySLMethod) obj; + return this.getMethodName().equals(other.getMethodName()) && parameters.equals(other.parameters); + } + +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/CryslReaderUtils.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/CryslReaderUtils.java new file mode 100644 index 000000000..3c97ad123 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/CryslReaderUtils.java @@ -0,0 +1,76 @@ +package de.cognicrypt.order.editor.statemachine; + +import java.util.AbstractMap.SimpleEntry; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.Map.Entry; + +import de.darmstadt.tu.crossing.crySL.Aggregate; +import de.darmstadt.tu.crossing.crySL.Event; +import de.darmstadt.tu.crossing.crySL.Method; +import de.darmstadt.tu.crossing.crySL.ObjectDecl; +import de.darmstadt.tu.crossing.crySL.Par; +import de.darmstadt.tu.crossing.crySL.ParList; +import de.darmstadt.tu.crossing.crySL.SuperType; + +public class CryslReaderUtils { + protected static Event resolveAggregateToMethodeNames(final Event leaf) { + if (leaf instanceof Aggregate) { + final Aggregate ev = (Aggregate) leaf; + return ev; + } else { + final ArrayList statements = new ArrayList<>(); + CrySLMethod stringifyMethodSignature = stringifyMethodSignature(leaf); + if (stringifyMethodSignature != null) { + statements.add(stringifyMethodSignature); + } + return leaf; + } + } + + protected static CrySLMethod stringifyMethodSignature(final Event lab) { + if (!(lab instanceof SuperType)) { + return null; + } + final Method method = ((SuperType) lab).getMeth(); + + String methodName = method.getMethName().getSimpleName(); + if (methodName == null) { + methodName = ((de.darmstadt.tu.crossing.crySL.Domainmodel) (method.eContainer().eContainer().eContainer())).getJavaType().getSimpleName(); + } + final String qualifiedName = + ((de.darmstadt.tu.crossing.crySL.Domainmodel) (method.eContainer().eContainer().eContainer())).getJavaType().getQualifiedName() + "." + methodName; // method.getMethName().getQualifiedName(); + // qualifiedName = removeSPI(qualifiedName); + final List> pars = new ArrayList<>(); + final de.darmstadt.tu.crossing.crySL.Object returnValue = method.getLeftSide(); + Entry returnObject = null; + if (returnValue != null && returnValue.getName() != null) { + final ObjectDecl v = ((ObjectDecl) returnValue.eContainer()); + returnObject = new SimpleEntry<>(returnValue.getName(), v.getObjectType().getQualifiedName() + ((v.getArray() != null) ? v.getArray() : "")); + } else { + returnObject = new SimpleEntry<>("_", "void"); + } + final ParList parList = method.getParList(); + if (parList != null) { + for (final Par par : parList.getParameters()) { + String parValue = "_"; + if (par.getVal() != null && par.getVal().getName() != null) { + final ObjectDecl objectDecl = (ObjectDecl) par.getVal().eContainer(); + parValue = par.getVal().getName(); + final String parType = objectDecl.getObjectType().getIdentifier() + ((objectDecl.getArray() != null) ? objectDecl.getArray() : ""); + pars.add(new SimpleEntry<>(parValue, parType)); + } else { + pars.add(new SimpleEntry<>(parValue, "AnyType")); + } + } + } + return new CrySLMethod(qualifiedName, pars, new ArrayList(), returnObject); + } + + public static File getResourceFromWithin(final String inputPath) { + return new File(inputPath); + } +} + + diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/StateMachineGraph.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/StateMachineGraph.java new file mode 100644 index 000000000..e96fc3e17 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/StateMachineGraph.java @@ -0,0 +1,127 @@ +package de.cognicrypt.order.editor.statemachine; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; + +import de.darmstadt.tu.crossing.crySL.CrySLFactory; +import de.darmstadt.tu.crossing.crySL.Expression; +import de.darmstadt.tu.crossing.crySL.Order; +import de.darmstadt.tu.crossing.crySL.SimpleOrder; +import de.darmstadt.tu.crossing.crySL.impl.ExpressionImpl; + +public final class StateMachineGraph{ + /** + * + */ + private static final long serialVersionUID = 1L; + private final Set nodes; + private final List edges; + + private final HashMap nodemaps; + public StateMachineGraph() { + nodes = new HashSet(); + edges = new ArrayList(); + nodemaps = new HashMap(); + } + + public Boolean addEdge(TransitionEdge edge) { + final StateNode right = edge.getRight(); + final StateNode left = edge.getLeft(); + if(edge.getLeft().getName().equals("init")) { + //remove initial node (Order) and put an expression instead of it + Expression newElement = CrySLFactory.eINSTANCE.createExpression(); + nodemaps.put("init", newElement); + + } + if (!(nodes.parallelStream().anyMatch(e -> e.equals(left)) || nodes.parallelStream().anyMatch(e -> e.equals(right)))) { + return false; + } + if (edges.contains(edge)) { + return false; + } + edges.add(edge); + return true; + } + + public void wrapUpCreation() { + getAcceptingStates().parallelStream().forEach(e -> { + e.setHopsToAccepting(0); + updateHops(e); + }); + } + + private void updateHops(StateNode node) { + int newPath = node.getHopsToAccepting() + 1; + getAllTransitions().parallelStream().forEach(e -> { + StateNode theNewRight = e.getLeft(); + if (e.getRight().equals(node) && theNewRight.getHopsToAccepting() > newPath) { + theNewRight.setHopsToAccepting(newPath); + updateHops(theNewRight); + } + }); + } + + public Boolean addNode(StateNode node, Expression expression) { + for (StateNode innerNode : nodes) { + if (innerNode.getName().equals(node.getName())) { + return false; + } + } + nodes.add(node); + nodemaps.put(node.getName(), expression); + return true; + } + + public String toString() { + StringBuilder graphSB = new StringBuilder(); + for (StateNode node : nodes) { + graphSB.append(node.toString()); + graphSB.append(System.lineSeparator()); + } + + for (TransitionEdge te : edges) { + graphSB.append(te.toString()); + graphSB.append(System.lineSeparator()); + } + + return graphSB.toString(); + } + + public Set getNodes() { + return nodes; + } + + public HashMap getNodeMap() { + return nodemaps; + } + + public List getEdges() { + return edges; + } + + public TransitionEdge getInitialTransition() { + return edges.get(0); + } + + public Collection getAcceptingStates() { + Collection accNodes = new ArrayList(); + for (StateNode node : nodes) { + if (node.getAccepting()) { + accNodes.add(node); + } + } + + return accNodes; + } + + public Collection getAllTransitions() { + return getEdges(); + } + +} + diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/StateMachineGraphBuilder.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/StateMachineGraphBuilder.java new file mode 100644 index 000000000..f91f0a244 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/StateMachineGraphBuilder.java @@ -0,0 +1,473 @@ +package de.cognicrypt.order.editor.statemachine; + +import java.util.AbstractMap.SimpleEntry; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Optional; +import java.util.stream.Collectors; +import com.google.common.collect.HashMultimap; +import com.google.common.collect.Multimap; + +import de.darmstadt.tu.crossing.crySL.Event; +import de.darmstadt.tu.crossing.crySL.Expression; +import de.darmstadt.tu.crossing.crySL.Order; +import de.darmstadt.tu.crossing.crySL.SimpleOrder; + +public class StateMachineGraphBuilder { + + private final Expression head; + private final StateMachineGraph result = new StateMachineGraph(); + private int nodeNameCounter = 0; + + public StateMachineGraphBuilder(final Expression order) { + this.head = order; + this.result.addNode(new StateNode("init", true, true), order); + + } + + private StateNode addRegularEdge(final Expression leaf, final StateNode prevNode, final StateNode nextNode) { + return addRegularEdge(leaf, prevNode, nextNode, false); + } + + private StateNode addRegularEdge(final Expression leaf, final StateNode prevNode, final StateNode nextNode, final Boolean isStillAccepting) { + final Event label = CryslReaderUtils.resolveAggregateToMethodeNames(leaf.getOrderEv().get(0)); + return addRegularEdge(leaf,label, prevNode, nextNode, isStillAccepting); + } + + + private StateNode addRegularEdge(Expression leaf,final Event label, final StateNode prevNode, StateNode nextNode, final Boolean isStillAccepting) { + if (nextNode == null) { + nextNode = getNewNode(); + this.result.addNode(nextNode, leaf); + } + if (!isStillAccepting) { + prevNode.setAccepting(false); + } + boolean added = this.result.addEdge(new TransitionEdge(label, prevNode, nextNode)); + return nextNode; + } + + public StateMachineGraph buildSMG() { + StateNode initialNode = null; + for (final StateNode n : this.result.getNodes()) { + initialNode = n; + } + if (this.head != null) { + processHead(this.head, 0, HashMultimap.create(), initialNode); + } else { + //see the implementation in CryptoAnalysis StateMachineGraphBuilder + // may be required to keep it as it is. + //this.result.addEdge(new TransitionEdge(new ArrayList(), initialNode, initialNode)); + this.result.addEdge(new TransitionEdge(new CrySLEvent(), initialNode, initialNode)); + } + return this.result; + } + + private StateNode getNewNode() { + return new StateNode(String.valueOf(this.nodeNameCounter++), false, true); + } + + private List getOutgoingEdges(final StateNode curNode, final StateNode notTo) { + final List outgoingEdges = new ArrayList<>(); + for (final TransitionEdge comp : this.result.getAllTransitions()) { + if (comp.getLeft().equals(curNode) && !(comp.getRight().equals(curNode) || comp.getRight().equals(notTo))) { + outgoingEdges.add(comp); + } + } + return outgoingEdges; + } + + private StateNode isGeneric(final String el, final int level, final Multimap> leftOvers) { + for (final Entry entry : leftOvers.get(level)) { + if (el.equals(entry.getKey())) { + return entry.getValue(); + } + } + return null; + } + + private StateNode isOr(final int level, final Multimap> leftOvers) { + return isGeneric("|", level, leftOvers); + } + + private StateNode isQM(final int level, final Multimap> leftOvers) { + return isGeneric("?", level, leftOvers); + } + + private StateNode process(final Expression curLevel, final int level, final Multimap> leftOvers, StateNode prevNode) { + final Expression left = curLevel.getLeft(); + final Expression right = curLevel.getRight(); + final String leftElOp = (left != null) ? left.getElementop() : ""; + final String rightElOp = (right != null) ? right.getElementop() : ""; + final String orderOp = curLevel.getOrderop(); + // case 1 = left & right = non-leaf + // case 2 = left = non-leaf & right = leaf + // case 3 = left = leaf & right = non-leaf + // case 4 = left = leaf & right = leaf + + if (left == null && right == null) { + addRegularEdge(left, prevNode, null); + } else if ((left instanceof Order || left instanceof SimpleOrder) && (right instanceof Order || right instanceof SimpleOrder)) { + final StateNode leftPrev = prevNode; + prevNode = process(left, level + 1, leftOvers, prevNode); + + final StateNode rightPrev = prevNode; + StateNode returnToNode = null; + if ("|".equals(orderOp)) { + leftOvers.put(level + 1, new HashMap.SimpleEntry<>(orderOp, prevNode)); + prevNode = process(right, level + 1, leftOvers, leftPrev); + } else if ((returnToNode = isOr(level, leftOvers)) != null) { + prevNode = process(right, level + 1, leftOvers, returnToNode); + } else { + prevNode = process(right, level + 1, leftOvers, prevNode); + } + + if (rightElOp != null && ("+".equals(rightElOp) || "*".equals(rightElOp))) { + final List outgoingEdges = new ArrayList(); + if ("|".equals(orderOp)) { + final List tmpOutgoingEdges = getOutgoingEdges(leftPrev, null); + for (final TransitionEdge outgoingEdge : tmpOutgoingEdges) { + if (isReachable(outgoingEdge.to(), prevNode, new ArrayList())) { + outgoingEdges.addAll(getOutgoingEdges(outgoingEdge.to(), prevNode)); + } + } + for (final TransitionEdge outgoingEdge : outgoingEdges) { + if (isReachable(prevNode, outgoingEdge.from(), new ArrayList())) { + addRegularEdge(right,outgoingEdge.getLabel(), prevNode, outgoingEdge.from(), true); + } + } + + } else { + outgoingEdges.addAll(getOutgoingEdges(rightPrev, prevNode)); + for (final TransitionEdge outgoingEdge : outgoingEdges) { + addRegularEdge(right,outgoingEdge.getLabel(), prevNode, outgoingEdge.to(), true); + } + } + } + + if (leftElOp != null && ("?".equals(leftElOp) || "*".equals(leftElOp))) { + addRegularEdge(right, leftPrev, prevNode, true); + } + + } else if ((left instanceof Order || left instanceof SimpleOrder) && !(right instanceof Order || right instanceof SimpleOrder)) { + StateNode leftPrev = prevNode; + + Optional> optionalOrLevel = leftOvers.get(level).stream().filter(e -> "|".equals(e.getKey())).findFirst(); + if (optionalOrLevel.isPresent()) { + Entry orLevel = optionalOrLevel.get(); + StateNode p = orLevel.getValue(); + List orEdges = getOutgoingEdges(prevNode, null); + if (!orEdges.isEmpty()) { + Optional edge = orEdges.stream().filter(e -> e.getRight().equals(p)).findFirst(); + if (edge.isPresent() && edge.get().getLabel().equals(CryslReaderUtils.resolveAggregateToMethodeNames(getLeftMostChild(left).getOrderEv().get(0)))) { + leftOvers.put(level + 1, orLevel); + } + } + } + prevNode = process(left, level + 1, leftOvers, prevNode); + + if (rightElOp != null && ("?".equals(rightElOp) || "*".equals(rightElOp))) { + leftOvers.put(level - 1, new HashMap.SimpleEntry<>(rightElOp, prevNode)); + prevNode = addRegularEdge(right, prevNode, null, true); + } else { + prevNode = addRegularEdge(right, prevNode, null); + } + + if (rightElOp != null && ("+".equals(rightElOp) || "*".equals(rightElOp))) { + addRegularEdge(right, prevNode, prevNode, true); + } + + } else if (!(left instanceof Order || left instanceof SimpleOrder) && (right instanceof Order || right instanceof SimpleOrder)) { + StateNode leftPrev = prevNode; + prevNode = addRegularEdge(left, prevNode, null); + + if (leftElOp != null && ("+".equals(leftElOp) || "*".equals(leftElOp))) { + addRegularEdge(left, prevNode, prevNode, true); + } + + if (rightElOp != null && ("?".equals(rightElOp) || "*".equals(rightElOp))) { + leftOvers.put(level - 1, new HashMap.SimpleEntry<>(rightElOp, prevNode)); + } + final StateNode rightPrev = prevNode; + if ("|".equals(orderOp)) { + leftOvers.put(level + 1, new HashMap.SimpleEntry<>(orderOp, prevNode)); + prevNode = process(right, level + 1, leftOvers, leftPrev); + } else { + prevNode = process(right, level + 1, leftOvers, prevNode); + } + + if (rightElOp != null && ("+".equals(rightElOp) || "*".equals(rightElOp))) { + final List outgoingEdges = getOutgoingEdges(rightPrev, prevNode); + for (final TransitionEdge outgoingEdge : outgoingEdges) { + addRegularEdge(right,outgoingEdge.getLabel(), prevNode, outgoingEdge.to(), true); + } + } + + if (leftElOp != null && ("?".equals(leftElOp) || "*".equals(leftElOp))) { + addRegularEdge(right, leftPrev, prevNode, true); + } + + } else if (!(left instanceof Order || left instanceof SimpleOrder) && !(right instanceof Order || right instanceof SimpleOrder)) { + StateNode leftPrev = null; + leftPrev = prevNode; + + boolean sameName = false; + List orEdges = getOutgoingEdges(prevNode, null); + Optional> alternative = leftOvers.get(level).stream().filter(e -> "|".equals(e.getKey())).findFirst(); + if (alternative.isPresent()) { + Entry orLevel = alternative.get(); + StateNode p = orLevel.getValue(); + if (!orEdges.isEmpty()) { + Optional edge = orEdges.stream().filter(e -> e.getRight().equals(p)).findFirst(); + if (edge.isPresent() && edge.get().getLabel().equals(CryslReaderUtils.resolveAggregateToMethodeNames(getLeftMostChild(left).getOrderEv().get(0)))) { + sameName = true; + prevNode = p; + leftOvers.remove(level, orLevel); + } + } + } + if (!sameName) { + prevNode = addRegularEdge(left, prevNode, null); + } + + StateNode returnToNode = isOr(level, leftOvers); + if (leftElOp != null && ("+".equals(leftElOp) || "*".equals(leftElOp))) { + addRegularEdge(left, prevNode, prevNode, true); + } + + if (rightElOp != null && ("?".equals(rightElOp) || "*".equals(rightElOp))) { + leftOvers.put(level - 1, new HashMap.SimpleEntry<>(rightElOp, prevNode)); + } + if (returnToNode != null || "|".equals(orderOp)) { + if ("|".equals(orderOp)) { + addRegularEdge(right, leftPrev, prevNode); + } + if ((returnToNode = isOr(level, leftOvers)) != null) { + prevNode = addRegularEdge(right, prevNode, returnToNode); + } + } else { + prevNode = addRegularEdge(right, prevNode, null); + } + + if (rightElOp != null && ("+".equals(rightElOp) || "*".equals(rightElOp))) { + addRegularEdge(right, prevNode, prevNode, true); + } + + if (leftElOp != null && ("?".equals(leftElOp) || "*".equals(leftElOp))) { + addRegularEdge(right, leftPrev, prevNode, true); + } + + if (sameName) { + setAcceptingState(alternative.get().getValue()); + } + + } + leftOvers.removeAll(level); + return prevNode; + } + + private boolean isReachable(final StateNode stateNode, final StateNode prevNode, final List skippable) { + for (final TransitionEdge edge : getOutgoingEdges(stateNode, stateNode)) { + if (edge.to().equals(prevNode)) { + return true; + } else if (!skippable.contains(edge.to())) { + skippable.add(edge.to()); + return isReachable(edge.to(), prevNode, skippable); + } + } + return false; + } + + private void processHead(final Expression curLevel, final int level, final Multimap> leftOvers, StateNode prevNode) { + final Expression left = curLevel.getLeft(); + final Expression right = curLevel.getRight(); + final String leftElOp = (left != null) ? left.getElementop() : ""; + final String rightElOp = (right != null) ? right.getElementop() : ""; + final String orderOp = curLevel.getOrderop(); + + if (left == null && right == null) { + final String elOp = curLevel.getElementop(); + if ("*".equals(elOp) || "?".equals(elOp)) { + prevNode = addRegularEdge(curLevel, prevNode, null, true); + } else { + addRegularEdge(curLevel, prevNode, null); + } + if ("*".equals(elOp) || "+".equals(elOp)) { + addRegularEdge(curLevel, prevNode, prevNode, true); + } + } else if ((left instanceof Order || left instanceof SimpleOrder) && (right instanceof Order || right instanceof SimpleOrder)) { + final StateNode leftPrev = prevNode; + prevNode = process(left, level + 1, leftOvers, prevNode); + final StateNode rightPrev = prevNode; + if ("|".equals(orderOp)) { + prevNode = process(right, level + 1, leftOvers, leftPrev); + } else { + prevNode = process(right, level + 1, leftOvers, prevNode); + } + for (Entry a : leftOvers.get(level).stream().filter(e -> "?".equals(e.getKey())).collect(Collectors.toList())) { + if ("*".equals(rightElOp) || "?".equals(rightElOp)) { + setAcceptingState(a.getValue()); + for (TransitionEdge l : getOutgoingEdges(rightPrev, null)) { + addRegularEdge(right, l.getLabel(), a.getValue(), l.getRight(), true); + } + } + } + + if ("*".equals(rightElOp) || "?".equals(rightElOp)) { + setAcceptingState(rightPrev); + } + if (rightElOp != null && ("+".equals(rightElOp) || "*".equals(rightElOp))) { + final String orderop = right.getOrderop(); + List outgoingEdges = null; + if (orderop != null && "|".equals(orderop)) { + outgoingEdges = getOutgoingEdges(rightPrev, null); + } else { + outgoingEdges = getOutgoingEdges(rightPrev, prevNode); + } + for (final TransitionEdge outgoingEdge : outgoingEdges) { + addRegularEdge(right, outgoingEdge.getLabel(), prevNode, outgoingEdge.to(), true); + } + } + + if (leftElOp != null && ("?".equals(leftElOp) || "*".equals(leftElOp))) { + addRegularEdge(right, leftPrev, prevNode, true); + } + } else if ((left instanceof Order || left instanceof SimpleOrder) && !(right instanceof Order || right instanceof SimpleOrder)) { + final StateNode leftPrev = prevNode; + prevNode = process(left, level + 1, leftOvers, prevNode); + final StateNode rightPrev = prevNode; + if ("|".equals(orderOp)) { + prevNode = addRegularEdge(right, leftPrev, prevNode); + } else { + prevNode = addRegularEdge(right, prevNode, null); + } + for (Entry a : leftOvers.get(level).stream().filter(e -> "*".equals(e.getKey())).collect(Collectors.toList())) { + addRegularEdge(right, a.getValue(), prevNode, true); + } + boolean isOptional = "*".equals(rightElOp) || "?".equals(rightElOp); + if (isOptional) { + setAcceptingState(rightPrev); + if ("?".equals(left.getRight().getElementop()) || "*".equals(left.getRight().getElementop())) { + final List outgoingEdges = getOutgoingEdges(leftPrev, null); + for (final TransitionEdge outgoingEdge : outgoingEdges) { + setAcceptingState(outgoingEdge.to()); + } + } + } + + if (rightElOp != null && ("+".equals(rightElOp) || "*".equals(rightElOp))) { + final List outgoingEdges = getOutgoingEdges(rightPrev, null); + for (final TransitionEdge outgoingEdge : outgoingEdges) { + addRegularEdge(right, outgoingEdge.getLabel(), prevNode, outgoingEdge.to(), true); + } + } + if (leftOvers.containsKey(level)) { + for (Entry entry : leftOvers.get(level).stream().filter(e -> "*".equals(e.getKey()) || "?".equals(e.getKey())).collect(Collectors.toList())) { + addRegularEdge(right, entry.getValue(), prevNode, isOptional); + } + } + StateNode returnToNode = null; + if ((returnToNode = isQM(level, leftOvers)) != null) { + addRegularEdge(right, returnToNode, prevNode, true); + } + } else if (!(left instanceof Order || left instanceof SimpleOrder) && (right instanceof Order || right instanceof SimpleOrder)) { + StateNode leftPrev = null; + leftPrev = prevNode; + prevNode = addRegularEdge(left, prevNode, null); + + if (leftElOp != null && ("+".equals(leftElOp) || "*".equals(leftElOp))) { + addRegularEdge(left, prevNode, prevNode); + } + + final StateNode rightPrev = prevNode; + StateNode returnToNode = null; + if (rightElOp != null && ("?".equals(rightElOp) || "*".equals(rightElOp))) { + setAcceptingState(rightPrev); + } + if ("|".equals(orderOp)) { + setAcceptingState(prevNode); + SimpleEntry entry = new HashMap.SimpleEntry<>(orderOp, prevNode); + leftOvers.put(level + 1, entry); + prevNode = process(right, level + 1, leftOvers, leftPrev); + + } else if ((returnToNode = isOr(level, leftOvers)) != null) { + prevNode = process(right, level + 1, leftOvers, returnToNode); + } else { + prevNode = process(right, level + 1, leftOvers, prevNode); + } + + if (rightElOp != null && ("+".equals(rightElOp) || "*".equals(rightElOp))) { + final List outgoingEdges = getOutgoingEdges(rightPrev, null); + for (final TransitionEdge outgoingEdge : outgoingEdges) { + addRegularEdge(right, outgoingEdge.getLabel(), prevNode, outgoingEdge.to(), true); + } + } + + if (leftElOp != null && ("?".equals(leftElOp) || "*".equals(leftElOp))) { + setAcceptingState(leftPrev); + final List outgoingEdges = getOutgoingEdges(rightPrev, null); + for (final TransitionEdge outgoingEdge : outgoingEdges) { + setAcceptingState(outgoingEdge.to()); + addRegularEdge(right, outgoingEdge.getLabel(), leftPrev, outgoingEdge.to(), true); + } + } + if (rightElOp != null && ("?".equals(rightElOp) || "*".equals(rightElOp))) { + setAcceptingState(rightPrev); + if (leftOvers.containsKey(level)) { + leftOvers.get(level).stream().filter(e -> "*".equals(e.getKey()) || "?".equals(e.getKey())).forEach(e -> setAcceptingState(e.getValue())); + } + } + + } else if (!(left instanceof Order || left instanceof SimpleOrder) && !(right instanceof Order || right instanceof SimpleOrder)) { + StateNode leftPrev = null; + leftPrev = prevNode; + StateNode returnToNode = isOr(level, leftOvers); + + final boolean leftOptional = "?".equals(leftElOp) || "*".equals(leftElOp); + prevNode = addRegularEdge(left, prevNode, null, leftOptional); + + if (leftElOp != null && ("+".equals(leftElOp) || "*".equals(leftElOp))) { + addRegularEdge(left, prevNode, prevNode, true); + } + + final boolean rightoptional = "?".equals(rightElOp) || "*".equals(rightElOp); + if (returnToNode != null || "|".equals(orderOp)) { + if ("|".equals(orderOp)) { + addRegularEdge(right, leftPrev, prevNode, rightoptional); + } + if ((returnToNode = isOr(level, leftOvers)) != null) { + prevNode = addRegularEdge(right, prevNode, returnToNode, rightoptional); + } + } else { + prevNode = addRegularEdge(right, prevNode, null, rightoptional); + } + + if (rightElOp != null && ("+".equals(rightElOp) || "*".equals(rightElOp))) { + addRegularEdge(right, prevNode, prevNode, true); + } + + if (leftElOp != null && ("?".equals(leftElOp) || "*".equals(leftElOp))) { + addRegularEdge(right, leftPrev, prevNode, true); + } + } + } + + private void setAcceptingState(final StateNode prevNode) { + prevNode.setAccepting(true); + } + + private Expression getLeftMostChild(Expression ex) { + if (ex.getOrderEv().size() > 0) { + return ex; + } + if (ex.getLeft() != null) { + return getLeftMostChild(ex.getLeft()); + } + return null; + } + + +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/StateNode.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/StateNode.java new file mode 100644 index 000000000..9e0ff311e --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/StateNode.java @@ -0,0 +1,112 @@ +package de.cognicrypt.order.editor.statemachine; + + +public class StateNode implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = 1L; + + private final String name; + + private Boolean init = false; + private Boolean accepting = false; + private int hopsToAccepting = Integer.MAX_VALUE; + + public StateNode(String _name) { + name = _name; + } + + public StateNode(String _name, Boolean _init) { + this(_name); + init = _init; + } + + public StateNode(String _name, Boolean _init, Boolean _accepting) { + this(_name, _init); + accepting = _accepting; + } + + public String getName() { + return name; + } + + public Boolean getInit() { + return init; + } + + public Boolean getAccepting() { + return accepting; + } + + public void setAccepting(Boolean _accepting) { + accepting = _accepting; + } + + public String toString() { + StringBuilder nodeSB = new StringBuilder(); + nodeSB.append("Name: "); + nodeSB.append(name); + nodeSB.append(" ("); + if (!accepting) { + nodeSB.append(hopsToAccepting + "hops to "); + } + nodeSB.append("accepting)"); + return nodeSB.toString(); + } + + public boolean isErrorState() { + return !accepting; + } + + public boolean isInitialState() { + return init; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((accepting == null) ? 0 : accepting.hashCode()); + result = prime * result + ((init == null) ? 0 : init.hashCode()); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + StateNode other = (StateNode) obj; + if (accepting == null) { + if (other.accepting != null) + return false; + } else if (!accepting.equals(other.accepting)) + return false; + if (init == null) { + if (other.init != null) + return false; + } else if (!init.equals(other.init)) + return false; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + return true; + } + + public void setHopsToAccepting(int hops) { + hopsToAccepting = hops; + } + + public int getHopsToAccepting() { + return hopsToAccepting; + } + +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/StateTransition.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/StateTransition.java new file mode 100644 index 000000000..2630dfa58 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/StateTransition.java @@ -0,0 +1,11 @@ +package de.cognicrypt.order.editor.statemachine; + +import java.util.List; + +import de.darmstadt.tu.crossing.crySL.Event; + +public interface StateTransition{ + State from(); + State to(); + Event getLabel(); +} diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/TransitionEdge.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/TransitionEdge.java new file mode 100644 index 000000000..354092759 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/statemachine/TransitionEdge.java @@ -0,0 +1,90 @@ +package de.cognicrypt.order.editor.statemachine; + +import java.util.List; + +import de.darmstadt.tu.crossing.crySL.Event; + +public class TransitionEdge implements StateTransition, java.io.Serializable { + + private static final long serialVersionUID = 1L; + private StateNode left = null; + private StateNode right = null; + private Event method = null; + + // see the implementation in CryptoAnalysis TransitionEdge + // may be it is required to keep it as in CryptoAnalysis. + public TransitionEdge(Event _method, StateNode _left, StateNode _right) { + left = _left; + right = _right; + method = _method; + } + + public StateNode getLeft() { + return left; + } + + public StateNode getRight() { + return right; + } + + public Event getLabel() { + return method; + } + + public String toString() { + StringBuilder edgeSB = new StringBuilder(); + edgeSB.append("Left: "); + edgeSB.append(this.left.getName()); + edgeSB.append(" ===="); + edgeSB.append(method); + edgeSB.append("====> Right:"); + edgeSB.append(this.right.getName()); + return edgeSB.toString(); + } + + public StateNode from() { + return left; + } + + public StateNode to() { + return right; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((method == null) ? 0 : method.hashCode()); + result = prime * result + ((left == null) ? 0 : left.hashCode()); + result = prime * result + ((right == null) ? 0 : right.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + TransitionEdge other = (TransitionEdge) obj; + if (method == null) { + if (other.method != null) + return false; + } else if (!method.equals(other.method)) + return false; + if (left == null) { + if (other.left != null) + return false; + } else if (!left.equals(other.left)) + return false; + if (right == null) { + if (other.right != null) + return false; + } else if (!right.equals(other.right)) + return false; + return true; + } + +} diff --git a/pom.xml b/pom.xml index bcf0a5b92..f3a9562b9 100644 --- a/pom.xml +++ b/pom.xml @@ -95,6 +95,7 @@ plugins/de.cognicrypt.staticanalyzer/ plugins/de.cognicrypt.integrator.task/ plugins/de.cognicrypt.integrator.primitive/ + plugins/de.cognicrypt.order.editor/ features/de.cognicrypt.core.feature/ features/de.cognicrypt.codegenerator.feature/ features/de.cognicrypt.cryslhandler.feature/ From c890905bf893b0fdfc89eb8704f5adb02f2f8ad5 Mon Sep 17 00:00:00 2001 From: Anemone Date: Sun, 5 Sep 2021 14:42:21 +0200 Subject: [PATCH 03/18] Fix edge label in Sirius description to show event name. Signed-off-by: Anemone --- .../my.project.design/description/project.odesign | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/description/project.odesign b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/description/project.odesign index 02170076a..b6c7aa840 100644 --- a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/description/project.odesign +++ b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/description/project.odesign @@ -14,7 +14,7 @@ From 7d110a9fcc50950ca54389776317217266045b89 Mon Sep 17 00:00:00 2001 From: Anemone Date: Fri, 10 Sep 2021 16:12:50 +0200 Subject: [PATCH 04/18] Correct package name of Sirius Service class. Signed-off-by: Anemone --- .../my.project.design/src/my/project/design/Services.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Services.java b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Services.java index 2fb6e08c6..9412c2ab7 100644 --- a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Services.java +++ b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Services.java @@ -1,4 +1,4 @@ -package my.project.design; +package de.cognicrypt.order.editor; import org.eclipse.emf.ecore.EObject; From 1195dbf96417fbbaca89efa7ee0f0ead5173c72f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anemone=20Kampk=C3=B6tter?= Date: Sun, 3 Oct 2021 16:41:00 +0200 Subject: [PATCH 05/18] Add java service creating a border around final state. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Anemone Kampkötter --- .../META-INF/MANIFEST.MF | 17 ++ .../build.properties | 7 + .../description/statemachine.odesign | 57 ++++++ .../plugin.properties | 3 + .../order.statemachine.design/plugin.xml | 10 + .../order/statemachine/design/Activator.java | 66 +++++++ .../order/statemachine/design/Services.java | 33 ++++ .../representations.aird | 182 ++++++++++++++++++ .../model/generated/Statemachine.ecore | 6 + .../model/generated/Statemachine.genmodel | 5 + .../order/editor/statemachine/FinalState.java | 48 +++++ .../editor/statemachine/Statemachine.java | 13 ++ .../statemachine/impl/FinalStateImpl.java | 180 +++++++++++++++++ .../order/editor/GenerateStatemachine.mwe2 | 6 +- .../order/editor/Statemachine.xtext | 10 +- .../editor/parser/StatemachineParser.java | 17 ++ 16 files changed, 656 insertions(+), 4 deletions(-) create mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/META-INF/MANIFEST.MF create mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/build.properties create mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/description/statemachine.odesign create mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.properties create mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.xml create mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Activator.java create mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java create mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/FinalState.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/FinalStateImpl.java diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/META-INF/MANIFEST.MF b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/META-INF/MANIFEST.MF new file mode 100644 index 000000000..84619df66 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/META-INF/MANIFEST.MF @@ -0,0 +1,17 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: order.statemachine.design;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: order.statemachine.design.Activator +Bundle-Localization: plugin +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + org.eclipse.core.resources, + org.eclipse.sirius, + org.eclipse.sirius.common.acceleo.aql, + de.cognicrypt.order.editor;bundle-version="1.0.0" +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-Vendor: %providerName +Automatic-Module-Name: order.statemachine.design diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/build.properties b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/build.properties new file mode 100644 index 000000000..1ab7df2cb --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/build.properties @@ -0,0 +1,7 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + description/,\ + plugin.properties,\ + plugin.xml diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/description/statemachine.odesign b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/description/statemachine.odesign new file mode 100644 index 000000000..3e793a90f --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/description/statemachine.odesign @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.properties b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.properties new file mode 100644 index 000000000..8d2f3aceb --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.properties @@ -0,0 +1,3 @@ +pluginName = order.statemachine.design +providerName = Eclipse Modeling Project +viewpointName = MyViewpoint diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.xml b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.xml new file mode 100644 index 000000000..8ec8ec9ab --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Activator.java b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Activator.java new file mode 100644 index 000000000..2a90f9e98 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Activator.java @@ -0,0 +1,66 @@ +package order.statemachine.design; + +import java.util.HashSet; +import java.util.Set; + +import org.eclipse.sirius.business.api.componentization.ViewpointRegistry; +import org.eclipse.sirius.viewpoint.description.Viewpoint; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends AbstractUIPlugin { + // The plug-in ID + public static final String PLUGIN_ID = "order.statemachine.design"; + + // The shared instance + private static Activator plugin; + + private static Set viewpoints; + + /** + * The constructor + */ + public Activator() { + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + viewpoints = new HashSet(); + viewpoints.addAll(ViewpointRegistry.getInstance().registerFromPlugin(PLUGIN_ID + "/description/statemachine.odesign")); + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext context) throws Exception { + plugin = null; + if (viewpoints != null) { + for (final Viewpoint viewpoint: viewpoints) { + ViewpointRegistry.getInstance().disposeFromPlugin(viewpoint); + } + viewpoints.clear(); + viewpoints = null; + } + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } +} diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java new file mode 100644 index 000000000..df6767854 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java @@ -0,0 +1,33 @@ +package order.statemachine.design; + +import org.eclipse.emf.ecore.EObject; + +import de.cognicrypt.order.editor.statemachine.State; + +/** + * The services class used by VSM. + */ +public class Services { + + /** + * See http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.sirius.doc%2Fdoc%2Findex.html&cp=24 for documentation on how to write service methods. + */ + public EObject myService(EObject self, String arg) { + // TODO Auto-generated code + return self; + } + + public int changeBorderFinalNode(EObject self) { + + if(self instanceof State) { + State s = (State) self; + boolean finalNode = s.isIsFinal(); + if(finalNode) { + return 5; + } + } + + return 1; + } + +} diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird new file mode 100644 index 000000000..fe82ee471 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird @@ -0,0 +1,182 @@ + + + + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AlgorithmParameters.statemachine + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore index 301931d03..84a3baed8 100644 --- a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore +++ b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore @@ -7,6 +7,8 @@ eType="#//Event" containment="true"/> + @@ -16,9 +18,13 @@ + + + + diff --git a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel index 537d7eb8a..430b5011d 100644 --- a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel +++ b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel @@ -9,6 +9,7 @@ + @@ -17,8 +18,12 @@ + + + + diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/FinalState.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/FinalState.java new file mode 100644 index 000000000..fb0c0af75 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/FinalState.java @@ -0,0 +1,48 @@ +/** + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.statemachine; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Final State'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link de.cognicrypt.order.editor.statemachine.FinalState#getName Name}
  • + *
+ * + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getFinalState() + * @model + * @generated + */ +public interface FinalState extends EObject +{ + /** + * Returns the value of the 'Name' attribute. + * + * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getFinalState_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link de.cognicrypt.order.editor.statemachine.FinalState#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + +} // FinalState diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java index ca52c195e..7108ec754 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java @@ -18,6 +18,7 @@ *
    *
  • {@link de.cognicrypt.order.editor.statemachine.Statemachine#getEvents Events}
  • *
  • {@link de.cognicrypt.order.editor.statemachine.Statemachine#getStates States}
  • + *
  • {@link de.cognicrypt.order.editor.statemachine.Statemachine#getFinalstates Finalstates}
  • *
  • {@link de.cognicrypt.order.editor.statemachine.Statemachine#getTransitions Transitions}
  • *
* @@ -51,6 +52,18 @@ public interface Statemachine extends EObject */ EList getStates(); + /** + * Returns the value of the 'Finalstates' containment reference list. + * The list contents are of type {@link de.cognicrypt.order.editor.statemachine.FinalState}. + * + * + * @return the value of the 'Finalstates' containment reference list. + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getStatemachine_Finalstates() + * @model containment="true" + * @generated + */ + EList getFinalstates(); + /** * Returns the value of the 'Transitions' containment reference list. * The list contents are of type {@link de.cognicrypt.order.editor.statemachine.Transition}. diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/FinalStateImpl.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/FinalStateImpl.java new file mode 100644 index 000000000..7ae08183c --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/FinalStateImpl.java @@ -0,0 +1,180 @@ +/** + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.statemachine.impl; + +import de.cognicrypt.order.editor.statemachine.FinalState; +import de.cognicrypt.order.editor.statemachine.StatemachinePackage; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Final State'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link de.cognicrypt.order.editor.statemachine.impl.FinalStateImpl#getName Name}
  • + *
+ * + * @generated + */ +public class FinalStateImpl extends MinimalEObjectImpl.Container implements FinalState +{ + /** + * The default value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * + * + * @generated + */ + protected FinalStateImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StatemachinePackage.Literals.FINAL_STATE; + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.FINAL_STATE__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StatemachinePackage.FINAL_STATE__NAME: + return getName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StatemachinePackage.FINAL_STATE__NAME: + setName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StatemachinePackage.FINAL_STATE__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StatemachinePackage.FINAL_STATE__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + +} //FinalStateImpl diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/GenerateStatemachine.mwe2 b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/GenerateStatemachine.mwe2 index a1d1f66c5..4e209519c 100644 --- a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/GenerateStatemachine.mwe2 +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/GenerateStatemachine.mwe2 @@ -13,13 +13,13 @@ Workflow { baseName = "de.cognicrypt.order.editor" rootPath = rootPath runtimeTest = { - enabled = true + enabled = false } eclipsePlugin = { - enabled = true + enabled = false } eclipsePluginTest = { - enabled = true + enabled = false } createEclipseMetaData = true } diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext index 600f4f0da..daa58335a 100644 --- a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext @@ -8,6 +8,7 @@ Statemachine : events+=Event+ 'end')? states+=State* + finalstates+=FinalState* transitions+=Transition* ; @@ -16,14 +17,21 @@ Event: ; State: - 'state' name=ID + 'state' name=ID (isFinal?='true'|'false') transitions+=Transition* 'end' ; +FinalState: + 'finalstate' name=ID + 'end' +; + Transition: 'transition' name=ID fromState=[State] ',' event=[Event] ',' endState=[State] 'end' ; + + \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java index a25ebd45e..5fcc30a4c 100644 --- a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java @@ -42,6 +42,7 @@ import de.darmstadt.tu.crossing.crySL.SuperType; import de.cognicrypt.order.editor.statemachine.Event; import de.cognicrypt.order.editor.statemachine.State; +import de.cognicrypt.order.editor.statemachine.FinalState; import de.cognicrypt.order.editor.statemachine.Transition; import de.cognicrypt.order.editor.statemachine.StateMachineGraph; import de.cognicrypt.order.editor.statemachine.StateMachineGraphBuilder; @@ -94,10 +95,12 @@ public static void generateStatemachineXtextResource(EObject self, String ruleNa Statemachine statemachine = StatemachineFactory.eINSTANCE.createStatemachine(); State state = null; + FinalState finalstate = null; Event event = null; //de.darmstadt.tu.crossing.statemachine.Transition transition = null; Transition transition = null; HashMap stateNodeMap = new HashMap(); + HashMap finalstateNodeMap = new HashMap(); SuperType ev = null; int counter = 0; @@ -106,9 +109,23 @@ public static void generateStatemachineXtextResource(EObject self, String ruleNa for(StateNode s: stateNodes) { state = (State) StatemachineFactory.eINSTANCE.createState(); state.setName("s" + s.getName()); + if(s.getAccepting().equals(true)) { + state.setIsFinal(true); + } + else { + state.setIsFinal(false); + } statemachine.getStates().add((de.cognicrypt.order.editor.statemachine.State) state); counter++; stateNodeMap.put(s, state); + + if(s.getAccepting().equals(true)) { + finalstate = (FinalState) StatemachineFactory.eINSTANCE.createFinalState(); + finalstate.setName("f" + s.getName()); + //do not actually want to add a new node, but change the border of the current stateNode + statemachine.getFinalstates().add(finalstate); + finalstateNodeMap.put(s, finalstate); + } } //process transition edges for states and transitions From e2fee09691743138b3945e11d854f0b9154f3a10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anemone=20Kampk=C3=B6tter?= Date: Thu, 7 Oct 2021 15:30:56 +0200 Subject: [PATCH 06/18] Revert "Add java service creating a border around final state." This reverts commit 1195dbf96417fbbaca89efa7ee0f0ead5173c72f. --- .../META-INF/MANIFEST.MF | 17 -- .../build.properties | 7 - .../description/statemachine.odesign | 57 ------ .../plugin.properties | 3 - .../order.statemachine.design/plugin.xml | 10 - .../order/statemachine/design/Activator.java | 66 ------- .../order/statemachine/design/Services.java | 33 ---- .../representations.aird | 182 ------------------ .../model/generated/Statemachine.ecore | 6 - .../model/generated/Statemachine.genmodel | 5 - .../order/editor/statemachine/FinalState.java | 48 ----- .../editor/statemachine/Statemachine.java | 13 -- .../statemachine/impl/FinalStateImpl.java | 180 ----------------- .../order/editor/GenerateStatemachine.mwe2 | 6 +- .../order/editor/Statemachine.xtext | 10 +- .../editor/parser/StatemachineParser.java | 17 -- 16 files changed, 4 insertions(+), 656 deletions(-) delete mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/META-INF/MANIFEST.MF delete mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/build.properties delete mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/description/statemachine.odesign delete mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.properties delete mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.xml delete mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Activator.java delete mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java delete mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird delete mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/FinalState.java delete mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/FinalStateImpl.java diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/META-INF/MANIFEST.MF b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/META-INF/MANIFEST.MF deleted file mode 100644 index 84619df66..000000000 --- a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/META-INF/MANIFEST.MF +++ /dev/null @@ -1,17 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-SymbolicName: order.statemachine.design;singleton:=true -Bundle-Version: 1.0.0.qualifier -Bundle-Activator: order.statemachine.design.Activator -Bundle-Localization: plugin -Require-Bundle: org.eclipse.ui, - org.eclipse.core.runtime, - org.eclipse.core.resources, - org.eclipse.sirius, - org.eclipse.sirius.common.acceleo.aql, - de.cognicrypt.order.editor;bundle-version="1.0.0" -Bundle-ActivationPolicy: lazy -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Bundle-Vendor: %providerName -Automatic-Module-Name: order.statemachine.design diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/build.properties b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/build.properties deleted file mode 100644 index 1ab7df2cb..000000000 --- a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/build.properties +++ /dev/null @@ -1,7 +0,0 @@ -source.. = src/ -output.. = bin/ -bin.includes = META-INF/,\ - .,\ - description/,\ - plugin.properties,\ - plugin.xml diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/description/statemachine.odesign b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/description/statemachine.odesign deleted file mode 100644 index 3e793a90f..000000000 --- a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/description/statemachine.odesign +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.properties b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.properties deleted file mode 100644 index 8d2f3aceb..000000000 --- a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.properties +++ /dev/null @@ -1,3 +0,0 @@ -pluginName = order.statemachine.design -providerName = Eclipse Modeling Project -viewpointName = MyViewpoint diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.xml b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.xml deleted file mode 100644 index 8ec8ec9ab..000000000 --- a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Activator.java b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Activator.java deleted file mode 100644 index 2a90f9e98..000000000 --- a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Activator.java +++ /dev/null @@ -1,66 +0,0 @@ -package order.statemachine.design; - -import java.util.HashSet; -import java.util.Set; - -import org.eclipse.sirius.business.api.componentization.ViewpointRegistry; -import org.eclipse.sirius.viewpoint.description.Viewpoint; -import org.eclipse.ui.plugin.AbstractUIPlugin; -import org.osgi.framework.BundleContext; - -/** - * The activator class controls the plug-in life cycle - */ -public class Activator extends AbstractUIPlugin { - // The plug-in ID - public static final String PLUGIN_ID = "order.statemachine.design"; - - // The shared instance - private static Activator plugin; - - private static Set viewpoints; - - /** - * The constructor - */ - public Activator() { - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) - */ - public void start(BundleContext context) throws Exception { - super.start(context); - plugin = this; - viewpoints = new HashSet(); - viewpoints.addAll(ViewpointRegistry.getInstance().registerFromPlugin(PLUGIN_ID + "/description/statemachine.odesign")); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) - */ - public void stop(BundleContext context) throws Exception { - plugin = null; - if (viewpoints != null) { - for (final Viewpoint viewpoint: viewpoints) { - ViewpointRegistry.getInstance().disposeFromPlugin(viewpoint); - } - viewpoints.clear(); - viewpoints = null; - } - super.stop(context); - } - - /** - * Returns the shared instance - * - * @return the shared instance - */ - public static Activator getDefault() { - return plugin; - } -} diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java deleted file mode 100644 index df6767854..000000000 --- a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java +++ /dev/null @@ -1,33 +0,0 @@ -package order.statemachine.design; - -import org.eclipse.emf.ecore.EObject; - -import de.cognicrypt.order.editor.statemachine.State; - -/** - * The services class used by VSM. - */ -public class Services { - - /** - * See http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.sirius.doc%2Fdoc%2Findex.html&cp=24 for documentation on how to write service methods. - */ - public EObject myService(EObject self, String arg) { - // TODO Auto-generated code - return self; - } - - public int changeBorderFinalNode(EObject self) { - - if(self instanceof State) { - State s = (State) self; - boolean finalNode = s.isIsFinal(); - if(finalNode) { - return 5; - } - } - - return 1; - } - -} diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird deleted file mode 100644 index fe82ee471..000000000 --- a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird +++ /dev/null @@ -1,182 +0,0 @@ - - - - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AlgorithmParameters.statemachine - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore index 84a3baed8..301931d03 100644 --- a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore +++ b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore @@ -7,8 +7,6 @@ eType="#//Event" containment="true"/> -
@@ -18,13 +16,9 @@ - - - - diff --git a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel index 430b5011d..537d7eb8a 100644 --- a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel +++ b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel @@ -9,7 +9,6 @@ - @@ -18,12 +17,8 @@ - - - - diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/FinalState.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/FinalState.java deleted file mode 100644 index fb0c0af75..000000000 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/FinalState.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * generated by Xtext 2.25.0 - */ -package de.cognicrypt.order.editor.statemachine; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Final State'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link de.cognicrypt.order.editor.statemachine.FinalState#getName Name}
  • - *
- * - * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getFinalState() - * @model - * @generated - */ -public interface FinalState extends EObject -{ - /** - * Returns the value of the 'Name' attribute. - * - * - * @return the value of the 'Name' attribute. - * @see #setName(String) - * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getFinalState_Name() - * @model - * @generated - */ - String getName(); - - /** - * Sets the value of the '{@link de.cognicrypt.order.editor.statemachine.FinalState#getName Name}' attribute. - * - * - * @param value the new value of the 'Name' attribute. - * @see #getName() - * @generated - */ - void setName(String value); - -} // FinalState diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java index 7108ec754..ca52c195e 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java @@ -18,7 +18,6 @@ *
    *
  • {@link de.cognicrypt.order.editor.statemachine.Statemachine#getEvents Events}
  • *
  • {@link de.cognicrypt.order.editor.statemachine.Statemachine#getStates States}
  • - *
  • {@link de.cognicrypt.order.editor.statemachine.Statemachine#getFinalstates Finalstates}
  • *
  • {@link de.cognicrypt.order.editor.statemachine.Statemachine#getTransitions Transitions}
  • *
* @@ -52,18 +51,6 @@ public interface Statemachine extends EObject */ EList getStates(); - /** - * Returns the value of the 'Finalstates' containment reference list. - * The list contents are of type {@link de.cognicrypt.order.editor.statemachine.FinalState}. - * - * - * @return the value of the 'Finalstates' containment reference list. - * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getStatemachine_Finalstates() - * @model containment="true" - * @generated - */ - EList getFinalstates(); - /** * Returns the value of the 'Transitions' containment reference list. * The list contents are of type {@link de.cognicrypt.order.editor.statemachine.Transition}. diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/FinalStateImpl.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/FinalStateImpl.java deleted file mode 100644 index 7ae08183c..000000000 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/FinalStateImpl.java +++ /dev/null @@ -1,180 +0,0 @@ -/** - * generated by Xtext 2.25.0 - */ -package de.cognicrypt.order.editor.statemachine.impl; - -import de.cognicrypt.order.editor.statemachine.FinalState; -import de.cognicrypt.order.editor.statemachine.StatemachinePackage; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -/** - * - * An implementation of the model object 'Final State'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link de.cognicrypt.order.editor.statemachine.impl.FinalStateImpl#getName Name}
  • - *
- * - * @generated - */ -public class FinalStateImpl extends MinimalEObjectImpl.Container implements FinalState -{ - /** - * The default value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected static final String NAME_EDEFAULT = null; - - /** - * The cached value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected String name = NAME_EDEFAULT; - - /** - * - * - * @generated - */ - protected FinalStateImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return StatemachinePackage.Literals.FINAL_STATE; - } - - /** - * - * - * @generated - */ - @Override - public String getName() - { - return name; - } - - /** - * - * - * @generated - */ - @Override - public void setName(String newName) - { - String oldName = name; - name = newName; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.FINAL_STATE__NAME, oldName, name)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case StatemachinePackage.FINAL_STATE__NAME: - return getName(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case StatemachinePackage.FINAL_STATE__NAME: - setName((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case StatemachinePackage.FINAL_STATE__NAME: - setName(NAME_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case StatemachinePackage.FINAL_STATE__NAME: - return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuilder result = new StringBuilder(super.toString()); - result.append(" (name: "); - result.append(name); - result.append(')'); - return result.toString(); - } - -} //FinalStateImpl diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/GenerateStatemachine.mwe2 b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/GenerateStatemachine.mwe2 index 4e209519c..a1d1f66c5 100644 --- a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/GenerateStatemachine.mwe2 +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/GenerateStatemachine.mwe2 @@ -13,13 +13,13 @@ Workflow { baseName = "de.cognicrypt.order.editor" rootPath = rootPath runtimeTest = { - enabled = false + enabled = true } eclipsePlugin = { - enabled = false + enabled = true } eclipsePluginTest = { - enabled = false + enabled = true } createEclipseMetaData = true } diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext index daa58335a..600f4f0da 100644 --- a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext @@ -8,7 +8,6 @@ Statemachine : events+=Event+ 'end')? states+=State* - finalstates+=FinalState* transitions+=Transition* ; @@ -17,21 +16,14 @@ Event: ; State: - 'state' name=ID (isFinal?='true'|'false') + 'state' name=ID transitions+=Transition* 'end' ; -FinalState: - 'finalstate' name=ID - 'end' -; - Transition: 'transition' name=ID fromState=[State] ',' event=[Event] ',' endState=[State] 'end' ; - - \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java index 5fcc30a4c..a25ebd45e 100644 --- a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java @@ -42,7 +42,6 @@ import de.darmstadt.tu.crossing.crySL.SuperType; import de.cognicrypt.order.editor.statemachine.Event; import de.cognicrypt.order.editor.statemachine.State; -import de.cognicrypt.order.editor.statemachine.FinalState; import de.cognicrypt.order.editor.statemachine.Transition; import de.cognicrypt.order.editor.statemachine.StateMachineGraph; import de.cognicrypt.order.editor.statemachine.StateMachineGraphBuilder; @@ -95,12 +94,10 @@ public static void generateStatemachineXtextResource(EObject self, String ruleNa Statemachine statemachine = StatemachineFactory.eINSTANCE.createStatemachine(); State state = null; - FinalState finalstate = null; Event event = null; //de.darmstadt.tu.crossing.statemachine.Transition transition = null; Transition transition = null; HashMap stateNodeMap = new HashMap(); - HashMap finalstateNodeMap = new HashMap(); SuperType ev = null; int counter = 0; @@ -109,23 +106,9 @@ public static void generateStatemachineXtextResource(EObject self, String ruleNa for(StateNode s: stateNodes) { state = (State) StatemachineFactory.eINSTANCE.createState(); state.setName("s" + s.getName()); - if(s.getAccepting().equals(true)) { - state.setIsFinal(true); - } - else { - state.setIsFinal(false); - } statemachine.getStates().add((de.cognicrypt.order.editor.statemachine.State) state); counter++; stateNodeMap.put(s, state); - - if(s.getAccepting().equals(true)) { - finalstate = (FinalState) StatemachineFactory.eINSTANCE.createFinalState(); - finalstate.setName("f" + s.getName()); - //do not actually want to add a new node, but change the border of the current stateNode - statemachine.getFinalstates().add(finalstate); - finalstateNodeMap.put(s, finalstate); - } } //process transition edges for states and transitions From 9c3e70d27b3f4f77bc1f70fc40eee05141555930 Mon Sep 17 00:00:00 2001 From: Anemone Date: Thu, 7 Oct 2021 15:52:49 +0200 Subject: [PATCH 07/18] Correct small spelling mistake in Readme. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Anemone Kampkötter --- plugins/de.cognicrypt.order.editor/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/de.cognicrypt.order.editor/README.md b/plugins/de.cognicrypt.order.editor/README.md index 8e093fb61..9f9907ad1 100644 --- a/plugins/de.cognicrypt.order.editor/README.md +++ b/plugins/de.cognicrypt.order.editor/README.md @@ -1,6 +1,6 @@ # CrySL Visual Order Editor -The Order Editotr displays the usage pattern of the class as defined in the Order expression of its CrySL rule as a state machine. +The Order Editor displays the usage pattern of the class as defined in the Order expression of its CrySL rule as a state machine. ## Set up From 1c43b0c495b6b6f1c0504687ec0dcfe66fc4e74e Mon Sep 17 00:00:00 2001 From: Anemone Date: Thu, 7 Oct 2021 16:48:27 +0200 Subject: [PATCH 08/18] Add style change for final state. Signed-off-by: Anemone --- .../META-INF/MANIFEST.MF | 17 + .../build.properties | 7 + .../description/statemachine.odesign | 57 + .../plugin.properties | 3 + .../order.statemachine.design/plugin.xml | 10 + .../order/statemachine/design/Activator.java | 66 + .../order/statemachine/design/Services.java | 33 + .../representations.aird | 98 ++ plugins/de.cognicrypt.order.editor/README.md | 2 +- .../config/config.xml | 404 +++++ .../model/generated/Statemachine.ecore | 6 + .../model/generated/Statemachine.genmodel | 5 + .../de.cognicrypt.order.editor/plugin.xml_gen | 10 + .../order/editor/Statemachine.xtextbin | Bin 4869 -> 5055 bytes .../antlr/internal/InternalStatemachine.g | 101 +- .../internal/InternalStatemachine.tokens | 44 +- .../internal/InternalStatemachineLexer.java | 466 ++++-- .../internal/InternalStatemachineParser.java | 1462 ++++++++++------- .../StatemachineSemanticSequencer.java | 26 +- .../services/StatemachineGrammarAccess.java | 98 +- .../order/editor/statemachine/FinalState.java | 48 + .../order/editor/statemachine/State.java | 23 + .../editor/statemachine/Statemachine.java | 13 + .../statemachine/StatemachineFactory.java | 9 + .../statemachine/StatemachinePackage.java | 133 +- .../statemachine/impl/FinalStateImpl.java | 180 ++ .../editor/statemachine/impl/StateImpl.java | 58 + .../impl/StatemachineFactoryImpl.java | 13 + .../statemachine/impl/StatemachineImpl.java | 40 + .../impl/StatemachinePackageImpl.java | 66 +- .../util/StatemachineAdapterFactory.java | 20 + .../statemachine/util/StatemachineSwitch.java | 23 + .../order/editor/GenerateStatemachine.mwe2 | 6 +- .../order/editor/Statemachine.xtext | 10 +- .../editor/parser/StatemachineParser.java | 17 + .../.StatemachineGenerator.java._trace | Bin 414 -> 414 bytes .../generator/.StatemachineGenerator.xtendbin | Bin 2311 -> 2308 bytes 37 files changed, 2736 insertions(+), 838 deletions(-) create mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/META-INF/MANIFEST.MF create mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/build.properties create mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/description/statemachine.odesign create mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.properties create mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.xml create mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Activator.java create mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java create mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird create mode 100644 plugins/de.cognicrypt.order.editor/config/config.xml create mode 100644 plugins/de.cognicrypt.order.editor/plugin.xml_gen create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/FinalState.java create mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/FinalStateImpl.java diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/META-INF/MANIFEST.MF b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/META-INF/MANIFEST.MF new file mode 100644 index 000000000..84619df66 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/META-INF/MANIFEST.MF @@ -0,0 +1,17 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: order.statemachine.design;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: order.statemachine.design.Activator +Bundle-Localization: plugin +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + org.eclipse.core.resources, + org.eclipse.sirius, + org.eclipse.sirius.common.acceleo.aql, + de.cognicrypt.order.editor;bundle-version="1.0.0" +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-Vendor: %providerName +Automatic-Module-Name: order.statemachine.design diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/build.properties b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/build.properties new file mode 100644 index 000000000..1ab7df2cb --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/build.properties @@ -0,0 +1,7 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + description/,\ + plugin.properties,\ + plugin.xml diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/description/statemachine.odesign b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/description/statemachine.odesign new file mode 100644 index 000000000..3e793a90f --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/description/statemachine.odesign @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.properties b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.properties new file mode 100644 index 000000000..8d2f3aceb --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.properties @@ -0,0 +1,3 @@ +pluginName = order.statemachine.design +providerName = Eclipse Modeling Project +viewpointName = MyViewpoint diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.xml b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.xml new file mode 100644 index 000000000..8ec8ec9ab --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Activator.java b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Activator.java new file mode 100644 index 000000000..2a90f9e98 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Activator.java @@ -0,0 +1,66 @@ +package order.statemachine.design; + +import java.util.HashSet; +import java.util.Set; + +import org.eclipse.sirius.business.api.componentization.ViewpointRegistry; +import org.eclipse.sirius.viewpoint.description.Viewpoint; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends AbstractUIPlugin { + // The plug-in ID + public static final String PLUGIN_ID = "order.statemachine.design"; + + // The shared instance + private static Activator plugin; + + private static Set viewpoints; + + /** + * The constructor + */ + public Activator() { + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + viewpoints = new HashSet(); + viewpoints.addAll(ViewpointRegistry.getInstance().registerFromPlugin(PLUGIN_ID + "/description/statemachine.odesign")); + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext context) throws Exception { + plugin = null; + if (viewpoints != null) { + for (final Viewpoint viewpoint: viewpoints) { + ViewpointRegistry.getInstance().disposeFromPlugin(viewpoint); + } + viewpoints.clear(); + viewpoints = null; + } + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } +} diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java new file mode 100644 index 000000000..df6767854 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java @@ -0,0 +1,33 @@ +package order.statemachine.design; + +import org.eclipse.emf.ecore.EObject; + +import de.cognicrypt.order.editor.statemachine.State; + +/** + * The services class used by VSM. + */ +public class Services { + + /** + * See http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.sirius.doc%2Fdoc%2Findex.html&cp=24 for documentation on how to write service methods. + */ + public EObject myService(EObject self, String arg) { + // TODO Auto-generated code + return self; + } + + public int changeBorderFinalNode(EObject self) { + + if(self instanceof State) { + State s = (State) self; + boolean finalNode = s.isIsFinal(); + if(finalNode) { + return 5; + } + } + + return 1; + } + +} diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird new file mode 100644 index 000000000..da9091644 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird @@ -0,0 +1,98 @@ + + + + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AlgorithmParameters.statemachine + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AESEngine.statemachine + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor/README.md b/plugins/de.cognicrypt.order.editor/README.md index 9f9907ad1..8e093fb61 100644 --- a/plugins/de.cognicrypt.order.editor/README.md +++ b/plugins/de.cognicrypt.order.editor/README.md @@ -1,6 +1,6 @@ # CrySL Visual Order Editor -The Order Editor displays the usage pattern of the class as defined in the Order expression of its CrySL rule as a state machine. +The Order Editotr displays the usage pattern of the class as defined in the Order expression of its CrySL rule as a state machine. ## Set up diff --git a/plugins/de.cognicrypt.order.editor/config/config.xml b/plugins/de.cognicrypt.order.editor/config/config.xml new file mode 100644 index 000000000..ebce77feb --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/config/config.xml @@ -0,0 +1,404 @@ + AlgorithmParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\AlgorithmParameters.crysl + + CertPathTrustManagerParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\CertPathTrustManagerParameters.crysl + + Cipher.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\Cipher.crysl + + CipherInputStream.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\CipherInputStream.crysl + + CipherOutputStream.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\CipherOutputStream.crysl + + Cookie.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\Cookie.crysl + + DHGenParameterSpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\DHGenParameterSpec.crysl + + DHParameterSpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\DHParameterSpec.crysl + + DigestInputStream.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\DigestInputStream.crysl + + DigestOutputStream.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\DigestOutputStream.crysl + + DSAGenParameterSpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\DSAGenParameterSpec.crysl + + DSAParameterSpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\DSAParameterSpec.crysl + + GCMParameterSpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\GCMParameterSpec.crysl + + HMACParameterSpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\HMACParameterSpec.crysl + + IvParameterSpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\IvParameterSpec.crysl + + Key.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\Key.crysl + + KeyGenerator.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\KeyGenerator.crysl + + KeyManagerFactory.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\KeyManagerFactory.crysl + + KeyPair.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\KeyPair.crysl + + KeyPairGenerator.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\KeyPairGenerator.crysl + + KeyStore.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\KeyStore.crysl + + KeyStoreBuilderParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\KeyStoreBuilderParameters.crysl + + Mac.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\Mac.crysl + + MessageDigest.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\MessageDigest.crysl + + PBEKeySpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\PBEKeySpec.crysl + + PBEParameterSpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\PBEParameterSpec.crysl + + PKIXBuilderParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\PKIXBuilderParameters.crysl + + PKIXParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\PKIXParameters.crysl + + RSAKeyGenParameterSpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\RSAKeyGenParameterSpec.crysl + + SecretKey.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\SecretKey.crysl + + SecretKeyFactory.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\SecretKeyFactory.crysl + + SecretKeySpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\SecretKeySpec.crysl + + SecureRandom.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\SecureRandom.crysl + + Signature.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\Signature.crysl + + SSLContext.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\SSLContext.crysl + + SSLEngine.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\SSLEngine.crysl + + SSLParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\SSLParameters.crysl + + TrustAnchor.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\TrustAnchor.crysl + + TrustManagerFactory.crysl + C:\Users\T440s\git\Crypto-API-Rules\JavaCryptographicArchitecture\src\TrustManagerFactory.crysl + + AEADParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\AEADParameters.crysl + + AESEngine.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\AESEngine.crysl + + AsymmetricCipherKeyPair.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\AsymmetricCipherKeyPair.crysl + + BufferedBlockCipher.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\BufferedBlockCipher.crysl + + CBCBlockCipher.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\CBCBlockCipher.crysl + + ECDomainParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\ECDomainParameters.crysl + + ECElGamalDecryptor.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\ECElGamalDecryptor.crysl + + ECElGamalEncryptor.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\ECElGamalEncryptor.crysl + + ECFixedTransform.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\ECFixedTransform.crysl + + ECKeyGenerationParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\ECKeyGenerationParameters.crysl + + ECKeyPairGenerator.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\ECKeyPairGenerator.crysl + + ECKeyParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\ECKeyParameters.crysl + + ECNewPublicKeyTransform.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\ECNewPublicKeyTransform.crysl + + ECNewRandomnessTransform.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\ECNewRandomnessTransform.crysl + + ECPair.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\ECPair.crysl + + ECPrivateKeyParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\ECPrivateKeyParameters.crysl + + ECPublicKeyParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\ECPublicKeyParameters.crysl + + GCMBlockCipher.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\GCMBlockCipher.crysl + + HMac.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\HMac.crysl + + KeyParameter.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\KeyParameter.crysl + + PaddedBufferedBlockCipher.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\PaddedBufferedBlockCipher.crysl + + ParametersWithIV.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\ParametersWithIV.crysl + + ParametersWithRandom.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\ParametersWithRandom.crysl + + RSADigestSigner.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\RSADigestSigner.crysl + + RSAEngine.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\RSAEngine.crysl + + RSAKeyGenerationParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\RSAKeyGenerationParameters.crysl + + RSAKeyPairGenerator.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\RSAKeyPairGenerator.crysl + + RSAKeyParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\RSAKeyParameters.crysl + + RSAPrivateCrtKeyParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\RSAPrivateCrtKeyParameters.crysl + + SecureRandom.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\SecureRandom.crysl + + SHA256Digest.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle\src\SHA256Digest.crysl + + AlgorithmParameterGenerator.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\AlgorithmParameterGenerator.crysl + + AlgorithmParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\AlgorithmParameters.crysl + + CertificateFactory.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\CertificateFactory.crysl + + CertPathTrustManagerParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\CertPathTrustManagerParameters.crysl + + Cipher.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\Cipher.crysl + + CipherInputStream.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\CipherInputStream.crysl + + CipherOutputStream.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\CipherOutputStream.crysl + + DHGenParameterSpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\DHGenParameterSpec.crysl + + DHParameterSpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\DHParameterSpec.crysl + + DSAGenParameterSpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\DSAGenParameterSpec.crysl + + DSAParameterSpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\DSAParameterSpec.crysl + + GCMParameterSpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\GCMParameterSpec.crysl + + HMACParameterSpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\HMACParameterSpec.crysl + + IvParameterSpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\IvParameterSpec.crysl + + Key.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\Key.crysl + + KeyAgreement.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\KeyAgreement.crysl + + KeyFactory.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\KeyFactory.crysl + + KeyGenerator.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\KeyGenerator.crysl + + KeyManagerFactory.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\KeyManagerFactory.crysl + + KeyPair.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\KeyPair.crysl + + KeyPairGenerator.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\KeyPairGenerator.crysl + + KeyStore.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\KeyStore.crysl + + KeyStoreBuilderParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\KeyStoreBuilderParameters.crysl + + Mac.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\Mac.crysl + + MessageDigest.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\MessageDigest.crysl + + PBEKeySpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\PBEKeySpec.crysl + + PBEParameterSpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\PBEParameterSpec.crysl + + PKIXBuilderParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\PKIXBuilderParameters.crysl + + PKIXParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\PKIXParameters.crysl + + RSAKeyGenParameterSpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\RSAKeyGenParameterSpec.crysl + + SecretKey.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\SecretKey.crysl + + SecretKeyFactory.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\SecretKeyFactory.crysl + + SecretKeySpec.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\SecretKeySpec.crysl + + SecureRandom.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\SecureRandom.crysl + + Signature.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\Signature.crysl + + SSLContext.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\SSLContext.crysl + + SSLEngine.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\SSLEngine.crysl + + SSLParameters.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\SSLParameters.crysl + + TrustAnchor.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\TrustAnchor.crysl + + TrustManagerFactory.crysl + C:\Users\T440s\git\Crypto-API-Rules\BouncyCastle-JCA\src\TrustManagerFactory.crysl + + AeadFactory.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\AeadFactory.crysl + + AeadKeyTemplates.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\AeadKeyTemplates.crysl + + AeadPrimitive.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\AeadPrimitive.crysl + + DeterministicAead.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\DeterministicAead.crysl + + DeterministicAeadFactory.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\DeterministicAeadFactory.crysl + + DeterministicAeadKeyTemplates.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\DeterministicAeadKeyTemplates.crysl + + HybridDecrypt.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\HybridDecrypt.crysl + + HybridDecryptFactory.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\HybridDecryptFactory.crysl + + HybridEncrypt.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\HybridEncrypt.crysl + + HybridEncryptFactory.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\HybridEncryptFactory.crysl + + HybridKeyTemplates.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\HybridKeyTemplates.crysl + + KeysetHandle.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\KeysetHandle.crysl + + KeyTemplate.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\KeyTemplate.crysl + + MacFactory.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\MacFactory.crysl + + MacKeyTemplates.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\MacKeyTemplates.crysl + + MacPrimitive.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\MacPrimitive.crysl + + PublicKeySign.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\PublicKeySign.crysl + + PublicKeySignFactory.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\PublicKeySignFactory.crysl + + PublicKeyVerify.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\PublicKeyVerify.crysl + + PublicKeyVerifyFactory.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\PublicKeyVerifyFactory.crysl + + SignatureKeyTemplates.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\SignatureKeyTemplates.crysl + + StreamingAead.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\StreamingAead.crysl + + StreamingAeadFactory.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\StreamingAeadFactory.crysl + + StreamingAeadKeyTemplates.crysl + C:\Users\T440s\git\Crypto-API-Rules\Tink\src\StreamingAeadKeyTemplates.crysl + + + diff --git a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore index 301931d03..84a3baed8 100644 --- a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore +++ b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore @@ -7,6 +7,8 @@ eType="#//Event" containment="true"/> +
@@ -16,9 +18,13 @@ + + + + diff --git a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel index 537d7eb8a..430b5011d 100644 --- a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel +++ b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel @@ -9,6 +9,7 @@ + @@ -17,8 +18,12 @@ + + + + diff --git a/plugins/de.cognicrypt.order.editor/plugin.xml_gen b/plugins/de.cognicrypt.order.editor/plugin.xml_gen new file mode 100644 index 000000000..2a656bbbf --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/plugin.xml_gen @@ -0,0 +1,10 @@ + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/Statemachine.xtextbin b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/Statemachine.xtextbin index 2dab2b3625b02ad893d929c00181a605ef87e29e..0ab1405da2dfe5e86ee775dc0ae9b58ea2277e98 100644 GIT binary patch delta 553 zcmZ{h%TB^T6ox%Bok1wX>H`=zY7`UV4e)|^yx?6_K;1U6Bu!vQXm#6_YZpF*Ti?LP z@ijct4ptU+G3m^i@Bjb&^Sbc0_^BL_?*peo>xc7A>)Z5vBm~D*$csroX!y$QNnWpI za1Epo;qci5z;*hUUAGtL%?9KdTNe3n=&HaE{ecQ3FA}i{w!kvvnBD#zajXDmIK#2Z z_=G5wO6d$N+=7gVvbat9cB%)sLve(1`<`SZyi3AWa<0*7t~(s`TcH~!qdh1HtQ(6W zNZe2E0wQU$6~F_6r1#>fFxEQMz>xvw2sn;LM8gm#L}Wenl)9X1=BkhI~p=_ zvpO0vaxrm-z@?ZSjTxDl9EF%2O_-P&Sb6pJ5ps+yj;4(4telQ!jBKpj2;&$X%^7)E zS@RNeQ`wk+=2`&FwP0j)v;>NBr4{AZ=LVM~mO$jJ7'=19 -'>'=21 -'?'=23 -'['=15 -']'=16 +'&'=28 +'('=20 +')'=21 +'*'=30 +','=17 +'.'=25 +';'=34 +'<'=23 +'=>'=22 +'>'=24 +'?'=26 +'['=18 +']'=19 'end'=11 'events'=10 -'extends'=24 -'extension'=30 -'import'=28 +'extends'=27 +'extension'=33 +'false'=14 +'finalstate'=15 +'import'=31 'state'=12 -'static'=29 -'super'=26 -'transition'=13 +'static'=32 +'super'=29 +'transition'=16 +'true'=13 RULE_ANY_OTHER=9 RULE_ID=4 RULE_ML_COMMENT=6 @@ -48,3 +51,6 @@ T__28=28 T__29=29 T__30=30 T__31=31 +T__32=32 +T__33=33 +T__34=34 diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineLexer.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineLexer.java index 2ca8a9646..6623fe5a5 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineLexer.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineLexer.java @@ -20,13 +20,16 @@ public class InternalStatemachineLexer extends Lexer { public static final int T__17=17; public static final int T__18=18; public static final int T__11=11; + public static final int T__33=33; public static final int T__12=12; + public static final int T__34=34; public static final int T__13=13; public static final int T__14=14; public static final int EOF=-1; public static final int T__30=30; public static final int T__31=31; public static final int T__10=10; + public static final int T__32=32; public static final int RULE_ID=4; public static final int RULE_WS=8; public static final int RULE_ANY_OTHER=9; @@ -123,10 +126,10 @@ public final void mT__13() throws RecognitionException { try { int _type = T__13; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:14:7: ( 'transition' ) - // InternalStatemachine.g:14:9: 'transition' + // InternalStatemachine.g:14:7: ( 'true' ) + // InternalStatemachine.g:14:9: 'true' { - match("transition"); + match("true"); } @@ -144,10 +147,11 @@ public final void mT__14() throws RecognitionException { try { int _type = T__14; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:15:7: ( ',' ) - // InternalStatemachine.g:15:9: ',' + // InternalStatemachine.g:15:7: ( 'false' ) + // InternalStatemachine.g:15:9: 'false' { - match(','); + match("false"); + } @@ -164,10 +168,11 @@ public final void mT__15() throws RecognitionException { try { int _type = T__15; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:16:7: ( '[' ) - // InternalStatemachine.g:16:9: '[' + // InternalStatemachine.g:16:7: ( 'finalstate' ) + // InternalStatemachine.g:16:9: 'finalstate' { - match('['); + match("finalstate"); + } @@ -184,10 +189,11 @@ public final void mT__16() throws RecognitionException { try { int _type = T__16; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:17:7: ( ']' ) - // InternalStatemachine.g:17:9: ']' + // InternalStatemachine.g:17:7: ( 'transition' ) + // InternalStatemachine.g:17:9: 'transition' { - match(']'); + match("transition"); + } @@ -204,10 +210,10 @@ public final void mT__17() throws RecognitionException { try { int _type = T__17; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:18:7: ( '(' ) - // InternalStatemachine.g:18:9: '(' + // InternalStatemachine.g:18:7: ( ',' ) + // InternalStatemachine.g:18:9: ',' { - match('('); + match(','); } @@ -224,10 +230,10 @@ public final void mT__18() throws RecognitionException { try { int _type = T__18; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:19:7: ( ')' ) - // InternalStatemachine.g:19:9: ')' + // InternalStatemachine.g:19:7: ( '[' ) + // InternalStatemachine.g:19:9: '[' { - match(')'); + match('['); } @@ -244,11 +250,10 @@ public final void mT__19() throws RecognitionException { try { int _type = T__19; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:20:7: ( '=>' ) - // InternalStatemachine.g:20:9: '=>' + // InternalStatemachine.g:20:7: ( ']' ) + // InternalStatemachine.g:20:9: ']' { - match("=>"); - + match(']'); } @@ -265,10 +270,10 @@ public final void mT__20() throws RecognitionException { try { int _type = T__20; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:21:7: ( '<' ) - // InternalStatemachine.g:21:9: '<' + // InternalStatemachine.g:21:7: ( '(' ) + // InternalStatemachine.g:21:9: '(' { - match('<'); + match('('); } @@ -285,10 +290,10 @@ public final void mT__21() throws RecognitionException { try { int _type = T__21; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:22:7: ( '>' ) - // InternalStatemachine.g:22:9: '>' + // InternalStatemachine.g:22:7: ( ')' ) + // InternalStatemachine.g:22:9: ')' { - match('>'); + match(')'); } @@ -305,10 +310,11 @@ public final void mT__22() throws RecognitionException { try { int _type = T__22; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:23:7: ( '.' ) - // InternalStatemachine.g:23:9: '.' + // InternalStatemachine.g:23:7: ( '=>' ) + // InternalStatemachine.g:23:9: '=>' { - match('.'); + match("=>"); + } @@ -325,10 +331,10 @@ public final void mT__23() throws RecognitionException { try { int _type = T__23; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:24:7: ( '?' ) - // InternalStatemachine.g:24:9: '?' + // InternalStatemachine.g:24:7: ( '<' ) + // InternalStatemachine.g:24:9: '<' { - match('?'); + match('<'); } @@ -345,11 +351,10 @@ public final void mT__24() throws RecognitionException { try { int _type = T__24; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:25:7: ( 'extends' ) - // InternalStatemachine.g:25:9: 'extends' + // InternalStatemachine.g:25:7: ( '>' ) + // InternalStatemachine.g:25:9: '>' { - match("extends"); - + match('>'); } @@ -366,10 +371,10 @@ public final void mT__25() throws RecognitionException { try { int _type = T__25; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:26:7: ( '&' ) - // InternalStatemachine.g:26:9: '&' + // InternalStatemachine.g:26:7: ( '.' ) + // InternalStatemachine.g:26:9: '.' { - match('&'); + match('.'); } @@ -386,11 +391,10 @@ public final void mT__26() throws RecognitionException { try { int _type = T__26; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:27:7: ( 'super' ) - // InternalStatemachine.g:27:9: 'super' + // InternalStatemachine.g:27:7: ( '?' ) + // InternalStatemachine.g:27:9: '?' { - match("super"); - + match('?'); } @@ -407,10 +411,11 @@ public final void mT__27() throws RecognitionException { try { int _type = T__27; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:28:7: ( '*' ) - // InternalStatemachine.g:28:9: '*' + // InternalStatemachine.g:28:7: ( 'extends' ) + // InternalStatemachine.g:28:9: 'extends' { - match('*'); + match("extends"); + } @@ -427,11 +432,10 @@ public final void mT__28() throws RecognitionException { try { int _type = T__28; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:29:7: ( 'import' ) - // InternalStatemachine.g:29:9: 'import' + // InternalStatemachine.g:29:7: ( '&' ) + // InternalStatemachine.g:29:9: '&' { - match("import"); - + match('&'); } @@ -448,10 +452,10 @@ public final void mT__29() throws RecognitionException { try { int _type = T__29; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:30:7: ( 'static' ) - // InternalStatemachine.g:30:9: 'static' + // InternalStatemachine.g:30:7: ( 'super' ) + // InternalStatemachine.g:30:9: 'super' { - match("static"); + match("super"); } @@ -469,11 +473,10 @@ public final void mT__30() throws RecognitionException { try { int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:31:7: ( 'extension' ) - // InternalStatemachine.g:31:9: 'extension' + // InternalStatemachine.g:31:7: ( '*' ) + // InternalStatemachine.g:31:9: '*' { - match("extension"); - + match('*'); } @@ -490,10 +493,11 @@ public final void mT__31() throws RecognitionException { try { int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:32:7: ( ';' ) - // InternalStatemachine.g:32:9: ';' + // InternalStatemachine.g:32:7: ( 'import' ) + // InternalStatemachine.g:32:9: 'import' { - match(';'); + match("import"); + } @@ -505,15 +509,77 @@ public final void mT__31() throws RecognitionException { } // $ANTLR end "T__31" + // $ANTLR start "T__32" + public final void mT__32() throws RecognitionException { + try { + int _type = T__32; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:33:7: ( 'static' ) + // InternalStatemachine.g:33:9: 'static' + { + match("static"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__32" + + // $ANTLR start "T__33" + public final void mT__33() throws RecognitionException { + try { + int _type = T__33; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:34:7: ( 'extension' ) + // InternalStatemachine.g:34:9: 'extension' + { + match("extension"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__33" + + // $ANTLR start "T__34" + public final void mT__34() throws RecognitionException { + try { + int _type = T__34; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalStatemachine.g:35:7: ( ';' ) + // InternalStatemachine.g:35:9: ';' + { + match(';'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__34" + // $ANTLR start "RULE_ID" public final void mRULE_ID() throws RecognitionException { try { int _type = RULE_ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:1354:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* ) - // InternalStatemachine.g:1354:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* + // InternalStatemachine.g:1439:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* ) + // InternalStatemachine.g:1439:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* { - // InternalStatemachine.g:1354:11: ( '^' )? + // InternalStatemachine.g:1439:11: ( '^' )? int alt1=2; int LA1_0 = input.LA(1); @@ -522,7 +588,7 @@ public final void mRULE_ID() throws RecognitionException { } switch (alt1) { case 1 : - // InternalStatemachine.g:1354:11: '^' + // InternalStatemachine.g:1439:11: '^' { match('^'); @@ -540,7 +606,7 @@ public final void mRULE_ID() throws RecognitionException { recover(mse); throw mse;} - // InternalStatemachine.g:1354:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* + // InternalStatemachine.g:1439:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* loop2: do { int alt2=2; @@ -589,10 +655,10 @@ public final void mRULE_STRING() throws RecognitionException { try { int _type = RULE_STRING; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:1356:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) ) - // InternalStatemachine.g:1356:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) + // InternalStatemachine.g:1441:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) ) + // InternalStatemachine.g:1441:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) { - // InternalStatemachine.g:1356:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) + // InternalStatemachine.g:1441:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) int alt7=2; int LA7_0 = input.LA(1); @@ -610,10 +676,10 @@ else if ( (LA7_0=='\'') ) { } switch (alt7) { case 1 : - // InternalStatemachine.g:1356:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? + // InternalStatemachine.g:1441:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? { match('\"'); - // InternalStatemachine.g:1356:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* + // InternalStatemachine.g:1441:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* loop3: do { int alt3=3; @@ -629,7 +695,7 @@ else if ( ((LA3_0>='\u0000' && LA3_0<='!')||(LA3_0>='#' && LA3_0<='[')||(LA3_0>= switch (alt3) { case 1 : - // InternalStatemachine.g:1356:21: '\\\\' . + // InternalStatemachine.g:1441:21: '\\\\' . { match('\\'); matchAny(); @@ -637,7 +703,7 @@ else if ( ((LA3_0>='\u0000' && LA3_0<='!')||(LA3_0>='#' && LA3_0<='[')||(LA3_0>= } break; case 2 : - // InternalStatemachine.g:1356:28: ~ ( ( '\\\\' | '\"' ) ) + // InternalStatemachine.g:1441:28: ~ ( ( '\\\\' | '\"' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -657,7 +723,7 @@ else if ( ((LA3_0>='\u0000' && LA3_0<='!')||(LA3_0>='#' && LA3_0<='[')||(LA3_0>= } } while (true); - // InternalStatemachine.g:1356:44: ( '\"' )? + // InternalStatemachine.g:1441:44: ( '\"' )? int alt4=2; int LA4_0 = input.LA(1); @@ -666,7 +732,7 @@ else if ( ((LA3_0>='\u0000' && LA3_0<='!')||(LA3_0>='#' && LA3_0<='[')||(LA3_0>= } switch (alt4) { case 1 : - // InternalStatemachine.g:1356:44: '\"' + // InternalStatemachine.g:1441:44: '\"' { match('\"'); @@ -679,10 +745,10 @@ else if ( ((LA3_0>='\u0000' && LA3_0<='!')||(LA3_0>='#' && LA3_0<='[')||(LA3_0>= } break; case 2 : - // InternalStatemachine.g:1356:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? + // InternalStatemachine.g:1441:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? { match('\''); - // InternalStatemachine.g:1356:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* + // InternalStatemachine.g:1441:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* loop5: do { int alt5=3; @@ -698,7 +764,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= switch (alt5) { case 1 : - // InternalStatemachine.g:1356:55: '\\\\' . + // InternalStatemachine.g:1441:55: '\\\\' . { match('\\'); matchAny(); @@ -706,7 +772,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= } break; case 2 : - // InternalStatemachine.g:1356:62: ~ ( ( '\\\\' | '\\'' ) ) + // InternalStatemachine.g:1441:62: ~ ( ( '\\\\' | '\\'' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -726,7 +792,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= } } while (true); - // InternalStatemachine.g:1356:79: ( '\\'' )? + // InternalStatemachine.g:1441:79: ( '\\'' )? int alt6=2; int LA6_0 = input.LA(1); @@ -735,7 +801,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= } switch (alt6) { case 1 : - // InternalStatemachine.g:1356:79: '\\'' + // InternalStatemachine.g:1441:79: '\\'' { match('\''); @@ -766,12 +832,12 @@ public final void mRULE_ML_COMMENT() throws RecognitionException { try { int _type = RULE_ML_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:1358:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) - // InternalStatemachine.g:1358:19: '/*' ( options {greedy=false; } : . )* '*/' + // InternalStatemachine.g:1443:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // InternalStatemachine.g:1443:19: '/*' ( options {greedy=false; } : . )* '*/' { match("/*"); - // InternalStatemachine.g:1358:24: ( options {greedy=false; } : . )* + // InternalStatemachine.g:1443:24: ( options {greedy=false; } : . )* loop8: do { int alt8=2; @@ -796,7 +862,7 @@ else if ( ((LA8_0>='\u0000' && LA8_0<=')')||(LA8_0>='+' && LA8_0<='\uFFFF')) ) { switch (alt8) { case 1 : - // InternalStatemachine.g:1358:52: . + // InternalStatemachine.g:1443:52: . { matchAny(); @@ -826,12 +892,12 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { try { int _type = RULE_SL_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:1360:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) - // InternalStatemachine.g:1360:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + // InternalStatemachine.g:1445:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // InternalStatemachine.g:1445:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? { match("//"); - // InternalStatemachine.g:1360:24: (~ ( ( '\\n' | '\\r' ) ) )* + // InternalStatemachine.g:1445:24: (~ ( ( '\\n' | '\\r' ) ) )* loop9: do { int alt9=2; @@ -844,7 +910,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { switch (alt9) { case 1 : - // InternalStatemachine.g:1360:24: ~ ( ( '\\n' | '\\r' ) ) + // InternalStatemachine.g:1445: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(); @@ -864,7 +930,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } } while (true); - // InternalStatemachine.g:1360:40: ( ( '\\r' )? '\\n' )? + // InternalStatemachine.g:1445:40: ( ( '\\r' )? '\\n' )? int alt11=2; int LA11_0 = input.LA(1); @@ -873,9 +939,9 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } switch (alt11) { case 1 : - // InternalStatemachine.g:1360:41: ( '\\r' )? '\\n' + // InternalStatemachine.g:1445:41: ( '\\r' )? '\\n' { - // InternalStatemachine.g:1360:41: ( '\\r' )? + // InternalStatemachine.g:1445:41: ( '\\r' )? int alt10=2; int LA10_0 = input.LA(1); @@ -884,7 +950,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } switch (alt10) { case 1 : - // InternalStatemachine.g:1360:41: '\\r' + // InternalStatemachine.g:1445:41: '\\r' { match('\r'); @@ -916,10 +982,10 @@ public final void mRULE_WS() throws RecognitionException { try { int _type = RULE_WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:1362:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) - // InternalStatemachine.g:1362:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // InternalStatemachine.g:1447:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // InternalStatemachine.g:1447:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ { - // InternalStatemachine.g:1362:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // InternalStatemachine.g:1447:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ int cnt12=0; loop12: do { @@ -973,8 +1039,8 @@ public final void mRULE_ANY_OTHER() throws RecognitionException { try { int _type = RULE_ANY_OTHER; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:1364:16: ( . ) - // InternalStatemachine.g:1364:18: . + // InternalStatemachine.g:1449:16: ( . ) + // InternalStatemachine.g:1449:18: . { matchAny(); @@ -989,8 +1055,8 @@ public final void mRULE_ANY_OTHER() throws RecognitionException { // $ANTLR end "RULE_ANY_OTHER" public void mTokens() throws RecognitionException { - // InternalStatemachine.g:1:8: ( T__10 | 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 | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) - int alt13=28; + // InternalStatemachine.g:1:8: ( T__10 | 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 | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) + int alt13=31; alt13 = dfa13.predict(input); switch (alt13) { case 1 : @@ -1148,42 +1214,63 @@ public void mTokens() throws RecognitionException { } break; case 23 : - // InternalStatemachine.g:1:142: RULE_ID + // InternalStatemachine.g:1:142: T__32 { - mRULE_ID(); + mT__32(); } break; case 24 : - // InternalStatemachine.g:1:150: RULE_STRING + // InternalStatemachine.g:1:148: T__33 { - mRULE_STRING(); + mT__33(); } break; case 25 : - // InternalStatemachine.g:1:162: RULE_ML_COMMENT + // InternalStatemachine.g:1:154: T__34 { - mRULE_ML_COMMENT(); + mT__34(); } break; case 26 : - // InternalStatemachine.g:1:178: RULE_SL_COMMENT + // InternalStatemachine.g:1:160: RULE_ID { - mRULE_SL_COMMENT(); + mRULE_ID(); } break; case 27 : - // InternalStatemachine.g:1:194: RULE_WS + // InternalStatemachine.g:1:168: RULE_STRING { - mRULE_WS(); + mRULE_STRING(); } break; case 28 : - // InternalStatemachine.g:1:202: RULE_ANY_OTHER + // InternalStatemachine.g:1:180: RULE_ML_COMMENT + { + mRULE_ML_COMMENT(); + + } + break; + case 29 : + // InternalStatemachine.g:1:196: RULE_SL_COMMENT + { + mRULE_SL_COMMENT(); + + } + break; + case 30 : + // InternalStatemachine.g:1:212: RULE_WS + { + mRULE_WS(); + + } + break; + case 31 : + // InternalStatemachine.g:1:220: RULE_ANY_OTHER { mRULE_ANY_OTHER(); @@ -1197,51 +1284,53 @@ public void mTokens() throws RecognitionException { protected DFA13 dfa13 = new DFA13(this); static final String DFA13_eotS = - "\1\uffff\3\34\5\uffff\1\30\6\uffff\1\34\1\uffff\1\30\3\uffff\1\30\2\uffff\3\34\1\uffff\3\34\14\uffff\1\34\5\uffff\1\34\1\72\6\34\1\uffff\7\34\1\112\1\34\1\114\2\34\1\117\2\34\1\uffff\1\122\1\uffff\1\34\1\124\1\uffff\1\125\1\34\1\uffff\1\34\2\uffff\2\34\1\132\1\34\1\uffff\1\134\1\uffff"; + "\1\uffff\4\35\5\uffff\1\31\6\uffff\1\35\1\uffff\1\31\3\uffff\1\31\2\uffff\3\35\1\uffff\5\35\14\uffff\1\35\5\uffff\1\35\1\100\11\35\1\uffff\3\35\1\116\6\35\1\126\1\35\1\130\1\uffff\1\35\1\132\2\35\1\135\2\35\1\uffff\1\140\1\uffff\1\35\1\uffff\1\35\1\143\1\uffff\1\144\1\35\1\uffff\2\35\2\uffff\3\35\1\153\2\35\1\uffff\1\156\1\157\2\uffff"; static final String DFA13_eofS = - "\135\uffff"; + "\160\uffff"; static final String DFA13_minS = - "\1\0\1\156\1\164\1\162\5\uffff\1\76\6\uffff\1\155\1\uffff\1\44\3\uffff\1\52\2\uffff\1\145\1\144\1\164\1\uffff\1\141\1\160\1\141\14\uffff\1\160\5\uffff\1\156\1\44\1\145\1\164\1\145\1\156\1\157\1\164\1\uffff\1\156\1\145\1\162\1\163\1\162\1\163\1\144\1\44\1\143\1\44\1\151\1\164\1\44\1\163\1\151\1\uffff\1\44\1\uffff\1\164\1\44\1\uffff\1\44\1\157\1\uffff\1\151\2\uffff\1\156\1\157\1\44\1\156\1\uffff\1\44\1\uffff"; + "\1\0\1\156\1\164\1\162\1\141\5\uffff\1\76\6\uffff\1\155\1\uffff\1\44\3\uffff\1\52\2\uffff\1\145\1\144\1\164\1\uffff\1\141\1\160\1\141\1\154\1\156\14\uffff\1\160\5\uffff\1\156\1\44\1\145\1\164\2\145\1\156\1\163\1\141\1\157\1\164\1\uffff\1\156\1\145\1\162\1\44\1\163\1\145\1\154\1\162\1\163\1\144\1\44\1\143\1\44\1\uffff\1\151\1\44\1\163\1\164\1\44\1\163\1\151\1\uffff\1\44\1\uffff\1\164\1\uffff\1\164\1\44\1\uffff\1\44\1\157\1\uffff\1\151\1\141\2\uffff\1\156\1\157\1\164\1\44\1\156\1\145\1\uffff\2\44\2\uffff"; static final String DFA13_maxS = - "\1\uffff\1\170\1\165\1\162\5\uffff\1\76\6\uffff\1\155\1\uffff\1\172\3\uffff\1\57\2\uffff\1\145\1\144\1\164\1\uffff\1\141\1\160\1\141\14\uffff\1\160\5\uffff\1\156\1\172\1\145\1\164\1\145\1\156\1\157\1\164\1\uffff\1\156\1\151\1\162\1\163\1\162\2\163\1\172\1\143\1\172\1\151\1\164\1\172\1\163\1\151\1\uffff\1\172\1\uffff\1\164\1\172\1\uffff\1\172\1\157\1\uffff\1\151\2\uffff\1\156\1\157\1\172\1\156\1\uffff\1\172\1\uffff"; + "\1\uffff\1\170\1\165\1\162\1\151\5\uffff\1\76\6\uffff\1\155\1\uffff\1\172\3\uffff\1\57\2\uffff\1\145\1\144\1\164\1\uffff\1\141\1\160\1\165\1\154\1\156\14\uffff\1\160\5\uffff\1\156\1\172\1\145\1\164\2\145\1\156\1\163\1\141\1\157\1\164\1\uffff\1\156\1\151\1\162\1\172\1\163\1\145\1\154\1\162\2\163\1\172\1\143\1\172\1\uffff\1\151\1\172\1\163\1\164\1\172\1\163\1\151\1\uffff\1\172\1\uffff\1\164\1\uffff\1\164\1\172\1\uffff\1\172\1\157\1\uffff\1\151\1\141\2\uffff\1\156\1\157\1\164\1\172\1\156\1\145\1\uffff\2\172\2\uffff"; static final String DFA13_acceptS = - "\4\uffff\1\5\1\6\1\7\1\10\1\11\1\uffff\1\13\1\14\1\15\1\16\1\20\1\22\1\uffff\1\26\1\uffff\1\27\2\30\1\uffff\1\33\1\34\3\uffff\1\27\3\uffff\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\20\1\22\1\uffff\1\26\1\30\1\31\1\32\1\33\10\uffff\1\2\17\uffff\1\3\1\uffff\1\21\2\uffff\1\1\2\uffff\1\24\1\uffff\1\23\1\17\4\uffff\1\25\1\uffff\1\4"; + "\5\uffff\1\10\1\11\1\12\1\13\1\14\1\uffff\1\16\1\17\1\20\1\21\1\23\1\25\1\uffff\1\31\1\uffff\1\32\2\33\1\uffff\1\36\1\37\3\uffff\1\32\5\uffff\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\23\1\25\1\uffff\1\31\1\33\1\34\1\35\1\36\13\uffff\1\2\15\uffff\1\4\7\uffff\1\3\1\uffff\1\24\1\uffff\1\5\2\uffff\1\1\2\uffff\1\27\2\uffff\1\26\1\22\6\uffff\1\30\2\uffff\1\7\1\6"; static final String DFA13_specialS = - "\1\0\134\uffff}>"; + "\1\0\157\uffff}>"; static final String[] DFA13_transitionS = { - "\11\30\2\27\2\30\1\27\22\30\1\27\1\30\1\24\1\30\1\23\1\30\1\16\1\25\1\7\1\10\1\17\1\30\1\4\1\30\1\14\1\26\13\30\1\21\1\12\1\11\1\13\1\15\1\30\32\23\1\5\1\30\1\6\1\22\1\23\1\30\4\23\1\1\3\23\1\20\11\23\1\2\1\3\6\23\uff85\30", - "\1\32\7\uffff\1\31\1\uffff\1\33", - "\1\35\1\36", - "\1\37", - "", + "\11\31\2\30\2\31\1\30\22\31\1\30\1\31\1\25\1\31\1\24\1\31\1\17\1\26\1\10\1\11\1\20\1\31\1\5\1\31\1\15\1\27\13\31\1\22\1\13\1\12\1\14\1\16\1\31\32\24\1\6\1\31\1\7\1\23\1\24\1\31\4\24\1\1\1\4\2\24\1\21\11\24\1\2\1\3\6\24\uff85\31", + "\1\33\7\uffff\1\32\1\uffff\1\34", + "\1\36\1\37", + "\1\40", + "\1\41\7\uffff\1\42", "", "", "", "", - "\1\45", "", + "\1\50", "", "", "", "", "", - "\1\54", "", - "\1\34\34\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\1\57", "", + "\1\35\34\uffff\32\35\4\uffff\1\35\1\uffff\32\35", "", "", - "\1\57\4\uffff\1\60", "", + "\1\62\4\uffff\1\63", "", - "\1\62", - "\1\63", - "\1\64", "", "\1\65", "\1\66", "\1\67", "", + "\1\70", + "\1\71", + "\1\73\23\uffff\1\72", + "\1\74", + "\1\75", "", "", "", @@ -1253,54 +1342,71 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\70", "", + "\1\76", "", "", "", "", - "\1\71", - "\1\34\13\uffff\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", - "\1\73", - "\1\74", - "\1\75", - "\1\76", - "\1\77", - "\1\100", "", + "\1\77", + "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", "\1\101", - "\1\102\3\uffff\1\103", + "\1\102", + "\1\103", "\1\104", "\1\105", "\1\106", "\1\107", - "\1\110\16\uffff\1\111", - "\1\34\13\uffff\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", - "\1\113", - "\1\34\13\uffff\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\1\110", + "\1\111", + "", + "\1\112", + "\1\113\3\uffff\1\114", "\1\115", - "\1\116", - "\1\34\13\uffff\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", + "\1\117", "\1\120", "\1\121", + "\1\122", + "\1\123", + "\1\124\16\uffff\1\125", + "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", + "\1\127", + "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", "", - "\1\34\13\uffff\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\1\131", + "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", + "\1\133", + "\1\134", + "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", + "\1\136", + "\1\137", "", - "\1\123", - "\1\34\13\uffff\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", "", - "\1\34\13\uffff\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", - "\1\126", + "\1\141", "", - "\1\127", + "\1\142", + "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", "", + "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", + "\1\145", "", - "\1\130", - "\1\131", - "\1\34\13\uffff\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", - "\1\133", + "\1\146", + "\1\147", + "", + "", + "\1\150", + "\1\151", + "\1\152", + "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", + "\1\154", + "\1\155", + "", + "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", + "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", "", - "\1\34\13\uffff\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", "" }; @@ -1334,7 +1440,7 @@ public DFA13(BaseRecognizer recognizer) { this.transition = DFA13_transition; } public String getDescription() { - return "1:1: Tokens : ( T__10 | 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 | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; + return "1:1: Tokens : ( T__10 | 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 | RULE_ID | 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; @@ -1350,47 +1456,49 @@ public int specialStateTransition(int s, IntStream _input) throws NoViableAltExc else if ( (LA13_0=='t') ) {s = 3;} - else if ( (LA13_0==',') ) {s = 4;} + else if ( (LA13_0=='f') ) {s = 4;} + + else if ( (LA13_0==',') ) {s = 5;} - else if ( (LA13_0=='[') ) {s = 5;} + else if ( (LA13_0=='[') ) {s = 6;} - else if ( (LA13_0==']') ) {s = 6;} + else if ( (LA13_0==']') ) {s = 7;} - else if ( (LA13_0=='(') ) {s = 7;} + else if ( (LA13_0=='(') ) {s = 8;} - else if ( (LA13_0==')') ) {s = 8;} + else if ( (LA13_0==')') ) {s = 9;} - else if ( (LA13_0=='=') ) {s = 9;} + else if ( (LA13_0=='=') ) {s = 10;} - else if ( (LA13_0=='<') ) {s = 10;} + else if ( (LA13_0=='<') ) {s = 11;} - else if ( (LA13_0=='>') ) {s = 11;} + else if ( (LA13_0=='>') ) {s = 12;} - else if ( (LA13_0=='.') ) {s = 12;} + else if ( (LA13_0=='.') ) {s = 13;} - else if ( (LA13_0=='?') ) {s = 13;} + else if ( (LA13_0=='?') ) {s = 14;} - else if ( (LA13_0=='&') ) {s = 14;} + else if ( (LA13_0=='&') ) {s = 15;} - else if ( (LA13_0=='*') ) {s = 15;} + else if ( (LA13_0=='*') ) {s = 16;} - else if ( (LA13_0=='i') ) {s = 16;} + else if ( (LA13_0=='i') ) {s = 17;} - else if ( (LA13_0==';') ) {s = 17;} + else if ( (LA13_0==';') ) {s = 18;} - else if ( (LA13_0=='^') ) {s = 18;} + else if ( (LA13_0=='^') ) {s = 19;} - else if ( (LA13_0=='$'||(LA13_0>='A' && LA13_0<='Z')||LA13_0=='_'||(LA13_0>='a' && LA13_0<='d')||(LA13_0>='f' && LA13_0<='h')||(LA13_0>='j' && LA13_0<='r')||(LA13_0>='u' && LA13_0<='z')) ) {s = 19;} + else if ( (LA13_0=='$'||(LA13_0>='A' && LA13_0<='Z')||LA13_0=='_'||(LA13_0>='a' && LA13_0<='d')||(LA13_0>='g' && LA13_0<='h')||(LA13_0>='j' && LA13_0<='r')||(LA13_0>='u' && LA13_0<='z')) ) {s = 20;} - else if ( (LA13_0=='\"') ) {s = 20;} + else if ( (LA13_0=='\"') ) {s = 21;} - else if ( (LA13_0=='\'') ) {s = 21;} + else if ( (LA13_0=='\'') ) {s = 22;} - else if ( (LA13_0=='/') ) {s = 22;} + else if ( (LA13_0=='/') ) {s = 23;} - else if ( ((LA13_0>='\t' && LA13_0<='\n')||LA13_0=='\r'||LA13_0==' ') ) {s = 23;} + else if ( ((LA13_0>='\t' && LA13_0<='\n')||LA13_0=='\r'||LA13_0==' ') ) {s = 24;} - else if ( ((LA13_0>='\u0000' && LA13_0<='\b')||(LA13_0>='\u000B' && LA13_0<='\f')||(LA13_0>='\u000E' && LA13_0<='\u001F')||LA13_0=='!'||LA13_0=='#'||LA13_0=='%'||LA13_0=='+'||LA13_0=='-'||(LA13_0>='0' && LA13_0<=':')||LA13_0=='@'||LA13_0=='\\'||LA13_0=='`'||(LA13_0>='{' && LA13_0<='\uFFFF')) ) {s = 24;} + else if ( ((LA13_0>='\u0000' && LA13_0<='\b')||(LA13_0>='\u000B' && LA13_0<='\f')||(LA13_0>='\u000E' && LA13_0<='\u001F')||LA13_0=='!'||LA13_0=='#'||LA13_0=='%'||LA13_0=='+'||LA13_0=='-'||(LA13_0>='0' && LA13_0<=':')||LA13_0=='@'||LA13_0=='\\'||LA13_0=='`'||(LA13_0>='{' && LA13_0<='\uFFFF')) ) {s = 25;} if ( s>=0 ) return s; break; diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineParser.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineParser.java index 21143e945..3a1c21288 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineParser.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineParser.java @@ -22,7 +22,7 @@ @SuppressWarnings("all") public class InternalStatemachineParser extends AbstractInternalAntlrParser { public static final String[] tokenNames = new String[] { - "", "", "", "", "RULE_ID", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'events'", "'end'", "'state'", "'transition'", "','", "'['", "']'", "'('", "')'", "'=>'", "'<'", "'>'", "'.'", "'?'", "'extends'", "'&'", "'super'", "'*'", "'import'", "'static'", "'extension'", "';'" + "", "", "", "", "RULE_ID", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'events'", "'end'", "'state'", "'true'", "'false'", "'finalstate'", "'transition'", "','", "'['", "']'", "'('", "')'", "'=>'", "'<'", "'>'", "'.'", "'?'", "'extends'", "'&'", "'super'", "'*'", "'import'", "'static'", "'extension'", "';'" }; public static final int RULE_STRING=5; public static final int RULE_SL_COMMENT=7; @@ -32,13 +32,16 @@ public class InternalStatemachineParser extends AbstractInternalAntlrParser { public static final int T__17=17; public static final int T__18=18; public static final int T__11=11; + public static final int T__33=33; public static final int T__12=12; + public static final int T__34=34; public static final int T__13=13; public static final int T__14=14; public static final int EOF=-1; public static final int T__30=30; public static final int T__31=31; public static final int T__10=10; + public static final int T__32=32; public static final int RULE_ID=4; public static final int RULE_WS=8; public static final int RULE_ANY_OTHER=9; @@ -134,7 +137,7 @@ public final EObject entryRuleStatemachine() throws RecognitionException { // $ANTLR start "ruleStatemachine" - // InternalStatemachine.g:71:1: ruleStatemachine returns [EObject current=null] : ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_transitions_5_0= ruleTransition ) )* ) ; + // InternalStatemachine.g:71:1: ruleStatemachine returns [EObject current=null] : ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_finalstates_5_0= ruleFinalState ) )* ( (lv_transitions_6_0= ruleTransition ) )* ) ; public final EObject ruleStatemachine() throws RecognitionException { EObject current = null; @@ -144,18 +147,20 @@ public final EObject ruleStatemachine() throws RecognitionException { EObject lv_states_4_0 = null; - EObject lv_transitions_5_0 = null; + EObject lv_finalstates_5_0 = null; + + EObject lv_transitions_6_0 = null; enterRule(); try { - // InternalStatemachine.g:77:2: ( ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_transitions_5_0= ruleTransition ) )* ) ) - // InternalStatemachine.g:78:2: ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_transitions_5_0= ruleTransition ) )* ) + // InternalStatemachine.g:77:2: ( ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_finalstates_5_0= ruleFinalState ) )* ( (lv_transitions_6_0= ruleTransition ) )* ) ) + // InternalStatemachine.g:78:2: ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_finalstates_5_0= ruleFinalState ) )* ( (lv_transitions_6_0= ruleTransition ) )* ) { - // InternalStatemachine.g:78:2: ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_transitions_5_0= ruleTransition ) )* ) - // InternalStatemachine.g:79:3: () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_transitions_5_0= ruleTransition ) )* + // InternalStatemachine.g:78:2: ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_finalstates_5_0= ruleFinalState ) )* ( (lv_transitions_6_0= ruleTransition ) )* ) + // InternalStatemachine.g:79:3: () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_finalstates_5_0= ruleFinalState ) )* ( (lv_transitions_6_0= ruleTransition ) )* { // InternalStatemachine.g:79:3: () // InternalStatemachine.g:80:4: @@ -311,31 +316,84 @@ public final EObject ruleStatemachine() throws RecognitionException { } } while (true); - // InternalStatemachine.g:134:3: ( (lv_transitions_5_0= ruleTransition ) )* + // InternalStatemachine.g:134:3: ( (lv_finalstates_5_0= ruleFinalState ) )* loop4: do { int alt4=2; int LA4_0 = input.LA(1); - if ( (LA4_0==13) ) { + if ( (LA4_0==15) ) { alt4=1; } switch (alt4) { case 1 : - // InternalStatemachine.g:135:4: (lv_transitions_5_0= ruleTransition ) + // InternalStatemachine.g:135:4: (lv_finalstates_5_0= ruleFinalState ) { - // InternalStatemachine.g:135:4: (lv_transitions_5_0= ruleTransition ) - // InternalStatemachine.g:136:5: lv_transitions_5_0= ruleTransition + // InternalStatemachine.g:135:4: (lv_finalstates_5_0= ruleFinalState ) + // InternalStatemachine.g:136:5: lv_finalstates_5_0= ruleFinalState { if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getStatemachineAccess().getTransitionsTransitionParserRuleCall_3_0()); + newCompositeNode(grammarAccess.getStatemachineAccess().getFinalstatesFinalStateParserRuleCall_3_0()); } pushFollow(FOLLOW_6); - lv_transitions_5_0=ruleTransition(); + lv_finalstates_5_0=ruleFinalState(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getStatemachineRule()); + } + add( + current, + "finalstates", + lv_finalstates_5_0, + "de.cognicrypt.order.editor.Statemachine.FinalState"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + break; + + default : + break loop4; + } + } while (true); + + // InternalStatemachine.g:153:3: ( (lv_transitions_6_0= ruleTransition ) )* + loop5: + do { + int alt5=2; + int LA5_0 = input.LA(1); + + if ( (LA5_0==16) ) { + alt5=1; + } + + + switch (alt5) { + case 1 : + // InternalStatemachine.g:154:4: (lv_transitions_6_0= ruleTransition ) + { + // InternalStatemachine.g:154:4: (lv_transitions_6_0= ruleTransition ) + // InternalStatemachine.g:155:5: lv_transitions_6_0= ruleTransition + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getStatemachineAccess().getTransitionsTransitionParserRuleCall_4_0()); + + } + pushFollow(FOLLOW_7); + lv_transitions_6_0=ruleTransition(); state._fsp--; if (state.failed) return current; @@ -347,7 +405,7 @@ public final EObject ruleStatemachine() throws RecognitionException { add( current, "transitions", - lv_transitions_5_0, + lv_transitions_6_0, "de.cognicrypt.order.editor.Statemachine.Transition"); afterParserOrEnumRuleCall(); @@ -360,7 +418,7 @@ public final EObject ruleStatemachine() throws RecognitionException { break; default : - break loop4; + break loop5; } } while (true); @@ -389,7 +447,7 @@ public final EObject ruleStatemachine() throws RecognitionException { // $ANTLR start "entryRuleEvent" - // InternalStatemachine.g:157:1: entryRuleEvent returns [EObject current=null] : iv_ruleEvent= ruleEvent EOF ; + // InternalStatemachine.g:176:1: entryRuleEvent returns [EObject current=null] : iv_ruleEvent= ruleEvent EOF ; public final EObject entryRuleEvent() throws RecognitionException { EObject current = null; @@ -397,8 +455,8 @@ public final EObject entryRuleEvent() throws RecognitionException { try { - // InternalStatemachine.g:157:46: (iv_ruleEvent= ruleEvent EOF ) - // InternalStatemachine.g:158:2: iv_ruleEvent= ruleEvent EOF + // InternalStatemachine.g:176:46: (iv_ruleEvent= ruleEvent EOF ) + // InternalStatemachine.g:177:2: iv_ruleEvent= ruleEvent EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getEventRule()); @@ -429,7 +487,7 @@ public final EObject entryRuleEvent() throws RecognitionException { // $ANTLR start "ruleEvent" - // InternalStatemachine.g:164:1: ruleEvent returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) ; + // InternalStatemachine.g:183:1: ruleEvent returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) ; public final EObject ruleEvent() throws RecognitionException { EObject current = null; @@ -440,17 +498,17 @@ public final EObject ruleEvent() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:170:2: ( ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) ) - // InternalStatemachine.g:171:2: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) + // InternalStatemachine.g:189:2: ( ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) ) + // InternalStatemachine.g:190:2: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) { - // InternalStatemachine.g:171:2: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) - // InternalStatemachine.g:172:3: ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) + // InternalStatemachine.g:190:2: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) + // InternalStatemachine.g:191:3: ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) { - // InternalStatemachine.g:172:3: ( (lv_name_0_0= RULE_ID ) ) - // InternalStatemachine.g:173:4: (lv_name_0_0= RULE_ID ) + // InternalStatemachine.g:191:3: ( (lv_name_0_0= RULE_ID ) ) + // InternalStatemachine.g:192:4: (lv_name_0_0= RULE_ID ) { - // InternalStatemachine.g:173:4: (lv_name_0_0= RULE_ID ) - // InternalStatemachine.g:174:5: lv_name_0_0= RULE_ID + // InternalStatemachine.g:192:4: (lv_name_0_0= RULE_ID ) + // InternalStatemachine.g:193:5: lv_name_0_0= RULE_ID { lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_3); if (state.failed) return current; if ( state.backtracking==0 ) { @@ -476,11 +534,11 @@ public final EObject ruleEvent() throws RecognitionException { } - // InternalStatemachine.g:190:3: ( (lv_code_1_0= RULE_ID ) ) - // InternalStatemachine.g:191:4: (lv_code_1_0= RULE_ID ) + // InternalStatemachine.g:209:3: ( (lv_code_1_0= RULE_ID ) ) + // InternalStatemachine.g:210:4: (lv_code_1_0= RULE_ID ) { - // InternalStatemachine.g:191:4: (lv_code_1_0= RULE_ID ) - // InternalStatemachine.g:192:5: lv_code_1_0= RULE_ID + // InternalStatemachine.g:210:4: (lv_code_1_0= RULE_ID ) + // InternalStatemachine.g:211:5: lv_code_1_0= RULE_ID { lv_code_1_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current; if ( state.backtracking==0 ) { @@ -531,7 +589,7 @@ public final EObject ruleEvent() throws RecognitionException { // $ANTLR start "entryRuleState" - // InternalStatemachine.g:212:1: entryRuleState returns [EObject current=null] : iv_ruleState= ruleState EOF ; + // InternalStatemachine.g:231:1: entryRuleState returns [EObject current=null] : iv_ruleState= ruleState EOF ; public final EObject entryRuleState() throws RecognitionException { EObject current = null; @@ -539,8 +597,8 @@ public final EObject entryRuleState() throws RecognitionException { try { - // InternalStatemachine.g:212:46: (iv_ruleState= ruleState EOF ) - // InternalStatemachine.g:213:2: iv_ruleState= ruleState EOF + // InternalStatemachine.g:231:46: (iv_ruleState= ruleState EOF ) + // InternalStatemachine.g:232:2: iv_ruleState= ruleState EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getStateRule()); @@ -571,25 +629,27 @@ public final EObject entryRuleState() throws RecognitionException { // $ANTLR start "ruleState" - // InternalStatemachine.g:219:1: ruleState returns [EObject current=null] : (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( (lv_transitions_2_0= ruleTransition ) )* otherlv_3= 'end' ) ; + // InternalStatemachine.g:238:1: ruleState returns [EObject current=null] : (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_isFinal_2_0= 'true' ) ) | otherlv_3= 'false' ) ( (lv_transitions_4_0= ruleTransition ) )* otherlv_5= 'end' ) ; public final EObject ruleState() throws RecognitionException { EObject current = null; Token otherlv_0=null; Token lv_name_1_0=null; + Token lv_isFinal_2_0=null; Token otherlv_3=null; - EObject lv_transitions_2_0 = null; + Token otherlv_5=null; + EObject lv_transitions_4_0 = null; enterRule(); try { - // InternalStatemachine.g:225:2: ( (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( (lv_transitions_2_0= ruleTransition ) )* otherlv_3= 'end' ) ) - // InternalStatemachine.g:226:2: (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( (lv_transitions_2_0= ruleTransition ) )* otherlv_3= 'end' ) + // InternalStatemachine.g:244:2: ( (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_isFinal_2_0= 'true' ) ) | otherlv_3= 'false' ) ( (lv_transitions_4_0= ruleTransition ) )* otherlv_5= 'end' ) ) + // InternalStatemachine.g:245:2: (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_isFinal_2_0= 'true' ) ) | otherlv_3= 'false' ) ( (lv_transitions_4_0= ruleTransition ) )* otherlv_5= 'end' ) { - // InternalStatemachine.g:226:2: (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( (lv_transitions_2_0= ruleTransition ) )* otherlv_3= 'end' ) - // InternalStatemachine.g:227:3: otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( (lv_transitions_2_0= ruleTransition ) )* otherlv_3= 'end' + // InternalStatemachine.g:245:2: (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_isFinal_2_0= 'true' ) ) | otherlv_3= 'false' ) ( (lv_transitions_4_0= ruleTransition ) )* otherlv_5= 'end' ) + // InternalStatemachine.g:246:3: otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_isFinal_2_0= 'true' ) ) | otherlv_3= 'false' ) ( (lv_transitions_4_0= ruleTransition ) )* otherlv_5= 'end' { otherlv_0=(Token)match(input,12,FOLLOW_3); if (state.failed) return current; if ( state.backtracking==0 ) { @@ -597,13 +657,13 @@ public final EObject ruleState() throws RecognitionException { newLeafNode(otherlv_0, grammarAccess.getStateAccess().getStateKeyword_0()); } - // InternalStatemachine.g:231:3: ( (lv_name_1_0= RULE_ID ) ) - // InternalStatemachine.g:232:4: (lv_name_1_0= RULE_ID ) + // InternalStatemachine.g:250:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalStatemachine.g:251:4: (lv_name_1_0= RULE_ID ) { - // InternalStatemachine.g:232:4: (lv_name_1_0= RULE_ID ) - // InternalStatemachine.g:233:5: lv_name_1_0= RULE_ID + // InternalStatemachine.g:251:4: (lv_name_1_0= RULE_ID ) + // InternalStatemachine.g:252:5: lv_name_1_0= RULE_ID { - lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_7); if (state.failed) return current; + lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_8); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(lv_name_1_0, grammarAccess.getStateAccess().getNameIDTerminalRuleCall_1_0()); @@ -627,31 +687,96 @@ public final EObject ruleState() throws RecognitionException { } - // InternalStatemachine.g:249:3: ( (lv_transitions_2_0= ruleTransition ) )* - loop5: + // InternalStatemachine.g:268:3: ( ( (lv_isFinal_2_0= 'true' ) ) | otherlv_3= 'false' ) + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0==13) ) { + alt6=1; + } + else if ( (LA6_0==14) ) { + alt6=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 6, 0, input); + + throw nvae; + } + switch (alt6) { + case 1 : + // InternalStatemachine.g:269:4: ( (lv_isFinal_2_0= 'true' ) ) + { + // InternalStatemachine.g:269:4: ( (lv_isFinal_2_0= 'true' ) ) + // InternalStatemachine.g:270:5: (lv_isFinal_2_0= 'true' ) + { + // InternalStatemachine.g:270:5: (lv_isFinal_2_0= 'true' ) + // InternalStatemachine.g:271:6: lv_isFinal_2_0= 'true' + { + lv_isFinal_2_0=(Token)match(input,13,FOLLOW_9); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_isFinal_2_0, grammarAccess.getStateAccess().getIsFinalTrueKeyword_2_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getStateRule()); + } + setWithLastConsumed(current, "isFinal", lv_isFinal_2_0 != null, "true"); + + } + + } + + + } + + + } + break; + case 2 : + // InternalStatemachine.g:284:4: otherlv_3= 'false' + { + otherlv_3=(Token)match(input,14,FOLLOW_9); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getStateAccess().getFalseKeyword_2_1()); + + } + + } + break; + + } + + // InternalStatemachine.g:289:3: ( (lv_transitions_4_0= ruleTransition ) )* + loop7: do { - int alt5=2; - int LA5_0 = input.LA(1); + int alt7=2; + int LA7_0 = input.LA(1); - if ( (LA5_0==13) ) { - alt5=1; + if ( (LA7_0==16) ) { + alt7=1; } - switch (alt5) { + switch (alt7) { case 1 : - // InternalStatemachine.g:250:4: (lv_transitions_2_0= ruleTransition ) + // InternalStatemachine.g:290:4: (lv_transitions_4_0= ruleTransition ) { - // InternalStatemachine.g:250:4: (lv_transitions_2_0= ruleTransition ) - // InternalStatemachine.g:251:5: lv_transitions_2_0= ruleTransition + // InternalStatemachine.g:290:4: (lv_transitions_4_0= ruleTransition ) + // InternalStatemachine.g:291:5: lv_transitions_4_0= ruleTransition { if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getStateAccess().getTransitionsTransitionParserRuleCall_2_0()); + newCompositeNode(grammarAccess.getStateAccess().getTransitionsTransitionParserRuleCall_3_0()); } - pushFollow(FOLLOW_7); - lv_transitions_2_0=ruleTransition(); + pushFollow(FOLLOW_9); + lv_transitions_4_0=ruleTransition(); state._fsp--; if (state.failed) return current; @@ -663,7 +788,7 @@ public final EObject ruleState() throws RecognitionException { add( current, "transitions", - lv_transitions_2_0, + lv_transitions_4_0, "de.cognicrypt.order.editor.Statemachine.Transition"); afterParserOrEnumRuleCall(); @@ -676,14 +801,14 @@ public final EObject ruleState() throws RecognitionException { break; default : - break loop5; + break loop7; } } while (true); - otherlv_3=(Token)match(input,11,FOLLOW_2); if (state.failed) return current; + otherlv_5=(Token)match(input,11,FOLLOW_2); if (state.failed) return current; if ( state.backtracking==0 ) { - newLeafNode(otherlv_3, grammarAccess.getStateAccess().getEndKeyword_3()); + newLeafNode(otherlv_5, grammarAccess.getStateAccess().getEndKeyword_4()); } @@ -710,8 +835,133 @@ public final EObject ruleState() throws RecognitionException { // $ANTLR end "ruleState" + // $ANTLR start "entryRuleFinalState" + // InternalStatemachine.g:316:1: entryRuleFinalState returns [EObject current=null] : iv_ruleFinalState= ruleFinalState EOF ; + public final EObject entryRuleFinalState() throws RecognitionException { + EObject current = null; + + EObject iv_ruleFinalState = null; + + + try { + // InternalStatemachine.g:316:51: (iv_ruleFinalState= ruleFinalState EOF ) + // InternalStatemachine.g:317:2: iv_ruleFinalState= ruleFinalState EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getFinalStateRule()); + } + pushFollow(FOLLOW_1); + iv_ruleFinalState=ruleFinalState(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleFinalState; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleFinalState" + + + // $ANTLR start "ruleFinalState" + // InternalStatemachine.g:323:1: ruleFinalState returns [EObject current=null] : (otherlv_0= 'finalstate' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'end' ) ; + public final EObject ruleFinalState() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_name_1_0=null; + Token otherlv_2=null; + + + enterRule(); + + try { + // InternalStatemachine.g:329:2: ( (otherlv_0= 'finalstate' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'end' ) ) + // InternalStatemachine.g:330:2: (otherlv_0= 'finalstate' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'end' ) + { + // InternalStatemachine.g:330:2: (otherlv_0= 'finalstate' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'end' ) + // InternalStatemachine.g:331:3: otherlv_0= 'finalstate' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'end' + { + otherlv_0=(Token)match(input,15,FOLLOW_3); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getFinalStateAccess().getFinalstateKeyword_0()); + + } + // InternalStatemachine.g:335:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalStatemachine.g:336:4: (lv_name_1_0= RULE_ID ) + { + // InternalStatemachine.g:336:4: (lv_name_1_0= RULE_ID ) + // InternalStatemachine.g:337:5: lv_name_1_0= RULE_ID + { + lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_10); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_1_0, grammarAccess.getFinalStateAccess().getNameIDTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getFinalStateRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_1_0, + "org.eclipse.xtext.xbase.Xtype.ID"); + + } + + } + + + } + + otherlv_2=(Token)match(input,11,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getFinalStateAccess().getEndKeyword_2()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleFinalState" + + // $ANTLR start "entryRuleTransition" - // InternalStatemachine.g:276:1: entryRuleTransition returns [EObject current=null] : iv_ruleTransition= ruleTransition EOF ; + // InternalStatemachine.g:361:1: entryRuleTransition returns [EObject current=null] : iv_ruleTransition= ruleTransition EOF ; public final EObject entryRuleTransition() throws RecognitionException { EObject current = null; @@ -719,8 +969,8 @@ public final EObject entryRuleTransition() throws RecognitionException { try { - // InternalStatemachine.g:276:51: (iv_ruleTransition= ruleTransition EOF ) - // InternalStatemachine.g:277:2: iv_ruleTransition= ruleTransition EOF + // InternalStatemachine.g:361:51: (iv_ruleTransition= ruleTransition EOF ) + // InternalStatemachine.g:362:2: iv_ruleTransition= ruleTransition EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getTransitionRule()); @@ -751,7 +1001,7 @@ public final EObject entryRuleTransition() throws RecognitionException { // $ANTLR start "ruleTransition" - // InternalStatemachine.g:283:1: ruleTransition returns [EObject current=null] : (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) ; + // InternalStatemachine.g:368:1: ruleTransition returns [EObject current=null] : (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) ; public final EObject ruleTransition() throws RecognitionException { EObject current = null; @@ -768,23 +1018,23 @@ public final EObject ruleTransition() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:289:2: ( (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) ) - // InternalStatemachine.g:290:2: (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) + // InternalStatemachine.g:374:2: ( (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) ) + // InternalStatemachine.g:375:2: (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) { - // InternalStatemachine.g:290:2: (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) - // InternalStatemachine.g:291:3: otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' + // InternalStatemachine.g:375:2: (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) + // InternalStatemachine.g:376:3: otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' { - otherlv_0=(Token)match(input,13,FOLLOW_3); if (state.failed) return current; + otherlv_0=(Token)match(input,16,FOLLOW_3); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_0, grammarAccess.getTransitionAccess().getTransitionKeyword_0()); } - // InternalStatemachine.g:295:3: ( (lv_name_1_0= RULE_ID ) ) - // InternalStatemachine.g:296:4: (lv_name_1_0= RULE_ID ) + // InternalStatemachine.g:380:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalStatemachine.g:381:4: (lv_name_1_0= RULE_ID ) { - // InternalStatemachine.g:296:4: (lv_name_1_0= RULE_ID ) - // InternalStatemachine.g:297:5: lv_name_1_0= RULE_ID + // InternalStatemachine.g:381:4: (lv_name_1_0= RULE_ID ) + // InternalStatemachine.g:382:5: lv_name_1_0= RULE_ID { lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_3); if (state.failed) return current; if ( state.backtracking==0 ) { @@ -810,11 +1060,11 @@ public final EObject ruleTransition() throws RecognitionException { } - // InternalStatemachine.g:313:3: ( (otherlv_2= RULE_ID ) ) - // InternalStatemachine.g:314:4: (otherlv_2= RULE_ID ) + // InternalStatemachine.g:398:3: ( (otherlv_2= RULE_ID ) ) + // InternalStatemachine.g:399:4: (otherlv_2= RULE_ID ) { - // InternalStatemachine.g:314:4: (otherlv_2= RULE_ID ) - // InternalStatemachine.g:315:5: otherlv_2= RULE_ID + // InternalStatemachine.g:399:4: (otherlv_2= RULE_ID ) + // InternalStatemachine.g:400:5: otherlv_2= RULE_ID { if ( state.backtracking==0 ) { @@ -823,7 +1073,7 @@ public final EObject ruleTransition() throws RecognitionException { } } - otherlv_2=(Token)match(input,RULE_ID,FOLLOW_8); if (state.failed) return current; + otherlv_2=(Token)match(input,RULE_ID,FOLLOW_11); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_2, grammarAccess.getTransitionAccess().getFromStateStateCrossReference_2_0()); @@ -835,17 +1085,17 @@ public final EObject ruleTransition() throws RecognitionException { } - otherlv_3=(Token)match(input,14,FOLLOW_3); if (state.failed) return current; + otherlv_3=(Token)match(input,17,FOLLOW_3); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_3, grammarAccess.getTransitionAccess().getCommaKeyword_3()); } - // InternalStatemachine.g:330:3: ( (otherlv_4= RULE_ID ) ) - // InternalStatemachine.g:331:4: (otherlv_4= RULE_ID ) + // InternalStatemachine.g:415:3: ( (otherlv_4= RULE_ID ) ) + // InternalStatemachine.g:416:4: (otherlv_4= RULE_ID ) { - // InternalStatemachine.g:331:4: (otherlv_4= RULE_ID ) - // InternalStatemachine.g:332:5: otherlv_4= RULE_ID + // InternalStatemachine.g:416:4: (otherlv_4= RULE_ID ) + // InternalStatemachine.g:417:5: otherlv_4= RULE_ID { if ( state.backtracking==0 ) { @@ -854,7 +1104,7 @@ public final EObject ruleTransition() throws RecognitionException { } } - otherlv_4=(Token)match(input,RULE_ID,FOLLOW_8); if (state.failed) return current; + otherlv_4=(Token)match(input,RULE_ID,FOLLOW_11); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_4, grammarAccess.getTransitionAccess().getEventEventCrossReference_4_0()); @@ -866,17 +1116,17 @@ public final EObject ruleTransition() throws RecognitionException { } - otherlv_5=(Token)match(input,14,FOLLOW_3); if (state.failed) return current; + otherlv_5=(Token)match(input,17,FOLLOW_3); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_5, grammarAccess.getTransitionAccess().getCommaKeyword_5()); } - // InternalStatemachine.g:347:3: ( (otherlv_6= RULE_ID ) ) - // InternalStatemachine.g:348:4: (otherlv_6= RULE_ID ) + // InternalStatemachine.g:432:3: ( (otherlv_6= RULE_ID ) ) + // InternalStatemachine.g:433:4: (otherlv_6= RULE_ID ) { - // InternalStatemachine.g:348:4: (otherlv_6= RULE_ID ) - // InternalStatemachine.g:349:5: otherlv_6= RULE_ID + // InternalStatemachine.g:433:4: (otherlv_6= RULE_ID ) + // InternalStatemachine.g:434:5: otherlv_6= RULE_ID { if ( state.backtracking==0 ) { @@ -885,7 +1135,7 @@ public final EObject ruleTransition() throws RecognitionException { } } - otherlv_6=(Token)match(input,RULE_ID,FOLLOW_9); if (state.failed) return current; + otherlv_6=(Token)match(input,RULE_ID,FOLLOW_10); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_6, grammarAccess.getTransitionAccess().getEndStateStateCrossReference_6_0()); @@ -928,7 +1178,7 @@ public final EObject ruleTransition() throws RecognitionException { // $ANTLR start "entryRuleJvmTypeReference" - // InternalStatemachine.g:368:1: entryRuleJvmTypeReference returns [EObject current=null] : iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ; + // InternalStatemachine.g:453:1: entryRuleJvmTypeReference returns [EObject current=null] : iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ; public final EObject entryRuleJvmTypeReference() throws RecognitionException { EObject current = null; @@ -936,8 +1186,8 @@ public final EObject entryRuleJvmTypeReference() throws RecognitionException { try { - // InternalStatemachine.g:368:57: (iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ) - // InternalStatemachine.g:369:2: iv_ruleJvmTypeReference= ruleJvmTypeReference EOF + // InternalStatemachine.g:453:57: (iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ) + // InternalStatemachine.g:454:2: iv_ruleJvmTypeReference= ruleJvmTypeReference EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmTypeReferenceRule()); @@ -968,7 +1218,7 @@ public final EObject entryRuleJvmTypeReference() throws RecognitionException { // $ANTLR start "ruleJvmTypeReference" - // InternalStatemachine.g:375:1: ruleJvmTypeReference returns [EObject current=null] : ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ; + // InternalStatemachine.g:460:1: ruleJvmTypeReference returns [EObject current=null] : ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ; public final EObject ruleJvmTypeReference() throws RecognitionException { EObject current = null; @@ -981,39 +1231,39 @@ public final EObject ruleJvmTypeReference() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:381:2: ( ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ) - // InternalStatemachine.g:382:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) + // InternalStatemachine.g:466:2: ( ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ) + // InternalStatemachine.g:467:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) { - // InternalStatemachine.g:382:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) - int alt7=2; - int LA7_0 = input.LA(1); + // InternalStatemachine.g:467:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) + int alt9=2; + int LA9_0 = input.LA(1); - if ( (LA7_0==RULE_ID) ) { - alt7=1; + if ( (LA9_0==RULE_ID) ) { + alt9=1; } - else if ( (LA7_0==17||LA7_0==19) ) { - alt7=2; + else if ( (LA9_0==20||LA9_0==22) ) { + alt9=2; } else { if (state.backtracking>0) {state.failed=true; return current;} NoViableAltException nvae = - new NoViableAltException("", 7, 0, input); + new NoViableAltException("", 9, 0, input); throw nvae; } - switch (alt7) { + switch (alt9) { case 1 : - // InternalStatemachine.g:383:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) + // InternalStatemachine.g:468:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) { - // InternalStatemachine.g:383:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) - // InternalStatemachine.g:384:4: this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* + // InternalStatemachine.g:468:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) + // InternalStatemachine.g:469:4: this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); } - pushFollow(FOLLOW_10); + pushFollow(FOLLOW_12); this_JvmParameterizedTypeReference_0=ruleJvmParameterizedTypeReference(); state._fsp--; @@ -1024,26 +1274,26 @@ else if ( (LA7_0==17||LA7_0==19) ) { afterParserOrEnumRuleCall(); } - // InternalStatemachine.g:392:4: ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* - loop6: + // InternalStatemachine.g:477:4: ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* + loop8: do { - int alt6=2; - int LA6_0 = input.LA(1); + int alt8=2; + int LA8_0 = input.LA(1); - if ( (LA6_0==15) && (synpred1_InternalStatemachine())) { - alt6=1; + if ( (LA8_0==18) && (synpred1_InternalStatemachine())) { + alt8=1; } - switch (alt6) { + switch (alt8) { case 1 : - // InternalStatemachine.g:393:5: ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) + // InternalStatemachine.g:478:5: ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) { - // InternalStatemachine.g:399:5: ( () ruleArrayBrackets ) - // InternalStatemachine.g:400:6: () ruleArrayBrackets + // InternalStatemachine.g:484:5: ( () ruleArrayBrackets ) + // InternalStatemachine.g:485:6: () ruleArrayBrackets { - // InternalStatemachine.g:400:6: () - // InternalStatemachine.g:401:7: + // InternalStatemachine.g:485:6: () + // InternalStatemachine.g:486:7: { if ( state.backtracking==0 ) { @@ -1060,7 +1310,7 @@ else if ( (LA7_0==17||LA7_0==19) ) { newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); } - pushFollow(FOLLOW_10); + pushFollow(FOLLOW_12); ruleArrayBrackets(); state._fsp--; @@ -1078,7 +1328,7 @@ else if ( (LA7_0==17||LA7_0==19) ) { break; default : - break loop6; + break loop8; } } while (true); @@ -1089,7 +1339,7 @@ else if ( (LA7_0==17||LA7_0==19) ) { } break; case 2 : - // InternalStatemachine.g:418:3: this_XFunctionTypeRef_3= ruleXFunctionTypeRef + // InternalStatemachine.g:503:3: this_XFunctionTypeRef_3= ruleXFunctionTypeRef { if ( state.backtracking==0 ) { @@ -1135,7 +1385,7 @@ else if ( (LA7_0==17||LA7_0==19) ) { // $ANTLR start "entryRuleArrayBrackets" - // InternalStatemachine.g:430:1: entryRuleArrayBrackets returns [String current=null] : iv_ruleArrayBrackets= ruleArrayBrackets EOF ; + // InternalStatemachine.g:515:1: entryRuleArrayBrackets returns [String current=null] : iv_ruleArrayBrackets= ruleArrayBrackets EOF ; public final String entryRuleArrayBrackets() throws RecognitionException { String current = null; @@ -1143,8 +1393,8 @@ public final String entryRuleArrayBrackets() throws RecognitionException { try { - // InternalStatemachine.g:430:53: (iv_ruleArrayBrackets= ruleArrayBrackets EOF ) - // InternalStatemachine.g:431:2: iv_ruleArrayBrackets= ruleArrayBrackets EOF + // InternalStatemachine.g:515:53: (iv_ruleArrayBrackets= ruleArrayBrackets EOF ) + // InternalStatemachine.g:516:2: iv_ruleArrayBrackets= ruleArrayBrackets EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getArrayBracketsRule()); @@ -1175,7 +1425,7 @@ public final String entryRuleArrayBrackets() throws RecognitionException { // $ANTLR start "ruleArrayBrackets" - // InternalStatemachine.g:437:1: ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '[' kw= ']' ) ; + // InternalStatemachine.g:522:1: ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '[' kw= ']' ) ; public final AntlrDatatypeRuleToken ruleArrayBrackets() throws RecognitionException { AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); @@ -1185,20 +1435,20 @@ public final AntlrDatatypeRuleToken ruleArrayBrackets() throws RecognitionExcept enterRule(); try { - // InternalStatemachine.g:443:2: ( (kw= '[' kw= ']' ) ) - // InternalStatemachine.g:444:2: (kw= '[' kw= ']' ) + // InternalStatemachine.g:528:2: ( (kw= '[' kw= ']' ) ) + // InternalStatemachine.g:529:2: (kw= '[' kw= ']' ) { - // InternalStatemachine.g:444:2: (kw= '[' kw= ']' ) - // InternalStatemachine.g:445:3: kw= '[' kw= ']' + // InternalStatemachine.g:529:2: (kw= '[' kw= ']' ) + // InternalStatemachine.g:530:3: kw= '[' kw= ']' { - kw=(Token)match(input,15,FOLLOW_11); if (state.failed) return current; + kw=(Token)match(input,18,FOLLOW_13); if (state.failed) return current; if ( state.backtracking==0 ) { current.merge(kw); newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); } - kw=(Token)match(input,16,FOLLOW_2); if (state.failed) return current; + kw=(Token)match(input,19,FOLLOW_2); if (state.failed) return current; if ( state.backtracking==0 ) { current.merge(kw); @@ -1230,7 +1480,7 @@ public final AntlrDatatypeRuleToken ruleArrayBrackets() throws RecognitionExcept // $ANTLR start "entryRuleXFunctionTypeRef" - // InternalStatemachine.g:459:1: entryRuleXFunctionTypeRef returns [EObject current=null] : iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ; + // InternalStatemachine.g:544:1: entryRuleXFunctionTypeRef returns [EObject current=null] : iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ; public final EObject entryRuleXFunctionTypeRef() throws RecognitionException { EObject current = null; @@ -1238,8 +1488,8 @@ public final EObject entryRuleXFunctionTypeRef() throws RecognitionException { try { - // InternalStatemachine.g:459:57: (iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ) - // InternalStatemachine.g:460:2: iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF + // InternalStatemachine.g:544:57: (iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ) + // InternalStatemachine.g:545:2: iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getXFunctionTypeRefRule()); @@ -1270,7 +1520,7 @@ public final EObject entryRuleXFunctionTypeRef() throws RecognitionException { // $ANTLR start "ruleXFunctionTypeRef" - // InternalStatemachine.g:466:1: ruleXFunctionTypeRef returns [EObject current=null] : ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ; + // InternalStatemachine.g:551:1: ruleXFunctionTypeRef returns [EObject current=null] : ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ; public final EObject ruleXFunctionTypeRef() throws RecognitionException { EObject current = null; @@ -1289,52 +1539,52 @@ public final EObject ruleXFunctionTypeRef() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:472:2: ( ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ) - // InternalStatemachine.g:473:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:557:2: ( ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ) + // InternalStatemachine.g:558:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) { - // InternalStatemachine.g:473:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) - // InternalStatemachine.g:474:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:558:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:559:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) { - // InternalStatemachine.g:474:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? - int alt10=2; - int LA10_0 = input.LA(1); + // InternalStatemachine.g:559:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? + int alt12=2; + int LA12_0 = input.LA(1); - if ( (LA10_0==17) ) { - alt10=1; + if ( (LA12_0==20) ) { + alt12=1; } - switch (alt10) { + switch (alt12) { case 1 : - // InternalStatemachine.g:475:4: otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' + // InternalStatemachine.g:560:4: otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' { - otherlv_0=(Token)match(input,17,FOLLOW_12); if (state.failed) return current; + otherlv_0=(Token)match(input,20,FOLLOW_14); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_0, grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); } - // InternalStatemachine.g:479:4: ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? - int alt9=2; - int LA9_0 = input.LA(1); + // InternalStatemachine.g:564:4: ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? + int alt11=2; + int LA11_0 = input.LA(1); - if ( (LA9_0==RULE_ID||LA9_0==17||LA9_0==19) ) { - alt9=1; + if ( (LA11_0==RULE_ID||LA11_0==20||LA11_0==22) ) { + alt11=1; } - switch (alt9) { + switch (alt11) { case 1 : - // InternalStatemachine.g:480:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* + // InternalStatemachine.g:565:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* { - // InternalStatemachine.g:480:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) - // InternalStatemachine.g:481:6: (lv_paramTypes_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:565:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:566:6: (lv_paramTypes_1_0= ruleJvmTypeReference ) { - // InternalStatemachine.g:481:6: (lv_paramTypes_1_0= ruleJvmTypeReference ) - // InternalStatemachine.g:482:7: lv_paramTypes_1_0= ruleJvmTypeReference + // InternalStatemachine.g:566:6: (lv_paramTypes_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:567:7: lv_paramTypes_1_0= ruleJvmTypeReference { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); } - pushFollow(FOLLOW_13); + pushFollow(FOLLOW_15); lv_paramTypes_1_0=ruleJvmTypeReference(); state._fsp--; @@ -1358,39 +1608,39 @@ public final EObject ruleXFunctionTypeRef() throws RecognitionException { } - // InternalStatemachine.g:499:5: (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* - loop8: + // InternalStatemachine.g:584:5: (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* + loop10: do { - int alt8=2; - int LA8_0 = input.LA(1); + int alt10=2; + int LA10_0 = input.LA(1); - if ( (LA8_0==14) ) { - alt8=1; + if ( (LA10_0==17) ) { + alt10=1; } - switch (alt8) { + switch (alt10) { case 1 : - // InternalStatemachine.g:500:6: otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:585:6: otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) { - otherlv_2=(Token)match(input,14,FOLLOW_14); if (state.failed) return current; + otherlv_2=(Token)match(input,17,FOLLOW_16); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_2, grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); } - // InternalStatemachine.g:504:6: ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) - // InternalStatemachine.g:505:7: (lv_paramTypes_3_0= ruleJvmTypeReference ) + // InternalStatemachine.g:589:6: ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:590:7: (lv_paramTypes_3_0= ruleJvmTypeReference ) { - // InternalStatemachine.g:505:7: (lv_paramTypes_3_0= ruleJvmTypeReference ) - // InternalStatemachine.g:506:8: lv_paramTypes_3_0= ruleJvmTypeReference + // InternalStatemachine.g:590:7: (lv_paramTypes_3_0= ruleJvmTypeReference ) + // InternalStatemachine.g:591:8: lv_paramTypes_3_0= ruleJvmTypeReference { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); } - pushFollow(FOLLOW_13); + pushFollow(FOLLOW_15); lv_paramTypes_3_0=ruleJvmTypeReference(); state._fsp--; @@ -1419,7 +1669,7 @@ public final EObject ruleXFunctionTypeRef() throws RecognitionException { break; default : - break loop8; + break loop10; } } while (true); @@ -1429,7 +1679,7 @@ public final EObject ruleXFunctionTypeRef() throws RecognitionException { } - otherlv_4=(Token)match(input,18,FOLLOW_15); if (state.failed) return current; + otherlv_4=(Token)match(input,21,FOLLOW_17); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_4, grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); @@ -1441,17 +1691,17 @@ public final EObject ruleXFunctionTypeRef() throws RecognitionException { } - otherlv_5=(Token)match(input,19,FOLLOW_14); if (state.failed) return current; + otherlv_5=(Token)match(input,22,FOLLOW_16); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_5, grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); } - // InternalStatemachine.g:534:3: ( (lv_returnType_6_0= ruleJvmTypeReference ) ) - // InternalStatemachine.g:535:4: (lv_returnType_6_0= ruleJvmTypeReference ) + // InternalStatemachine.g:619:3: ( (lv_returnType_6_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:620:4: (lv_returnType_6_0= ruleJvmTypeReference ) { - // InternalStatemachine.g:535:4: (lv_returnType_6_0= ruleJvmTypeReference ) - // InternalStatemachine.g:536:5: lv_returnType_6_0= ruleJvmTypeReference + // InternalStatemachine.g:620:4: (lv_returnType_6_0= ruleJvmTypeReference ) + // InternalStatemachine.g:621:5: lv_returnType_6_0= ruleJvmTypeReference { if ( state.backtracking==0 ) { @@ -1507,7 +1757,7 @@ public final EObject ruleXFunctionTypeRef() throws RecognitionException { // $ANTLR start "entryRuleJvmParameterizedTypeReference" - // InternalStatemachine.g:557:1: entryRuleJvmParameterizedTypeReference returns [EObject current=null] : iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ; + // InternalStatemachine.g:642:1: entryRuleJvmParameterizedTypeReference returns [EObject current=null] : iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ; public final EObject entryRuleJvmParameterizedTypeReference() throws RecognitionException { EObject current = null; @@ -1515,8 +1765,8 @@ public final EObject entryRuleJvmParameterizedTypeReference() throws Recognition try { - // InternalStatemachine.g:557:70: (iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ) - // InternalStatemachine.g:558:2: iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF + // InternalStatemachine.g:642:70: (iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ) + // InternalStatemachine.g:643:2: iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceRule()); @@ -1547,7 +1797,7 @@ public final EObject entryRuleJvmParameterizedTypeReference() throws Recognition // $ANTLR start "ruleJvmParameterizedTypeReference" - // InternalStatemachine.g:564:1: ruleJvmParameterizedTypeReference returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) ; + // InternalStatemachine.g:649:1: ruleJvmParameterizedTypeReference returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) ; public final EObject ruleJvmParameterizedTypeReference() throws RecognitionException { EObject current = null; @@ -1571,17 +1821,17 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep enterRule(); try { - // InternalStatemachine.g:570:2: ( ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) ) - // InternalStatemachine.g:571:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) + // InternalStatemachine.g:655:2: ( ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) ) + // InternalStatemachine.g:656:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) { - // InternalStatemachine.g:571:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) - // InternalStatemachine.g:572:3: ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? + // InternalStatemachine.g:656:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) + // InternalStatemachine.g:657:3: ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? { - // InternalStatemachine.g:572:3: ( ( ruleQualifiedName ) ) - // InternalStatemachine.g:573:4: ( ruleQualifiedName ) + // InternalStatemachine.g:657:3: ( ( ruleQualifiedName ) ) + // InternalStatemachine.g:658:4: ( ruleQualifiedName ) { - // InternalStatemachine.g:573:4: ( ruleQualifiedName ) - // InternalStatemachine.g:574:5: ruleQualifiedName + // InternalStatemachine.g:658:4: ( ruleQualifiedName ) + // InternalStatemachine.g:659:5: ruleQualifiedName { if ( state.backtracking==0 ) { @@ -1595,7 +1845,7 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); } - pushFollow(FOLLOW_16); + pushFollow(FOLLOW_18); ruleQualifiedName(); state._fsp--; @@ -1611,21 +1861,21 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep } - // InternalStatemachine.g:588:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? - int alt15=2; - int LA15_0 = input.LA(1); + // InternalStatemachine.g:673:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? + int alt17=2; + int LA17_0 = input.LA(1); - if ( (LA15_0==20) && (synpred2_InternalStatemachine())) { - alt15=1; + if ( (LA17_0==23) && (synpred2_InternalStatemachine())) { + alt17=1; } - switch (alt15) { + switch (alt17) { case 1 : - // InternalStatemachine.g:589:4: ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* + // InternalStatemachine.g:674:4: ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* { - // InternalStatemachine.g:589:4: ( ( '<' )=>otherlv_1= '<' ) - // InternalStatemachine.g:590:5: ( '<' )=>otherlv_1= '<' + // InternalStatemachine.g:674:4: ( ( '<' )=>otherlv_1= '<' ) + // InternalStatemachine.g:675:5: ( '<' )=>otherlv_1= '<' { - otherlv_1=(Token)match(input,20,FOLLOW_17); if (state.failed) return current; + otherlv_1=(Token)match(input,23,FOLLOW_19); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_1, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); @@ -1634,18 +1884,18 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep } - // InternalStatemachine.g:596:4: ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) - // InternalStatemachine.g:597:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:681:4: ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) + // InternalStatemachine.g:682:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference ) { - // InternalStatemachine.g:597:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference ) - // InternalStatemachine.g:598:6: lv_arguments_2_0= ruleJvmArgumentTypeReference + // InternalStatemachine.g:682:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:683:6: lv_arguments_2_0= ruleJvmArgumentTypeReference { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); } - pushFollow(FOLLOW_18); + pushFollow(FOLLOW_20); lv_arguments_2_0=ruleJvmArgumentTypeReference(); state._fsp--; @@ -1669,39 +1919,39 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep } - // InternalStatemachine.g:615:4: (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* - loop11: + // InternalStatemachine.g:700:4: (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* + loop13: do { - int alt11=2; - int LA11_0 = input.LA(1); + int alt13=2; + int LA13_0 = input.LA(1); - if ( (LA11_0==14) ) { - alt11=1; + if ( (LA13_0==17) ) { + alt13=1; } - switch (alt11) { + switch (alt13) { case 1 : - // InternalStatemachine.g:616:5: otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) + // InternalStatemachine.g:701:5: otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) { - otherlv_3=(Token)match(input,14,FOLLOW_17); if (state.failed) return current; + otherlv_3=(Token)match(input,17,FOLLOW_19); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_3, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); } - // InternalStatemachine.g:620:5: ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) - // InternalStatemachine.g:621:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:705:5: ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) + // InternalStatemachine.g:706:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference ) { - // InternalStatemachine.g:621:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference ) - // InternalStatemachine.g:622:7: lv_arguments_4_0= ruleJvmArgumentTypeReference + // InternalStatemachine.g:706:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:707:7: lv_arguments_4_0= ruleJvmArgumentTypeReference { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); } - pushFollow(FOLLOW_18); + pushFollow(FOLLOW_20); lv_arguments_4_0=ruleJvmArgumentTypeReference(); state._fsp--; @@ -1730,39 +1980,39 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep break; default : - break loop11; + break loop13; } } while (true); - otherlv_5=(Token)match(input,21,FOLLOW_19); if (state.failed) return current; + otherlv_5=(Token)match(input,24,FOLLOW_21); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_5, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); } - // InternalStatemachine.g:644:4: ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* - loop14: + // InternalStatemachine.g:729:4: ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* + loop16: do { - int alt14=2; - int LA14_0 = input.LA(1); + int alt16=2; + int LA16_0 = input.LA(1); - if ( (LA14_0==22) && (synpred3_InternalStatemachine())) { - alt14=1; + if ( (LA16_0==25) && (synpred3_InternalStatemachine())) { + alt16=1; } - switch (alt14) { + switch (alt16) { case 1 : - // InternalStatemachine.g:645:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? + // InternalStatemachine.g:730:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? { - // InternalStatemachine.g:645:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) - // InternalStatemachine.g:646:6: ( ( () '.' ) )=> ( () otherlv_7= '.' ) + // InternalStatemachine.g:730:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) + // InternalStatemachine.g:731:6: ( ( () '.' ) )=> ( () otherlv_7= '.' ) { - // InternalStatemachine.g:652:6: ( () otherlv_7= '.' ) - // InternalStatemachine.g:653:7: () otherlv_7= '.' + // InternalStatemachine.g:737:6: ( () otherlv_7= '.' ) + // InternalStatemachine.g:738:7: () otherlv_7= '.' { - // InternalStatemachine.g:653:7: () - // InternalStatemachine.g:654:8: + // InternalStatemachine.g:738:7: () + // InternalStatemachine.g:739:8: { if ( state.backtracking==0 ) { @@ -1774,7 +2024,7 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep } - otherlv_7=(Token)match(input,22,FOLLOW_3); if (state.failed) return current; + otherlv_7=(Token)match(input,25,FOLLOW_3); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_7, grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); @@ -1786,11 +2036,11 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep } - // InternalStatemachine.g:666:5: ( ( ruleValidID ) ) - // InternalStatemachine.g:667:6: ( ruleValidID ) + // InternalStatemachine.g:751:5: ( ( ruleValidID ) ) + // InternalStatemachine.g:752:6: ( ruleValidID ) { - // InternalStatemachine.g:667:6: ( ruleValidID ) - // InternalStatemachine.g:668:7: ruleValidID + // InternalStatemachine.g:752:6: ( ruleValidID ) + // InternalStatemachine.g:753:7: ruleValidID { if ( state.backtracking==0 ) { @@ -1804,7 +2054,7 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); } - pushFollow(FOLLOW_20); + pushFollow(FOLLOW_22); ruleValidID(); state._fsp--; @@ -1820,21 +2070,21 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep } - // InternalStatemachine.g:682:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? - int alt13=2; - int LA13_0 = input.LA(1); + // InternalStatemachine.g:767:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? + int alt15=2; + int LA15_0 = input.LA(1); - if ( (LA13_0==20) && (synpred4_InternalStatemachine())) { - alt13=1; + if ( (LA15_0==23) && (synpred4_InternalStatemachine())) { + alt15=1; } - switch (alt13) { + switch (alt15) { case 1 : - // InternalStatemachine.g:683:6: ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' + // InternalStatemachine.g:768:6: ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' { - // InternalStatemachine.g:683:6: ( ( '<' )=>otherlv_9= '<' ) - // InternalStatemachine.g:684:7: ( '<' )=>otherlv_9= '<' + // InternalStatemachine.g:768:6: ( ( '<' )=>otherlv_9= '<' ) + // InternalStatemachine.g:769:7: ( '<' )=>otherlv_9= '<' { - otherlv_9=(Token)match(input,20,FOLLOW_17); if (state.failed) return current; + otherlv_9=(Token)match(input,23,FOLLOW_19); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_9, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0()); @@ -1843,18 +2093,18 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep } - // InternalStatemachine.g:690:6: ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) - // InternalStatemachine.g:691:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:775:6: ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) + // InternalStatemachine.g:776:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference ) { - // InternalStatemachine.g:691:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference ) - // InternalStatemachine.g:692:8: lv_arguments_10_0= ruleJvmArgumentTypeReference + // InternalStatemachine.g:776:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:777:8: lv_arguments_10_0= ruleJvmArgumentTypeReference { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); } - pushFollow(FOLLOW_18); + pushFollow(FOLLOW_20); lv_arguments_10_0=ruleJvmArgumentTypeReference(); state._fsp--; @@ -1878,39 +2128,39 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep } - // InternalStatemachine.g:709:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* - loop12: + // InternalStatemachine.g:794:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* + loop14: do { - int alt12=2; - int LA12_0 = input.LA(1); + int alt14=2; + int LA14_0 = input.LA(1); - if ( (LA12_0==14) ) { - alt12=1; + if ( (LA14_0==17) ) { + alt14=1; } - switch (alt12) { + switch (alt14) { case 1 : - // InternalStatemachine.g:710:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) + // InternalStatemachine.g:795:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) { - otherlv_11=(Token)match(input,14,FOLLOW_17); if (state.failed) return current; + otherlv_11=(Token)match(input,17,FOLLOW_19); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_11, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); } - // InternalStatemachine.g:714:7: ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) - // InternalStatemachine.g:715:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:799:7: ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) + // InternalStatemachine.g:800:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference ) { - // InternalStatemachine.g:715:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference ) - // InternalStatemachine.g:716:9: lv_arguments_12_0= ruleJvmArgumentTypeReference + // InternalStatemachine.g:800:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:801:9: lv_arguments_12_0= ruleJvmArgumentTypeReference { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); } - pushFollow(FOLLOW_18); + pushFollow(FOLLOW_20); lv_arguments_12_0=ruleJvmArgumentTypeReference(); state._fsp--; @@ -1939,11 +2189,11 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep break; default : - break loop12; + break loop14; } } while (true); - otherlv_13=(Token)match(input,21,FOLLOW_19); if (state.failed) return current; + otherlv_13=(Token)match(input,24,FOLLOW_21); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_13, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); @@ -1960,7 +2210,7 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep break; default : - break loop14; + break loop16; } } while (true); @@ -1995,7 +2245,7 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep // $ANTLR start "entryRuleJvmArgumentTypeReference" - // InternalStatemachine.g:745:1: entryRuleJvmArgumentTypeReference returns [EObject current=null] : iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ; + // InternalStatemachine.g:830:1: entryRuleJvmArgumentTypeReference returns [EObject current=null] : iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ; public final EObject entryRuleJvmArgumentTypeReference() throws RecognitionException { EObject current = null; @@ -2003,8 +2253,8 @@ public final EObject entryRuleJvmArgumentTypeReference() throws RecognitionExcep try { - // InternalStatemachine.g:745:65: (iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ) - // InternalStatemachine.g:746:2: iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF + // InternalStatemachine.g:830:65: (iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ) + // InternalStatemachine.g:831:2: iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceRule()); @@ -2035,7 +2285,7 @@ public final EObject entryRuleJvmArgumentTypeReference() throws RecognitionExcep // $ANTLR start "ruleJvmArgumentTypeReference" - // InternalStatemachine.g:752:1: ruleJvmArgumentTypeReference returns [EObject current=null] : (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ; + // InternalStatemachine.g:837:1: ruleJvmArgumentTypeReference returns [EObject current=null] : (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ; public final EObject ruleJvmArgumentTypeReference() throws RecognitionException { EObject current = null; @@ -2048,29 +2298,29 @@ public final EObject ruleJvmArgumentTypeReference() throws RecognitionException enterRule(); try { - // InternalStatemachine.g:758:2: ( (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ) - // InternalStatemachine.g:759:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) + // InternalStatemachine.g:843:2: ( (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ) + // InternalStatemachine.g:844:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) { - // InternalStatemachine.g:759:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) - int alt16=2; - int LA16_0 = input.LA(1); + // InternalStatemachine.g:844:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) + int alt18=2; + int LA18_0 = input.LA(1); - if ( (LA16_0==RULE_ID||LA16_0==17||LA16_0==19) ) { - alt16=1; + if ( (LA18_0==RULE_ID||LA18_0==20||LA18_0==22) ) { + alt18=1; } - else if ( (LA16_0==23) ) { - alt16=2; + else if ( (LA18_0==26) ) { + alt18=2; } else { if (state.backtracking>0) {state.failed=true; return current;} NoViableAltException nvae = - new NoViableAltException("", 16, 0, input); + new NoViableAltException("", 18, 0, input); throw nvae; } - switch (alt16) { + switch (alt18) { case 1 : - // InternalStatemachine.g:760:3: this_JvmTypeReference_0= ruleJvmTypeReference + // InternalStatemachine.g:845:3: this_JvmTypeReference_0= ruleJvmTypeReference { if ( state.backtracking==0 ) { @@ -2092,7 +2342,7 @@ else if ( (LA16_0==23) ) { } break; case 2 : - // InternalStatemachine.g:769:3: this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference + // InternalStatemachine.g:854:3: this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference { if ( state.backtracking==0 ) { @@ -2138,7 +2388,7 @@ else if ( (LA16_0==23) ) { // $ANTLR start "entryRuleJvmWildcardTypeReference" - // InternalStatemachine.g:781:1: entryRuleJvmWildcardTypeReference returns [EObject current=null] : iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ; + // InternalStatemachine.g:866:1: entryRuleJvmWildcardTypeReference returns [EObject current=null] : iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ; public final EObject entryRuleJvmWildcardTypeReference() throws RecognitionException { EObject current = null; @@ -2146,8 +2396,8 @@ public final EObject entryRuleJvmWildcardTypeReference() throws RecognitionExcep try { - // InternalStatemachine.g:781:65: (iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ) - // InternalStatemachine.g:782:2: iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF + // InternalStatemachine.g:866:65: (iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ) + // InternalStatemachine.g:867:2: iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceRule()); @@ -2178,7 +2428,7 @@ public final EObject entryRuleJvmWildcardTypeReference() throws RecognitionExcep // $ANTLR start "ruleJvmWildcardTypeReference" - // InternalStatemachine.g:788:1: ruleJvmWildcardTypeReference returns [EObject current=null] : ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) ; + // InternalStatemachine.g:873:1: ruleJvmWildcardTypeReference returns [EObject current=null] : ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) ; public final EObject ruleJvmWildcardTypeReference() throws RecognitionException { EObject current = null; @@ -2196,14 +2446,14 @@ public final EObject ruleJvmWildcardTypeReference() throws RecognitionException enterRule(); try { - // InternalStatemachine.g:794:2: ( ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) ) - // InternalStatemachine.g:795:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) + // InternalStatemachine.g:879:2: ( ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) ) + // InternalStatemachine.g:880:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) { - // InternalStatemachine.g:795:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) - // InternalStatemachine.g:796:3: () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? + // InternalStatemachine.g:880:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) + // InternalStatemachine.g:881:3: () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? { - // InternalStatemachine.g:796:3: () - // InternalStatemachine.g:797:4: + // InternalStatemachine.g:881:3: () + // InternalStatemachine.g:882:4: { if ( state.backtracking==0 ) { @@ -2215,41 +2465,41 @@ public final EObject ruleJvmWildcardTypeReference() throws RecognitionException } - otherlv_1=(Token)match(input,23,FOLLOW_21); if (state.failed) return current; + otherlv_1=(Token)match(input,26,FOLLOW_23); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_1, grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); } - // InternalStatemachine.g:807:3: ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? - int alt19=3; - int LA19_0 = input.LA(1); + // InternalStatemachine.g:892:3: ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? + int alt21=3; + int LA21_0 = input.LA(1); - if ( (LA19_0==24) ) { - alt19=1; + if ( (LA21_0==27) ) { + alt21=1; } - else if ( (LA19_0==26) ) { - alt19=2; + else if ( (LA21_0==29) ) { + alt21=2; } - switch (alt19) { + switch (alt21) { case 1 : - // InternalStatemachine.g:808:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) + // InternalStatemachine.g:893:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) { - // InternalStatemachine.g:808:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) - // InternalStatemachine.g:809:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* + // InternalStatemachine.g:893:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) + // InternalStatemachine.g:894:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* { - // InternalStatemachine.g:809:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) - // InternalStatemachine.g:810:6: (lv_constraints_2_0= ruleJvmUpperBound ) + // InternalStatemachine.g:894:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) + // InternalStatemachine.g:895:6: (lv_constraints_2_0= ruleJvmUpperBound ) { - // InternalStatemachine.g:810:6: (lv_constraints_2_0= ruleJvmUpperBound ) - // InternalStatemachine.g:811:7: lv_constraints_2_0= ruleJvmUpperBound + // InternalStatemachine.g:895:6: (lv_constraints_2_0= ruleJvmUpperBound ) + // InternalStatemachine.g:896:7: lv_constraints_2_0= ruleJvmUpperBound { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); } - pushFollow(FOLLOW_22); + pushFollow(FOLLOW_24); lv_constraints_2_0=ruleJvmUpperBound(); state._fsp--; @@ -2273,30 +2523,30 @@ else if ( (LA19_0==26) ) { } - // InternalStatemachine.g:828:5: ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* - loop17: + // InternalStatemachine.g:913:5: ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* + loop19: do { - int alt17=2; - int LA17_0 = input.LA(1); + int alt19=2; + int LA19_0 = input.LA(1); - if ( (LA17_0==25) ) { - alt17=1; + if ( (LA19_0==28) ) { + alt19=1; } - switch (alt17) { + switch (alt19) { case 1 : - // InternalStatemachine.g:829:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded ) + // InternalStatemachine.g:914:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded ) { - // InternalStatemachine.g:829:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded ) - // InternalStatemachine.g:830:7: lv_constraints_3_0= ruleJvmUpperBoundAnded + // InternalStatemachine.g:914:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded ) + // InternalStatemachine.g:915:7: lv_constraints_3_0= ruleJvmUpperBoundAnded { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); } - pushFollow(FOLLOW_22); + pushFollow(FOLLOW_24); lv_constraints_3_0=ruleJvmUpperBoundAnded(); state._fsp--; @@ -2322,7 +2572,7 @@ else if ( (LA19_0==26) ) { break; default : - break loop17; + break loop19; } } while (true); @@ -2333,23 +2583,23 @@ else if ( (LA19_0==26) ) { } break; case 2 : - // InternalStatemachine.g:849:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) + // InternalStatemachine.g:934:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) { - // InternalStatemachine.g:849:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) - // InternalStatemachine.g:850:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* + // InternalStatemachine.g:934:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) + // InternalStatemachine.g:935:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* { - // InternalStatemachine.g:850:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) - // InternalStatemachine.g:851:6: (lv_constraints_4_0= ruleJvmLowerBound ) + // InternalStatemachine.g:935:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) + // InternalStatemachine.g:936:6: (lv_constraints_4_0= ruleJvmLowerBound ) { - // InternalStatemachine.g:851:6: (lv_constraints_4_0= ruleJvmLowerBound ) - // InternalStatemachine.g:852:7: lv_constraints_4_0= ruleJvmLowerBound + // InternalStatemachine.g:936:6: (lv_constraints_4_0= ruleJvmLowerBound ) + // InternalStatemachine.g:937:7: lv_constraints_4_0= ruleJvmLowerBound { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); } - pushFollow(FOLLOW_22); + pushFollow(FOLLOW_24); lv_constraints_4_0=ruleJvmLowerBound(); state._fsp--; @@ -2373,30 +2623,30 @@ else if ( (LA19_0==26) ) { } - // InternalStatemachine.g:869:5: ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* - loop18: + // InternalStatemachine.g:954:5: ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* + loop20: do { - int alt18=2; - int LA18_0 = input.LA(1); + int alt20=2; + int LA20_0 = input.LA(1); - if ( (LA18_0==25) ) { - alt18=1; + if ( (LA20_0==28) ) { + alt20=1; } - switch (alt18) { + switch (alt20) { case 1 : - // InternalStatemachine.g:870:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded ) + // InternalStatemachine.g:955:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded ) { - // InternalStatemachine.g:870:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded ) - // InternalStatemachine.g:871:7: lv_constraints_5_0= ruleJvmLowerBoundAnded + // InternalStatemachine.g:955:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded ) + // InternalStatemachine.g:956:7: lv_constraints_5_0= ruleJvmLowerBoundAnded { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); } - pushFollow(FOLLOW_22); + pushFollow(FOLLOW_24); lv_constraints_5_0=ruleJvmLowerBoundAnded(); state._fsp--; @@ -2422,7 +2672,7 @@ else if ( (LA19_0==26) ) { break; default : - break loop18; + break loop20; } } while (true); @@ -2460,7 +2710,7 @@ else if ( (LA19_0==26) ) { // $ANTLR start "entryRuleJvmUpperBound" - // InternalStatemachine.g:894:1: entryRuleJvmUpperBound returns [EObject current=null] : iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ; + // InternalStatemachine.g:979:1: entryRuleJvmUpperBound returns [EObject current=null] : iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ; public final EObject entryRuleJvmUpperBound() throws RecognitionException { EObject current = null; @@ -2468,8 +2718,8 @@ public final EObject entryRuleJvmUpperBound() throws RecognitionException { try { - // InternalStatemachine.g:894:54: (iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ) - // InternalStatemachine.g:895:2: iv_ruleJvmUpperBound= ruleJvmUpperBound EOF + // InternalStatemachine.g:979:54: (iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ) + // InternalStatemachine.g:980:2: iv_ruleJvmUpperBound= ruleJvmUpperBound EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmUpperBoundRule()); @@ -2500,7 +2750,7 @@ public final EObject entryRuleJvmUpperBound() throws RecognitionException { // $ANTLR start "ruleJvmUpperBound" - // InternalStatemachine.g:901:1: ruleJvmUpperBound returns [EObject current=null] : (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; + // InternalStatemachine.g:986:1: ruleJvmUpperBound returns [EObject current=null] : (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; public final EObject ruleJvmUpperBound() throws RecognitionException { EObject current = null; @@ -2512,23 +2762,23 @@ public final EObject ruleJvmUpperBound() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:907:2: ( (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) - // InternalStatemachine.g:908:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:992:2: ( (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) + // InternalStatemachine.g:993:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) { - // InternalStatemachine.g:908:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) - // InternalStatemachine.g:909:3: otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:993:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:994:3: otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) { - otherlv_0=(Token)match(input,24,FOLLOW_14); if (state.failed) return current; + otherlv_0=(Token)match(input,27,FOLLOW_16); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); } - // InternalStatemachine.g:913:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) - // InternalStatemachine.g:914:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:998:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:999:4: (lv_typeReference_1_0= ruleJvmTypeReference ) { - // InternalStatemachine.g:914:4: (lv_typeReference_1_0= ruleJvmTypeReference ) - // InternalStatemachine.g:915:5: lv_typeReference_1_0= ruleJvmTypeReference + // InternalStatemachine.g:999:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:1000:5: lv_typeReference_1_0= ruleJvmTypeReference { if ( state.backtracking==0 ) { @@ -2584,7 +2834,7 @@ public final EObject ruleJvmUpperBound() throws RecognitionException { // $ANTLR start "entryRuleJvmUpperBoundAnded" - // InternalStatemachine.g:936:1: entryRuleJvmUpperBoundAnded returns [EObject current=null] : iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ; + // InternalStatemachine.g:1021:1: entryRuleJvmUpperBoundAnded returns [EObject current=null] : iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ; public final EObject entryRuleJvmUpperBoundAnded() throws RecognitionException { EObject current = null; @@ -2592,8 +2842,8 @@ public final EObject entryRuleJvmUpperBoundAnded() throws RecognitionException { try { - // InternalStatemachine.g:936:59: (iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ) - // InternalStatemachine.g:937:2: iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF + // InternalStatemachine.g:1021:59: (iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ) + // InternalStatemachine.g:1022:2: iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmUpperBoundAndedRule()); @@ -2624,7 +2874,7 @@ public final EObject entryRuleJvmUpperBoundAnded() throws RecognitionException { // $ANTLR start "ruleJvmUpperBoundAnded" - // InternalStatemachine.g:943:1: ruleJvmUpperBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; + // InternalStatemachine.g:1028:1: ruleJvmUpperBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; public final EObject ruleJvmUpperBoundAnded() throws RecognitionException { EObject current = null; @@ -2636,23 +2886,23 @@ public final EObject ruleJvmUpperBoundAnded() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:949:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) - // InternalStatemachine.g:950:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:1034:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) + // InternalStatemachine.g:1035:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) { - // InternalStatemachine.g:950:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) - // InternalStatemachine.g:951:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:1035:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:1036:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) { - otherlv_0=(Token)match(input,25,FOLLOW_14); if (state.failed) return current; + otherlv_0=(Token)match(input,28,FOLLOW_16); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); } - // InternalStatemachine.g:955:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) - // InternalStatemachine.g:956:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:1040:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:1041:4: (lv_typeReference_1_0= ruleJvmTypeReference ) { - // InternalStatemachine.g:956:4: (lv_typeReference_1_0= ruleJvmTypeReference ) - // InternalStatemachine.g:957:5: lv_typeReference_1_0= ruleJvmTypeReference + // InternalStatemachine.g:1041:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:1042:5: lv_typeReference_1_0= ruleJvmTypeReference { if ( state.backtracking==0 ) { @@ -2708,7 +2958,7 @@ public final EObject ruleJvmUpperBoundAnded() throws RecognitionException { // $ANTLR start "entryRuleJvmLowerBound" - // InternalStatemachine.g:978:1: entryRuleJvmLowerBound returns [EObject current=null] : iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ; + // InternalStatemachine.g:1063:1: entryRuleJvmLowerBound returns [EObject current=null] : iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ; public final EObject entryRuleJvmLowerBound() throws RecognitionException { EObject current = null; @@ -2716,8 +2966,8 @@ public final EObject entryRuleJvmLowerBound() throws RecognitionException { try { - // InternalStatemachine.g:978:54: (iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ) - // InternalStatemachine.g:979:2: iv_ruleJvmLowerBound= ruleJvmLowerBound EOF + // InternalStatemachine.g:1063:54: (iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ) + // InternalStatemachine.g:1064:2: iv_ruleJvmLowerBound= ruleJvmLowerBound EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmLowerBoundRule()); @@ -2748,7 +2998,7 @@ public final EObject entryRuleJvmLowerBound() throws RecognitionException { // $ANTLR start "ruleJvmLowerBound" - // InternalStatemachine.g:985:1: ruleJvmLowerBound returns [EObject current=null] : (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; + // InternalStatemachine.g:1070:1: ruleJvmLowerBound returns [EObject current=null] : (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; public final EObject ruleJvmLowerBound() throws RecognitionException { EObject current = null; @@ -2760,23 +3010,23 @@ public final EObject ruleJvmLowerBound() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:991:2: ( (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) - // InternalStatemachine.g:992:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:1076:2: ( (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) + // InternalStatemachine.g:1077:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) { - // InternalStatemachine.g:992:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) - // InternalStatemachine.g:993:3: otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:1077:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:1078:3: otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) { - otherlv_0=(Token)match(input,26,FOLLOW_14); if (state.failed) return current; + otherlv_0=(Token)match(input,29,FOLLOW_16); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); } - // InternalStatemachine.g:997:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) - // InternalStatemachine.g:998:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:1082:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:1083:4: (lv_typeReference_1_0= ruleJvmTypeReference ) { - // InternalStatemachine.g:998:4: (lv_typeReference_1_0= ruleJvmTypeReference ) - // InternalStatemachine.g:999:5: lv_typeReference_1_0= ruleJvmTypeReference + // InternalStatemachine.g:1083:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:1084:5: lv_typeReference_1_0= ruleJvmTypeReference { if ( state.backtracking==0 ) { @@ -2832,7 +3082,7 @@ public final EObject ruleJvmLowerBound() throws RecognitionException { // $ANTLR start "entryRuleJvmLowerBoundAnded" - // InternalStatemachine.g:1020:1: entryRuleJvmLowerBoundAnded returns [EObject current=null] : iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ; + // InternalStatemachine.g:1105:1: entryRuleJvmLowerBoundAnded returns [EObject current=null] : iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ; public final EObject entryRuleJvmLowerBoundAnded() throws RecognitionException { EObject current = null; @@ -2840,8 +3090,8 @@ public final EObject entryRuleJvmLowerBoundAnded() throws RecognitionException { try { - // InternalStatemachine.g:1020:59: (iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ) - // InternalStatemachine.g:1021:2: iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF + // InternalStatemachine.g:1105:59: (iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ) + // InternalStatemachine.g:1106:2: iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmLowerBoundAndedRule()); @@ -2872,7 +3122,7 @@ public final EObject entryRuleJvmLowerBoundAnded() throws RecognitionException { // $ANTLR start "ruleJvmLowerBoundAnded" - // InternalStatemachine.g:1027:1: ruleJvmLowerBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; + // InternalStatemachine.g:1112:1: ruleJvmLowerBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; public final EObject ruleJvmLowerBoundAnded() throws RecognitionException { EObject current = null; @@ -2884,23 +3134,23 @@ public final EObject ruleJvmLowerBoundAnded() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:1033:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) - // InternalStatemachine.g:1034:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:1118:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) + // InternalStatemachine.g:1119:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) { - // InternalStatemachine.g:1034:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) - // InternalStatemachine.g:1035:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:1119:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:1120:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) { - otherlv_0=(Token)match(input,25,FOLLOW_14); if (state.failed) return current; + otherlv_0=(Token)match(input,28,FOLLOW_16); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); } - // InternalStatemachine.g:1039:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) - // InternalStatemachine.g:1040:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:1124:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:1125:4: (lv_typeReference_1_0= ruleJvmTypeReference ) { - // InternalStatemachine.g:1040:4: (lv_typeReference_1_0= ruleJvmTypeReference ) - // InternalStatemachine.g:1041:5: lv_typeReference_1_0= ruleJvmTypeReference + // InternalStatemachine.g:1125:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:1126:5: lv_typeReference_1_0= ruleJvmTypeReference { if ( state.backtracking==0 ) { @@ -2956,7 +3206,7 @@ public final EObject ruleJvmLowerBoundAnded() throws RecognitionException { // $ANTLR start "entryRuleQualifiedName" - // InternalStatemachine.g:1062:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ; + // InternalStatemachine.g:1147:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ; public final String entryRuleQualifiedName() throws RecognitionException { String current = null; @@ -2964,8 +3214,8 @@ public final String entryRuleQualifiedName() throws RecognitionException { try { - // InternalStatemachine.g:1062:53: (iv_ruleQualifiedName= ruleQualifiedName EOF ) - // InternalStatemachine.g:1063:2: iv_ruleQualifiedName= ruleQualifiedName EOF + // InternalStatemachine.g:1147:53: (iv_ruleQualifiedName= ruleQualifiedName EOF ) + // InternalStatemachine.g:1148:2: iv_ruleQualifiedName= ruleQualifiedName EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getQualifiedNameRule()); @@ -2996,7 +3246,7 @@ public final String entryRuleQualifiedName() throws RecognitionException { // $ANTLR start "ruleQualifiedName" - // InternalStatemachine.g:1069:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) ; + // InternalStatemachine.g:1154:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) ; public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException { AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); @@ -3010,18 +3260,18 @@ public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionExcept enterRule(); try { - // InternalStatemachine.g:1075:2: ( (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) ) - // InternalStatemachine.g:1076:2: (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) + // InternalStatemachine.g:1160:2: ( (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) ) + // InternalStatemachine.g:1161:2: (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) { - // InternalStatemachine.g:1076:2: (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) - // InternalStatemachine.g:1077:3: this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* + // InternalStatemachine.g:1161:2: (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) + // InternalStatemachine.g:1162:3: this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); } - pushFollow(FOLLOW_19); + pushFollow(FOLLOW_21); this_ValidID_0=ruleValidID(); state._fsp--; @@ -3036,28 +3286,28 @@ public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionExcept afterParserOrEnumRuleCall(); } - // InternalStatemachine.g:1087:3: (kw= '.' this_ValidID_2= ruleValidID )* - loop20: + // InternalStatemachine.g:1172:3: (kw= '.' this_ValidID_2= ruleValidID )* + loop22: do { - int alt20=2; - int LA20_0 = input.LA(1); + int alt22=2; + int LA22_0 = input.LA(1); - if ( (LA20_0==22) ) { - int LA20_2 = input.LA(2); + if ( (LA22_0==25) ) { + int LA22_2 = input.LA(2); - if ( (LA20_2==RULE_ID) ) { - alt20=1; + if ( (LA22_2==RULE_ID) ) { + alt22=1; } } - switch (alt20) { + switch (alt22) { case 1 : - // InternalStatemachine.g:1088:4: kw= '.' this_ValidID_2= ruleValidID + // InternalStatemachine.g:1173:4: kw= '.' this_ValidID_2= ruleValidID { - kw=(Token)match(input,22,FOLLOW_3); if (state.failed) return current; + kw=(Token)match(input,25,FOLLOW_3); if (state.failed) return current; if ( state.backtracking==0 ) { current.merge(kw); @@ -3069,7 +3319,7 @@ public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionExcept newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); } - pushFollow(FOLLOW_19); + pushFollow(FOLLOW_21); this_ValidID_2=ruleValidID(); state._fsp--; @@ -3089,7 +3339,7 @@ public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionExcept break; default : - break loop20; + break loop22; } } while (true); @@ -3118,7 +3368,7 @@ public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionExcept // $ANTLR start "entryRuleQualifiedNameWithWildcard" - // InternalStatemachine.g:1108:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ; + // InternalStatemachine.g:1193:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ; public final String entryRuleQualifiedNameWithWildcard() throws RecognitionException { String current = null; @@ -3126,8 +3376,8 @@ public final String entryRuleQualifiedNameWithWildcard() throws RecognitionExcep try { - // InternalStatemachine.g:1108:65: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ) - // InternalStatemachine.g:1109:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF + // InternalStatemachine.g:1193:65: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ) + // InternalStatemachine.g:1194:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getQualifiedNameWithWildcardRule()); @@ -3158,7 +3408,7 @@ public final String entryRuleQualifiedNameWithWildcard() throws RecognitionExcep // $ANTLR start "ruleQualifiedNameWithWildcard" - // InternalStatemachine.g:1115:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ; + // InternalStatemachine.g:1200:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ; public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildcard() throws RecognitionException { AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); @@ -3170,18 +3420,18 @@ public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildcard() throws Recog enterRule(); try { - // InternalStatemachine.g:1121:2: ( (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ) - // InternalStatemachine.g:1122:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) + // InternalStatemachine.g:1206:2: ( (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ) + // InternalStatemachine.g:1207:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) { - // InternalStatemachine.g:1122:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) - // InternalStatemachine.g:1123:3: this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' + // InternalStatemachine.g:1207:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) + // InternalStatemachine.g:1208:3: this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); } - pushFollow(FOLLOW_23); + pushFollow(FOLLOW_25); this_QualifiedName_0=ruleQualifiedName(); state._fsp--; @@ -3196,14 +3446,14 @@ public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildcard() throws Recog afterParserOrEnumRuleCall(); } - kw=(Token)match(input,22,FOLLOW_24); if (state.failed) return current; + kw=(Token)match(input,25,FOLLOW_26); if (state.failed) return current; if ( state.backtracking==0 ) { current.merge(kw); newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); } - kw=(Token)match(input,27,FOLLOW_2); if (state.failed) return current; + kw=(Token)match(input,30,FOLLOW_2); if (state.failed) return current; if ( state.backtracking==0 ) { current.merge(kw); @@ -3235,7 +3485,7 @@ public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildcard() throws Recog // $ANTLR start "entryRuleValidID" - // InternalStatemachine.g:1147:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ; + // InternalStatemachine.g:1232:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ; public final String entryRuleValidID() throws RecognitionException { String current = null; @@ -3243,8 +3493,8 @@ public final String entryRuleValidID() throws RecognitionException { try { - // InternalStatemachine.g:1147:47: (iv_ruleValidID= ruleValidID EOF ) - // InternalStatemachine.g:1148:2: iv_ruleValidID= ruleValidID EOF + // InternalStatemachine.g:1232:47: (iv_ruleValidID= ruleValidID EOF ) + // InternalStatemachine.g:1233:2: iv_ruleValidID= ruleValidID EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getValidIDRule()); @@ -3275,7 +3525,7 @@ public final String entryRuleValidID() throws RecognitionException { // $ANTLR start "ruleValidID" - // InternalStatemachine.g:1154:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ; + // InternalStatemachine.g:1239:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ; public final AntlrDatatypeRuleToken ruleValidID() throws RecognitionException { AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); @@ -3285,8 +3535,8 @@ public final AntlrDatatypeRuleToken ruleValidID() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:1160:2: (this_ID_0= RULE_ID ) - // InternalStatemachine.g:1161:2: this_ID_0= RULE_ID + // InternalStatemachine.g:1245:2: (this_ID_0= RULE_ID ) + // InternalStatemachine.g:1246:2: this_ID_0= RULE_ID { this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current; if ( state.backtracking==0 ) { @@ -3321,7 +3571,7 @@ public final AntlrDatatypeRuleToken ruleValidID() throws RecognitionException { // $ANTLR start "entryRuleXImportDeclaration" - // InternalStatemachine.g:1171:1: entryRuleXImportDeclaration returns [EObject current=null] : iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ; + // InternalStatemachine.g:1256:1: entryRuleXImportDeclaration returns [EObject current=null] : iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ; public final EObject entryRuleXImportDeclaration() throws RecognitionException { EObject current = null; @@ -3329,8 +3579,8 @@ public final EObject entryRuleXImportDeclaration() throws RecognitionException { try { - // InternalStatemachine.g:1171:59: (iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ) - // InternalStatemachine.g:1172:2: iv_ruleXImportDeclaration= ruleXImportDeclaration EOF + // InternalStatemachine.g:1256:59: (iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ) + // InternalStatemachine.g:1257:2: iv_ruleXImportDeclaration= ruleXImportDeclaration EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getXImportDeclarationRule()); @@ -3361,7 +3611,7 @@ public final EObject entryRuleXImportDeclaration() throws RecognitionException { // $ANTLR start "ruleXImportDeclaration" - // InternalStatemachine.g:1178:1: ruleXImportDeclaration returns [EObject current=null] : (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) ; + // InternalStatemachine.g:1263:1: ruleXImportDeclaration returns [EObject current=null] : (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) ; public final EObject ruleXImportDeclaration() throws RecognitionException { EObject current = null; @@ -3379,35 +3629,35 @@ public final EObject ruleXImportDeclaration() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:1184:2: ( (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) ) - // InternalStatemachine.g:1185:2: (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) + // InternalStatemachine.g:1269:2: ( (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) ) + // InternalStatemachine.g:1270:2: (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) { - // InternalStatemachine.g:1185:2: (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) - // InternalStatemachine.g:1186:3: otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? + // InternalStatemachine.g:1270:2: (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) + // InternalStatemachine.g:1271:3: otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? { - otherlv_0=(Token)match(input,28,FOLLOW_25); if (state.failed) return current; + otherlv_0=(Token)match(input,31,FOLLOW_27); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_0, grammarAccess.getXImportDeclarationAccess().getImportKeyword_0()); } - // InternalStatemachine.g:1190:3: ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) - int alt23=3; - alt23 = dfa23.predict(input); - switch (alt23) { + // InternalStatemachine.g:1275:3: ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) + int alt25=3; + alt25 = dfa25.predict(input); + switch (alt25) { case 1 : - // InternalStatemachine.g:1191:4: ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) + // InternalStatemachine.g:1276:4: ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) { - // InternalStatemachine.g:1191:4: ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) - // InternalStatemachine.g:1192:5: ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) + // InternalStatemachine.g:1276:4: ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) + // InternalStatemachine.g:1277:5: ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) { - // InternalStatemachine.g:1192:5: ( (lv_static_1_0= 'static' ) ) - // InternalStatemachine.g:1193:6: (lv_static_1_0= 'static' ) + // InternalStatemachine.g:1277:5: ( (lv_static_1_0= 'static' ) ) + // InternalStatemachine.g:1278:6: (lv_static_1_0= 'static' ) { - // InternalStatemachine.g:1193:6: (lv_static_1_0= 'static' ) - // InternalStatemachine.g:1194:7: lv_static_1_0= 'static' + // InternalStatemachine.g:1278:6: (lv_static_1_0= 'static' ) + // InternalStatemachine.g:1279:7: lv_static_1_0= 'static' { - lv_static_1_0=(Token)match(input,29,FOLLOW_26); if (state.failed) return current; + lv_static_1_0=(Token)match(input,32,FOLLOW_28); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(lv_static_1_0, grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0()); @@ -3427,21 +3677,21 @@ public final EObject ruleXImportDeclaration() throws RecognitionException { } - // InternalStatemachine.g:1206:5: ( (lv_extension_2_0= 'extension' ) )? - int alt21=2; - int LA21_0 = input.LA(1); + // InternalStatemachine.g:1291:5: ( (lv_extension_2_0= 'extension' ) )? + int alt23=2; + int LA23_0 = input.LA(1); - if ( (LA21_0==30) ) { - alt21=1; + if ( (LA23_0==33) ) { + alt23=1; } - switch (alt21) { + switch (alt23) { case 1 : - // InternalStatemachine.g:1207:6: (lv_extension_2_0= 'extension' ) + // InternalStatemachine.g:1292:6: (lv_extension_2_0= 'extension' ) { - // InternalStatemachine.g:1207:6: (lv_extension_2_0= 'extension' ) - // InternalStatemachine.g:1208:7: lv_extension_2_0= 'extension' + // InternalStatemachine.g:1292:6: (lv_extension_2_0= 'extension' ) + // InternalStatemachine.g:1293:7: lv_extension_2_0= 'extension' { - lv_extension_2_0=(Token)match(input,30,FOLLOW_26); if (state.failed) return current; + lv_extension_2_0=(Token)match(input,33,FOLLOW_28); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(lv_extension_2_0, grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0()); @@ -3464,11 +3714,11 @@ public final EObject ruleXImportDeclaration() throws RecognitionException { } - // InternalStatemachine.g:1220:5: ( ( ruleQualifiedNameInStaticImport ) ) - // InternalStatemachine.g:1221:6: ( ruleQualifiedNameInStaticImport ) + // InternalStatemachine.g:1305:5: ( ( ruleQualifiedNameInStaticImport ) ) + // InternalStatemachine.g:1306:6: ( ruleQualifiedNameInStaticImport ) { - // InternalStatemachine.g:1221:6: ( ruleQualifiedNameInStaticImport ) - // InternalStatemachine.g:1222:7: ruleQualifiedNameInStaticImport + // InternalStatemachine.g:1306:6: ( ruleQualifiedNameInStaticImport ) + // InternalStatemachine.g:1307:7: ruleQualifiedNameInStaticImport { if ( state.backtracking==0 ) { @@ -3482,7 +3732,7 @@ public final EObject ruleXImportDeclaration() throws RecognitionException { newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_0_2_0()); } - pushFollow(FOLLOW_27); + pushFollow(FOLLOW_29); ruleQualifiedNameInStaticImport(); state._fsp--; @@ -3498,34 +3748,34 @@ public final EObject ruleXImportDeclaration() throws RecognitionException { } - // InternalStatemachine.g:1236:5: ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) - int alt22=2; - int LA22_0 = input.LA(1); + // InternalStatemachine.g:1321:5: ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) + int alt24=2; + int LA24_0 = input.LA(1); - if ( (LA22_0==27) ) { - alt22=1; + if ( (LA24_0==30) ) { + alt24=1; } - else if ( (LA22_0==RULE_ID) ) { - alt22=2; + else if ( (LA24_0==RULE_ID) ) { + alt24=2; } else { if (state.backtracking>0) {state.failed=true; return current;} NoViableAltException nvae = - new NoViableAltException("", 22, 0, input); + new NoViableAltException("", 24, 0, input); throw nvae; } - switch (alt22) { + switch (alt24) { case 1 : - // InternalStatemachine.g:1237:6: ( (lv_wildcard_4_0= '*' ) ) + // InternalStatemachine.g:1322:6: ( (lv_wildcard_4_0= '*' ) ) { - // InternalStatemachine.g:1237:6: ( (lv_wildcard_4_0= '*' ) ) - // InternalStatemachine.g:1238:7: (lv_wildcard_4_0= '*' ) + // InternalStatemachine.g:1322:6: ( (lv_wildcard_4_0= '*' ) ) + // InternalStatemachine.g:1323:7: (lv_wildcard_4_0= '*' ) { - // InternalStatemachine.g:1238:7: (lv_wildcard_4_0= '*' ) - // InternalStatemachine.g:1239:8: lv_wildcard_4_0= '*' + // InternalStatemachine.g:1323:7: (lv_wildcard_4_0= '*' ) + // InternalStatemachine.g:1324:8: lv_wildcard_4_0= '*' { - lv_wildcard_4_0=(Token)match(input,27,FOLLOW_28); if (state.failed) return current; + lv_wildcard_4_0=(Token)match(input,30,FOLLOW_30); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(lv_wildcard_4_0, grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_1_0_3_0_0()); @@ -3549,20 +3799,20 @@ else if ( (LA22_0==RULE_ID) ) { } break; case 2 : - // InternalStatemachine.g:1252:6: ( (lv_memberName_5_0= ruleValidID ) ) + // InternalStatemachine.g:1337:6: ( (lv_memberName_5_0= ruleValidID ) ) { - // InternalStatemachine.g:1252:6: ( (lv_memberName_5_0= ruleValidID ) ) - // InternalStatemachine.g:1253:7: (lv_memberName_5_0= ruleValidID ) + // InternalStatemachine.g:1337:6: ( (lv_memberName_5_0= ruleValidID ) ) + // InternalStatemachine.g:1338:7: (lv_memberName_5_0= ruleValidID ) { - // InternalStatemachine.g:1253:7: (lv_memberName_5_0= ruleValidID ) - // InternalStatemachine.g:1254:8: lv_memberName_5_0= ruleValidID + // InternalStatemachine.g:1338:7: (lv_memberName_5_0= ruleValidID ) + // InternalStatemachine.g:1339:8: lv_memberName_5_0= ruleValidID { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_1_0_3_1_0()); } - pushFollow(FOLLOW_28); + pushFollow(FOLLOW_30); lv_memberName_5_0=ruleValidID(); state._fsp--; @@ -3599,13 +3849,13 @@ else if ( (LA22_0==RULE_ID) ) { } break; case 2 : - // InternalStatemachine.g:1274:4: ( ( ruleQualifiedName ) ) + // InternalStatemachine.g:1359:4: ( ( ruleQualifiedName ) ) { - // InternalStatemachine.g:1274:4: ( ( ruleQualifiedName ) ) - // InternalStatemachine.g:1275:5: ( ruleQualifiedName ) + // InternalStatemachine.g:1359:4: ( ( ruleQualifiedName ) ) + // InternalStatemachine.g:1360:5: ( ruleQualifiedName ) { - // InternalStatemachine.g:1275:5: ( ruleQualifiedName ) - // InternalStatemachine.g:1276:6: ruleQualifiedName + // InternalStatemachine.g:1360:5: ( ruleQualifiedName ) + // InternalStatemachine.g:1361:6: ruleQualifiedName { if ( state.backtracking==0 ) { @@ -3619,7 +3869,7 @@ else if ( (LA22_0==RULE_ID) ) { newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_1_0()); } - pushFollow(FOLLOW_28); + pushFollow(FOLLOW_30); ruleQualifiedName(); state._fsp--; @@ -3639,20 +3889,20 @@ else if ( (LA22_0==RULE_ID) ) { } break; case 3 : - // InternalStatemachine.g:1291:4: ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) + // InternalStatemachine.g:1376:4: ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) { - // InternalStatemachine.g:1291:4: ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) - // InternalStatemachine.g:1292:5: (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) + // InternalStatemachine.g:1376:4: ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) + // InternalStatemachine.g:1377:5: (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) { - // InternalStatemachine.g:1292:5: (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) - // InternalStatemachine.g:1293:6: lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard + // InternalStatemachine.g:1377:5: (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) + // InternalStatemachine.g:1378:6: lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_2_0()); } - pushFollow(FOLLOW_28); + pushFollow(FOLLOW_30); lv_importedNamespace_7_0=ruleQualifiedNameWithWildcard(); state._fsp--; @@ -3682,18 +3932,18 @@ else if ( (LA22_0==RULE_ID) ) { } - // InternalStatemachine.g:1311:3: (otherlv_8= ';' )? - int alt24=2; - int LA24_0 = input.LA(1); + // InternalStatemachine.g:1396:3: (otherlv_8= ';' )? + int alt26=2; + int LA26_0 = input.LA(1); - if ( (LA24_0==31) ) { - alt24=1; + if ( (LA26_0==34) ) { + alt26=1; } - switch (alt24) { + switch (alt26) { case 1 : - // InternalStatemachine.g:1312:4: otherlv_8= ';' + // InternalStatemachine.g:1397:4: otherlv_8= ';' { - otherlv_8=(Token)match(input,31,FOLLOW_2); if (state.failed) return current; + otherlv_8=(Token)match(input,34,FOLLOW_2); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_8, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2()); @@ -3730,7 +3980,7 @@ else if ( (LA22_0==RULE_ID) ) { // $ANTLR start "entryRuleQualifiedNameInStaticImport" - // InternalStatemachine.g:1321:1: entryRuleQualifiedNameInStaticImport returns [String current=null] : iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ; + // InternalStatemachine.g:1406:1: entryRuleQualifiedNameInStaticImport returns [String current=null] : iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ; public final String entryRuleQualifiedNameInStaticImport() throws RecognitionException { String current = null; @@ -3738,8 +3988,8 @@ public final String entryRuleQualifiedNameInStaticImport() throws RecognitionExc try { - // InternalStatemachine.g:1321:67: (iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ) - // InternalStatemachine.g:1322:2: iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF + // InternalStatemachine.g:1406:67: (iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ) + // InternalStatemachine.g:1407:2: iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getQualifiedNameInStaticImportRule()); @@ -3770,7 +4020,7 @@ public final String entryRuleQualifiedNameInStaticImport() throws RecognitionExc // $ANTLR start "ruleQualifiedNameInStaticImport" - // InternalStatemachine.g:1328:1: ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID kw= '.' )+ ; + // InternalStatemachine.g:1413:1: ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID kw= '.' )+ ; public final AntlrDatatypeRuleToken ruleQualifiedNameInStaticImport() throws RecognitionException { AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); @@ -3782,37 +4032,37 @@ public final AntlrDatatypeRuleToken ruleQualifiedNameInStaticImport() throws Rec enterRule(); try { - // InternalStatemachine.g:1334:2: ( (this_ValidID_0= ruleValidID kw= '.' )+ ) - // InternalStatemachine.g:1335:2: (this_ValidID_0= ruleValidID kw= '.' )+ + // InternalStatemachine.g:1419:2: ( (this_ValidID_0= ruleValidID kw= '.' )+ ) + // InternalStatemachine.g:1420:2: (this_ValidID_0= ruleValidID kw= '.' )+ { - // InternalStatemachine.g:1335:2: (this_ValidID_0= ruleValidID kw= '.' )+ - int cnt25=0; - loop25: + // InternalStatemachine.g:1420:2: (this_ValidID_0= ruleValidID kw= '.' )+ + int cnt27=0; + loop27: do { - int alt25=2; - int LA25_0 = input.LA(1); + int alt27=2; + int LA27_0 = input.LA(1); - if ( (LA25_0==RULE_ID) ) { - int LA25_2 = input.LA(2); + if ( (LA27_0==RULE_ID) ) { + int LA27_2 = input.LA(2); - if ( (LA25_2==22) ) { - alt25=1; + if ( (LA27_2==25) ) { + alt27=1; } } - switch (alt25) { + switch (alt27) { case 1 : - // InternalStatemachine.g:1336:3: this_ValidID_0= ruleValidID kw= '.' + // InternalStatemachine.g:1421:3: this_ValidID_0= ruleValidID kw= '.' { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); } - pushFollow(FOLLOW_23); + pushFollow(FOLLOW_25); this_ValidID_0=ruleValidID(); state._fsp--; @@ -3827,7 +4077,7 @@ public final AntlrDatatypeRuleToken ruleQualifiedNameInStaticImport() throws Rec afterParserOrEnumRuleCall(); } - kw=(Token)match(input,22,FOLLOW_29); if (state.failed) return current; + kw=(Token)match(input,25,FOLLOW_31); if (state.failed) return current; if ( state.backtracking==0 ) { current.merge(kw); @@ -3839,13 +4089,13 @@ public final AntlrDatatypeRuleToken ruleQualifiedNameInStaticImport() throws Rec break; default : - if ( cnt25 >= 1 ) break loop25; + if ( cnt27 >= 1 ) break loop27; if (state.backtracking>0) {state.failed=true; return current;} EarlyExitException eee = - new EarlyExitException(25, input); + new EarlyExitException(27, input); throw eee; } - cnt25++; + cnt27++; } while (true); @@ -3870,14 +4120,14 @@ public final AntlrDatatypeRuleToken ruleQualifiedNameInStaticImport() throws Rec // $ANTLR start synpred1_InternalStatemachine public final void synpred1_InternalStatemachine_fragment() throws RecognitionException { - // InternalStatemachine.g:393:5: ( ( () ruleArrayBrackets ) ) - // InternalStatemachine.g:393:6: ( () ruleArrayBrackets ) + // InternalStatemachine.g:478:5: ( ( () ruleArrayBrackets ) ) + // InternalStatemachine.g:478:6: ( () ruleArrayBrackets ) { - // InternalStatemachine.g:393:6: ( () ruleArrayBrackets ) - // InternalStatemachine.g:394:6: () ruleArrayBrackets + // InternalStatemachine.g:478:6: ( () ruleArrayBrackets ) + // InternalStatemachine.g:479:6: () ruleArrayBrackets { - // InternalStatemachine.g:394:6: () - // InternalStatemachine.g:395:6: + // InternalStatemachine.g:479:6: () + // InternalStatemachine.g:480:6: { } @@ -3896,10 +4146,10 @@ public final void synpred1_InternalStatemachine_fragment() throws RecognitionExc // $ANTLR start synpred2_InternalStatemachine public final void synpred2_InternalStatemachine_fragment() throws RecognitionException { - // InternalStatemachine.g:590:5: ( '<' ) - // InternalStatemachine.g:590:6: '<' + // InternalStatemachine.g:675:5: ( '<' ) + // InternalStatemachine.g:675:6: '<' { - match(input,20,FOLLOW_2); if (state.failed) return ; + match(input,23,FOLLOW_2); if (state.failed) return ; } } @@ -3907,18 +4157,18 @@ public final void synpred2_InternalStatemachine_fragment() throws RecognitionExc // $ANTLR start synpred3_InternalStatemachine public final void synpred3_InternalStatemachine_fragment() throws RecognitionException { - // InternalStatemachine.g:646:6: ( ( () '.' ) ) - // InternalStatemachine.g:646:7: ( () '.' ) + // InternalStatemachine.g:731:6: ( ( () '.' ) ) + // InternalStatemachine.g:731:7: ( () '.' ) { - // InternalStatemachine.g:646:7: ( () '.' ) - // InternalStatemachine.g:647:7: () '.' + // InternalStatemachine.g:731:7: ( () '.' ) + // InternalStatemachine.g:732:7: () '.' { - // InternalStatemachine.g:647:7: () - // InternalStatemachine.g:648:7: + // InternalStatemachine.g:732:7: () + // InternalStatemachine.g:733:7: { } - match(input,22,FOLLOW_2); if (state.failed) return ; + match(input,25,FOLLOW_2); if (state.failed) return ; } @@ -3929,10 +4179,10 @@ public final void synpred3_InternalStatemachine_fragment() throws RecognitionExc // $ANTLR start synpred4_InternalStatemachine public final void synpred4_InternalStatemachine_fragment() throws RecognitionException { - // InternalStatemachine.g:684:7: ( '<' ) - // InternalStatemachine.g:684:8: '<' + // InternalStatemachine.g:769:7: ( '<' ) + // InternalStatemachine.g:769:8: '<' { - match(input,20,FOLLOW_2); if (state.failed) return ; + match(input,23,FOLLOW_2); if (state.failed) return ; } } @@ -3998,21 +4248,21 @@ public final boolean synpred1_InternalStatemachine() { } - protected DFA23 dfa23 = new DFA23(this); + protected DFA25 dfa25 = new DFA25(this); static final String dfa_1s = "\7\uffff"; - static final String dfa_2s = "\2\uffff\1\4\3\uffff\1\4"; - static final String dfa_3s = "\1\4\1\uffff\1\26\1\4\2\uffff\1\26"; - static final String dfa_4s = "\1\35\1\uffff\1\37\1\33\2\uffff\1\37"; - static final String dfa_5s = "\1\uffff\1\1\2\uffff\1\2\1\3\1\uffff"; + static final String dfa_2s = "\2\uffff\1\4\2\uffff\1\4\1\uffff"; + static final String dfa_3s = "\1\4\1\uffff\1\31\1\4\1\uffff\1\31\1\uffff"; + static final String dfa_4s = "\1\40\1\uffff\1\42\1\36\1\uffff\1\42\1\uffff"; + static final String dfa_5s = "\1\uffff\1\1\2\uffff\1\2\1\uffff\1\3"; static final String dfa_6s = "\7\uffff}>"; static final String[] dfa_7s = { - "\1\2\30\uffff\1\1", + "\1\2\33\uffff\1\1", "", "\1\3\10\uffff\1\4", - "\1\6\26\uffff\1\5", - "", + "\1\5\31\uffff\1\6", "", - "\1\3\10\uffff\1\4" + "\1\3\10\uffff\1\4", + "" }; static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s); @@ -4023,11 +4273,11 @@ public final boolean synpred1_InternalStatemachine() { static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s); static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s); - class DFA23 extends DFA { + class DFA25 extends DFA { - public DFA23(BaseRecognizer recognizer) { + public DFA25(BaseRecognizer recognizer) { this.recognizer = recognizer; - this.decisionNumber = 23; + this.decisionNumber = 25; this.eot = dfa_1; this.eof = dfa_2; this.min = dfa_3; @@ -4037,7 +4287,7 @@ public DFA23(BaseRecognizer recognizer) { this.transition = dfa_7; } public String getDescription() { - return "1190:3: ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) )"; + return "1275:3: ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) )"; } } @@ -4046,30 +4296,32 @@ public String getDescription() { public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000810L}); - public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000003002L}); - public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000002002L}); - public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000002800L}); - public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000008002L}); - public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x00000000000E0010L}); - public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000044000L}); - public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x00000000000A0010L}); - public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000100002L}); - public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x00000000008A0010L}); - public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000204000L}); - public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000400002L}); - public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000500002L}); - public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000005000002L}); - public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000002000002L}); - public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000020000010L}); - public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000040000010L}); - public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000008000010L}); - public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000080000002L}); - public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000000000012L}); + public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000019002L}); + public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000018002L}); + public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000010002L}); + public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000006000L}); + public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000010800L}); + public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000020000L}); + public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000040002L}); + public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000700010L}); + public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000220000L}); + public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000500010L}); + public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000800002L}); + public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000004500010L}); + public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000001020000L}); + public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000002000002L}); + public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000002800002L}); + public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000028000002L}); + public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000010000002L}); + public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000002000000L}); + public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000040000000L}); + public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000100000010L}); + public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000200000010L}); + public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000040000010L}); + public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000400000002L}); + public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000012L}); } \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/serializer/StatemachineSemanticSequencer.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/serializer/StatemachineSemanticSequencer.java index 2be58d521..232fee10c 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/serializer/StatemachineSemanticSequencer.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/serializer/StatemachineSemanticSequencer.java @@ -6,6 +6,7 @@ import com.google.inject.Inject; import de.cognicrypt.order.editor.services.StatemachineGrammarAccess; import de.cognicrypt.order.editor.statemachine.Event; +import de.cognicrypt.order.editor.statemachine.FinalState; import de.cognicrypt.order.editor.statemachine.State; import de.cognicrypt.order.editor.statemachine.Statemachine; import de.cognicrypt.order.editor.statemachine.StatemachinePackage; @@ -50,6 +51,9 @@ public void sequence(ISerializationContext context, EObject semanticObject) { case StatemachinePackage.EVENT: sequence_Event(context, (Event) semanticObject); return; + case StatemachinePackage.FINAL_STATE: + sequence_FinalState(context, (FinalState) semanticObject); + return; case StatemachinePackage.STATE: sequence_State(context, (State) semanticObject); return; @@ -145,12 +149,30 @@ protected void sequence_Event(ISerializationContext context, Event semanticObjec } + /** + * Contexts: + * FinalState returns FinalState + * + * Constraint: + * name=ID + */ + protected void sequence_FinalState(ISerializationContext context, FinalState semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, StatemachinePackage.Literals.FINAL_STATE__NAME) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, StatemachinePackage.Literals.FINAL_STATE__NAME)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getFinalStateAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName()); + feeder.finish(); + } + + /** * Contexts: * State returns State * * Constraint: - * (name=ID transitions+=Transition*) + * (name=ID isFinal?='true'? transitions+=Transition*) */ protected void sequence_State(ISerializationContext context, State semanticObject) { genericSequencer.createSequence(context, semanticObject); @@ -162,7 +184,7 @@ protected void sequence_State(ISerializationContext context, State semanticObjec * Statemachine returns Statemachine * * Constraint: - * (events+=Event* states+=State* transitions+=Transition*) + * (events+=Event* states+=State* finalstates+=FinalState* transitions+=Transition*) */ protected void sequence_Statemachine(ISerializationContext context, Statemachine semanticObject) { genericSequencer.createSequence(context, semanticObject); diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/services/StatemachineGrammarAccess.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/services/StatemachineGrammarAccess.java index 4971ea3bf..7278884c7 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/services/StatemachineGrammarAccess.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/services/StatemachineGrammarAccess.java @@ -7,6 +7,7 @@ import com.google.inject.Singleton; import java.util.List; import org.eclipse.xtext.Action; +import org.eclipse.xtext.Alternatives; import org.eclipse.xtext.Assignment; import org.eclipse.xtext.CrossReference; import org.eclipse.xtext.Grammar; @@ -34,8 +35,10 @@ public class StatemachineElements extends AbstractParserRuleElementFinder { private final Keyword cEndKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2); private final Assignment cStatesAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cStatesStateParserRuleCall_2_0 = (RuleCall)cStatesAssignment_2.eContents().get(0); - private final Assignment cTransitionsAssignment_3 = (Assignment)cGroup.eContents().get(3); - private final RuleCall cTransitionsTransitionParserRuleCall_3_0 = (RuleCall)cTransitionsAssignment_3.eContents().get(0); + private final Assignment cFinalstatesAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cFinalstatesFinalStateParserRuleCall_3_0 = (RuleCall)cFinalstatesAssignment_3.eContents().get(0); + private final Assignment cTransitionsAssignment_4 = (Assignment)cGroup.eContents().get(4); + private final RuleCall cTransitionsTransitionParserRuleCall_4_0 = (RuleCall)cTransitionsAssignment_4.eContents().get(0); //Statemachine : // {Statemachine} @@ -43,6 +46,7 @@ public class StatemachineElements extends AbstractParserRuleElementFinder { // events+=Event+ // 'end')? // states+=State* + // finalstates+=FinalState* // transitions+=Transition* //; @Override public ParserRule getRule() { return rule; } @@ -52,6 +56,7 @@ public class StatemachineElements extends AbstractParserRuleElementFinder { // events+=Event+ //'end')? //states+=State* + //finalstates+=FinalState* //transitions+=Transition* public Group getGroup() { return cGroup; } @@ -81,11 +86,17 @@ public class StatemachineElements extends AbstractParserRuleElementFinder { //State public RuleCall getStatesStateParserRuleCall_2_0() { return cStatesStateParserRuleCall_2_0; } + //finalstates+=FinalState* + public Assignment getFinalstatesAssignment_3() { return cFinalstatesAssignment_3; } + + //FinalState + public RuleCall getFinalstatesFinalStateParserRuleCall_3_0() { return cFinalstatesFinalStateParserRuleCall_3_0; } + //transitions+=Transition* - public Assignment getTransitionsAssignment_3() { return cTransitionsAssignment_3; } + public Assignment getTransitionsAssignment_4() { return cTransitionsAssignment_4; } //Transition - public RuleCall getTransitionsTransitionParserRuleCall_3_0() { return cTransitionsTransitionParserRuleCall_3_0; } + public RuleCall getTransitionsTransitionParserRuleCall_4_0() { return cTransitionsTransitionParserRuleCall_4_0; } } public class EventElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.cognicrypt.order.editor.Statemachine.Event"); @@ -121,18 +132,22 @@ public class StateElements extends AbstractParserRuleElementFinder { private final Keyword cStateKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); - private final Assignment cTransitionsAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cTransitionsTransitionParserRuleCall_2_0 = (RuleCall)cTransitionsAssignment_2.eContents().get(0); - private final Keyword cEndKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2); + private final Assignment cIsFinalAssignment_2_0 = (Assignment)cAlternatives_2.eContents().get(0); + private final Keyword cIsFinalTrueKeyword_2_0_0 = (Keyword)cIsFinalAssignment_2_0.eContents().get(0); + private final Keyword cFalseKeyword_2_1 = (Keyword)cAlternatives_2.eContents().get(1); + private final Assignment cTransitionsAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cTransitionsTransitionParserRuleCall_3_0 = (RuleCall)cTransitionsAssignment_3.eContents().get(0); + private final Keyword cEndKeyword_4 = (Keyword)cGroup.eContents().get(4); //State: - // 'state' name=ID + // 'state' name=ID (isFinal?='true'|'false') // transitions+=Transition* // 'end' //; @Override public ParserRule getRule() { return rule; } - //'state' name=ID + //'state' name=ID (isFinal?='true'|'false') // transitions+=Transition* //'end' public Group getGroup() { return cGroup; } @@ -146,14 +161,56 @@ public class StateElements extends AbstractParserRuleElementFinder { //ID public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } + //(isFinal?='true'|'false') + public Alternatives getAlternatives_2() { return cAlternatives_2; } + + //isFinal?='true' + public Assignment getIsFinalAssignment_2_0() { return cIsFinalAssignment_2_0; } + + //'true' + public Keyword getIsFinalTrueKeyword_2_0_0() { return cIsFinalTrueKeyword_2_0_0; } + + //'false' + public Keyword getFalseKeyword_2_1() { return cFalseKeyword_2_1; } + //transitions+=Transition* - public Assignment getTransitionsAssignment_2() { return cTransitionsAssignment_2; } + public Assignment getTransitionsAssignment_3() { return cTransitionsAssignment_3; } //Transition - public RuleCall getTransitionsTransitionParserRuleCall_2_0() { return cTransitionsTransitionParserRuleCall_2_0; } + public RuleCall getTransitionsTransitionParserRuleCall_3_0() { return cTransitionsTransitionParserRuleCall_3_0; } + + //'end' + public Keyword getEndKeyword_4() { return cEndKeyword_4; } + } + public class FinalStateElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.cognicrypt.order.editor.Statemachine.FinalState"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cFinalstateKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cEndKeyword_2 = (Keyword)cGroup.eContents().get(2); + + //FinalState: + // 'finalstate' name=ID + // 'end' + //; + @Override public ParserRule getRule() { return rule; } + + //'finalstate' name=ID + //'end' + public Group getGroup() { return cGroup; } + + //'finalstate' + public Keyword getFinalstateKeyword_0() { return cFinalstateKeyword_0; } + + //name=ID + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //ID + public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } //'end' - public Keyword getEndKeyword_3() { return cEndKeyword_3; } + public Keyword getEndKeyword_2() { return cEndKeyword_2; } } public class TransitionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.cognicrypt.order.editor.Statemachine.Transition"); @@ -236,6 +293,7 @@ public class TransitionElements extends AbstractParserRuleElementFinder { private final StatemachineElements pStatemachine; private final EventElements pEvent; private final StateElements pState; + private final FinalStateElements pFinalState; private final TransitionElements pTransition; private final Grammar grammar; @@ -250,6 +308,7 @@ public StatemachineGrammarAccess(GrammarProvider grammarProvider, this.pStatemachine = new StatemachineElements(); this.pEvent = new EventElements(); this.pState = new StateElements(); + this.pFinalState = new FinalStateElements(); this.pTransition = new TransitionElements(); } @@ -286,6 +345,7 @@ public XtypeGrammarAccess getXtypeGrammarAccess() { // events+=Event+ // 'end')? // states+=State* + // finalstates+=FinalState* // transitions+=Transition* //; public StatemachineElements getStatemachineAccess() { @@ -308,7 +368,7 @@ public ParserRule getEventRule() { } //State: - // 'state' name=ID + // 'state' name=ID (isFinal?='true'|'false') // transitions+=Transition* // 'end' //; @@ -320,6 +380,18 @@ public ParserRule getStateRule() { return getStateAccess().getRule(); } + //FinalState: + // 'finalstate' name=ID + // 'end' + //; + public FinalStateElements getFinalStateAccess() { + return pFinalState; + } + + public ParserRule getFinalStateRule() { + return getFinalStateAccess().getRule(); + } + //Transition: // 'transition' name=ID // fromState=[State] ',' event=[Event] ',' endState=[State] diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/FinalState.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/FinalState.java new file mode 100644 index 000000000..fb0c0af75 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/FinalState.java @@ -0,0 +1,48 @@ +/** + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.statemachine; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Final State'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link de.cognicrypt.order.editor.statemachine.FinalState#getName Name}
  • + *
+ * + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getFinalState() + * @model + * @generated + */ +public interface FinalState extends EObject +{ + /** + * Returns the value of the 'Name' attribute. + * + * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getFinalState_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link de.cognicrypt.order.editor.statemachine.FinalState#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + +} // FinalState diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/State.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/State.java index 69d10e1df..2b21a6075 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/State.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/State.java @@ -17,6 +17,7 @@ *

*
    *
  • {@link de.cognicrypt.order.editor.statemachine.State#getName Name}
  • + *
  • {@link de.cognicrypt.order.editor.statemachine.State#isIsFinal Is Final}
  • *
  • {@link de.cognicrypt.order.editor.statemachine.State#getTransitions Transitions}
  • *
* @@ -48,6 +49,28 @@ public interface State extends EObject */ void setName(String value); + /** + * Returns the value of the 'Is Final' attribute. + * + * + * @return the value of the 'Is Final' attribute. + * @see #setIsFinal(boolean) + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getState_IsFinal() + * @model + * @generated + */ + boolean isIsFinal(); + + /** + * Sets the value of the '{@link de.cognicrypt.order.editor.statemachine.State#isIsFinal Is Final}' attribute. + * + * + * @param value the new value of the 'Is Final' attribute. + * @see #isIsFinal() + * @generated + */ + void setIsFinal(boolean value); + /** * Returns the value of the 'Transitions' containment reference list. * The list contents are of type {@link de.cognicrypt.order.editor.statemachine.Transition}. diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java index ca52c195e..7108ec754 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java @@ -18,6 +18,7 @@ *
    *
  • {@link de.cognicrypt.order.editor.statemachine.Statemachine#getEvents Events}
  • *
  • {@link de.cognicrypt.order.editor.statemachine.Statemachine#getStates States}
  • + *
  • {@link de.cognicrypt.order.editor.statemachine.Statemachine#getFinalstates Finalstates}
  • *
  • {@link de.cognicrypt.order.editor.statemachine.Statemachine#getTransitions Transitions}
  • *
* @@ -51,6 +52,18 @@ public interface Statemachine extends EObject */ EList getStates(); + /** + * Returns the value of the 'Finalstates' containment reference list. + * The list contents are of type {@link de.cognicrypt.order.editor.statemachine.FinalState}. + * + * + * @return the value of the 'Finalstates' containment reference list. + * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getStatemachine_Finalstates() + * @model containment="true" + * @generated + */ + EList getFinalstates(); + /** * Returns the value of the 'Transitions' containment reference list. * The list contents are of type {@link de.cognicrypt.order.editor.statemachine.Transition}. diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachineFactory.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachineFactory.java index 7398dbb47..23a91efea 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachineFactory.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachineFactory.java @@ -50,6 +50,15 @@ public interface StatemachineFactory extends EFactory */ State createState(); + /** + * Returns a new object of class 'Final State'. + * + * + * @return a new object of class 'Final State'. + * @generated + */ + FinalState createFinalState(); + /** * Returns a new object of class 'Transition'. * diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachinePackage.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachinePackage.java index 97e9a8721..d449251b4 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachinePackage.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachinePackage.java @@ -85,6 +85,15 @@ public interface StatemachinePackage extends EPackage */ int STATEMACHINE__STATES = 1; + /** + * The feature id for the 'Finalstates' containment reference list. + * + * + * @generated + * @ordered + */ + int STATEMACHINE__FINALSTATES = 2; + /** * The feature id for the 'Transitions' containment reference list. * @@ -92,7 +101,7 @@ public interface StatemachinePackage extends EPackage * @generated * @ordered */ - int STATEMACHINE__TRANSITIONS = 2; + int STATEMACHINE__TRANSITIONS = 3; /** * The number of structural features of the 'Statemachine' class. @@ -101,7 +110,7 @@ public interface StatemachinePackage extends EPackage * @generated * @ordered */ - int STATEMACHINE_FEATURE_COUNT = 3; + int STATEMACHINE_FEATURE_COUNT = 4; /** * The meta object id for the '{@link de.cognicrypt.order.editor.statemachine.impl.EventImpl Event}' class. @@ -159,6 +168,15 @@ public interface StatemachinePackage extends EPackage */ int STATE__NAME = 0; + /** + * The feature id for the 'Is Final' attribute. + * + * + * @generated + * @ordered + */ + int STATE__IS_FINAL = 1; + /** * The feature id for the 'Transitions' containment reference list. * @@ -166,7 +184,7 @@ public interface StatemachinePackage extends EPackage * @generated * @ordered */ - int STATE__TRANSITIONS = 1; + int STATE__TRANSITIONS = 2; /** * The number of structural features of the 'State' class. @@ -175,7 +193,35 @@ public interface StatemachinePackage extends EPackage * @generated * @ordered */ - int STATE_FEATURE_COUNT = 2; + int STATE_FEATURE_COUNT = 3; + + /** + * The meta object id for the '{@link de.cognicrypt.order.editor.statemachine.impl.FinalStateImpl Final State}' class. + * + * + * @see de.cognicrypt.order.editor.statemachine.impl.FinalStateImpl + * @see de.cognicrypt.order.editor.statemachine.impl.StatemachinePackageImpl#getFinalState() + * @generated + */ + int FINAL_STATE = 3; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FINAL_STATE__NAME = 0; + + /** + * The number of structural features of the 'Final State' class. + * + * + * @generated + * @ordered + */ + int FINAL_STATE_FEATURE_COUNT = 1; /** * The meta object id for the '{@link de.cognicrypt.order.editor.statemachine.impl.TransitionImpl Transition}' class. @@ -185,7 +231,7 @@ public interface StatemachinePackage extends EPackage * @see de.cognicrypt.order.editor.statemachine.impl.StatemachinePackageImpl#getTransition() * @generated */ - int TRANSITION = 3; + int TRANSITION = 4; /** * The feature id for the 'Name' attribute. @@ -265,6 +311,17 @@ public interface StatemachinePackage extends EPackage */ EReference getStatemachine_States(); + /** + * Returns the meta object for the containment reference list '{@link de.cognicrypt.order.editor.statemachine.Statemachine#getFinalstates Finalstates}'. + * + * + * @return the meta object for the containment reference list 'Finalstates'. + * @see de.cognicrypt.order.editor.statemachine.Statemachine#getFinalstates() + * @see #getStatemachine() + * @generated + */ + EReference getStatemachine_Finalstates(); + /** * Returns the meta object for the containment reference list '{@link de.cognicrypt.order.editor.statemachine.Statemachine#getTransitions Transitions}'. * @@ -329,6 +386,17 @@ public interface StatemachinePackage extends EPackage */ EAttribute getState_Name(); + /** + * Returns the meta object for the attribute '{@link de.cognicrypt.order.editor.statemachine.State#isIsFinal Is Final}'. + * + * + * @return the meta object for the attribute 'Is Final'. + * @see de.cognicrypt.order.editor.statemachine.State#isIsFinal() + * @see #getState() + * @generated + */ + EAttribute getState_IsFinal(); + /** * Returns the meta object for the containment reference list '{@link de.cognicrypt.order.editor.statemachine.State#getTransitions Transitions}'. * @@ -340,6 +408,27 @@ public interface StatemachinePackage extends EPackage */ EReference getState_Transitions(); + /** + * Returns the meta object for class '{@link de.cognicrypt.order.editor.statemachine.FinalState Final State}'. + * + * + * @return the meta object for class 'Final State'. + * @see de.cognicrypt.order.editor.statemachine.FinalState + * @generated + */ + EClass getFinalState(); + + /** + * Returns the meta object for the attribute '{@link de.cognicrypt.order.editor.statemachine.FinalState#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see de.cognicrypt.order.editor.statemachine.FinalState#getName() + * @see #getFinalState() + * @generated + */ + EAttribute getFinalState_Name(); + /** * Returns the meta object for class '{@link de.cognicrypt.order.editor.statemachine.Transition Transition}'. * @@ -443,6 +532,14 @@ interface Literals */ EReference STATEMACHINE__STATES = eINSTANCE.getStatemachine_States(); + /** + * The meta object literal for the 'Finalstates' containment reference list feature. + * + * + * @generated + */ + EReference STATEMACHINE__FINALSTATES = eINSTANCE.getStatemachine_Finalstates(); + /** * The meta object literal for the 'Transitions' containment reference list feature. * @@ -495,6 +592,14 @@ interface Literals */ EAttribute STATE__NAME = eINSTANCE.getState_Name(); + /** + * The meta object literal for the 'Is Final' attribute feature. + * + * + * @generated + */ + EAttribute STATE__IS_FINAL = eINSTANCE.getState_IsFinal(); + /** * The meta object literal for the 'Transitions' containment reference list feature. * @@ -503,6 +608,24 @@ interface Literals */ EReference STATE__TRANSITIONS = eINSTANCE.getState_Transitions(); + /** + * The meta object literal for the '{@link de.cognicrypt.order.editor.statemachine.impl.FinalStateImpl Final State}' class. + * + * + * @see de.cognicrypt.order.editor.statemachine.impl.FinalStateImpl + * @see de.cognicrypt.order.editor.statemachine.impl.StatemachinePackageImpl#getFinalState() + * @generated + */ + EClass FINAL_STATE = eINSTANCE.getFinalState(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute FINAL_STATE__NAME = eINSTANCE.getFinalState_Name(); + /** * The meta object literal for the '{@link de.cognicrypt.order.editor.statemachine.impl.TransitionImpl Transition}' class. * diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/FinalStateImpl.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/FinalStateImpl.java new file mode 100644 index 000000000..7ae08183c --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/FinalStateImpl.java @@ -0,0 +1,180 @@ +/** + * generated by Xtext 2.25.0 + */ +package de.cognicrypt.order.editor.statemachine.impl; + +import de.cognicrypt.order.editor.statemachine.FinalState; +import de.cognicrypt.order.editor.statemachine.StatemachinePackage; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Final State'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link de.cognicrypt.order.editor.statemachine.impl.FinalStateImpl#getName Name}
  • + *
+ * + * @generated + */ +public class FinalStateImpl extends MinimalEObjectImpl.Container implements FinalState +{ + /** + * The default value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * + * + * @generated + */ + protected FinalStateImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return StatemachinePackage.Literals.FINAL_STATE; + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.FINAL_STATE__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case StatemachinePackage.FINAL_STATE__NAME: + return getName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case StatemachinePackage.FINAL_STATE__NAME: + setName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case StatemachinePackage.FINAL_STATE__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case StatemachinePackage.FINAL_STATE__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + +} //FinalStateImpl diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StateImpl.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StateImpl.java index bf04722a2..01f123572 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StateImpl.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StateImpl.java @@ -32,6 +32,7 @@ *

*
    *
  • {@link de.cognicrypt.order.editor.statemachine.impl.StateImpl#getName Name}
  • + *
  • {@link de.cognicrypt.order.editor.statemachine.impl.StateImpl#isIsFinal Is Final}
  • *
  • {@link de.cognicrypt.order.editor.statemachine.impl.StateImpl#getTransitions Transitions}
  • *
* @@ -59,6 +60,26 @@ public class StateImpl extends MinimalEObjectImpl.Container implements State */ protected String name = NAME_EDEFAULT; + /** + * The default value of the '{@link #isIsFinal() Is Final}' attribute. + * + * + * @see #isIsFinal() + * @generated + * @ordered + */ + protected static final boolean IS_FINAL_EDEFAULT = false; + + /** + * The cached value of the '{@link #isIsFinal() Is Final}' attribute. + * + * + * @see #isIsFinal() + * @generated + * @ordered + */ + protected boolean isFinal = IS_FINAL_EDEFAULT; + /** * The cached value of the '{@link #getTransitions() Transitions}' containment reference list. * @@ -115,6 +136,31 @@ public void setName(String newName) eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.STATE__NAME, oldName, name)); } + /** + * + * + * @generated + */ + @Override + public boolean isIsFinal() + { + return isFinal; + } + + /** + * + * + * @generated + */ + @Override + public void setIsFinal(boolean newIsFinal) + { + boolean oldIsFinal = isFinal; + isFinal = newIsFinal; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.STATE__IS_FINAL, oldIsFinal, isFinal)); + } + /** * * @@ -158,6 +204,8 @@ public Object eGet(int featureID, boolean resolve, boolean coreType) { case StatemachinePackage.STATE__NAME: return getName(); + case StatemachinePackage.STATE__IS_FINAL: + return isIsFinal(); case StatemachinePackage.STATE__TRANSITIONS: return getTransitions(); } @@ -178,6 +226,9 @@ public void eSet(int featureID, Object newValue) case StatemachinePackage.STATE__NAME: setName((String)newValue); return; + case StatemachinePackage.STATE__IS_FINAL: + setIsFinal((Boolean)newValue); + return; case StatemachinePackage.STATE__TRANSITIONS: getTransitions().clear(); getTransitions().addAll((Collection)newValue); @@ -199,6 +250,9 @@ public void eUnset(int featureID) case StatemachinePackage.STATE__NAME: setName(NAME_EDEFAULT); return; + case StatemachinePackage.STATE__IS_FINAL: + setIsFinal(IS_FINAL_EDEFAULT); + return; case StatemachinePackage.STATE__TRANSITIONS: getTransitions().clear(); return; @@ -218,6 +272,8 @@ public boolean eIsSet(int featureID) { case StatemachinePackage.STATE__NAME: return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case StatemachinePackage.STATE__IS_FINAL: + return isFinal != IS_FINAL_EDEFAULT; case StatemachinePackage.STATE__TRANSITIONS: return transitions != null && !transitions.isEmpty(); } @@ -237,6 +293,8 @@ public String toString() StringBuilder result = new StringBuilder(super.toString()); result.append(" (name: "); result.append(name); + result.append(", isFinal: "); + result.append(isFinal); result.append(')'); return result.toString(); } diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineFactoryImpl.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineFactoryImpl.java index 7cfbed492..6f504d456 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineFactoryImpl.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineFactoryImpl.java @@ -68,6 +68,7 @@ public EObject create(EClass eClass) case StatemachinePackage.STATEMACHINE: return createStatemachine(); case StatemachinePackage.EVENT: return createEvent(); case StatemachinePackage.STATE: return createState(); + case StatemachinePackage.FINAL_STATE: return createFinalState(); case StatemachinePackage.TRANSITION: return createTransition(); default: throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); @@ -110,6 +111,18 @@ public State createState() return state; } + /** + * + * + * @generated + */ + @Override + public FinalState createFinalState() + { + FinalStateImpl finalState = new FinalStateImpl(); + return finalState; + } + /** * * diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineImpl.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineImpl.java index 95f1bf593..5604bd171 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineImpl.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineImpl.java @@ -4,6 +4,7 @@ package de.cognicrypt.order.editor.statemachine.impl; import de.cognicrypt.order.editor.statemachine.Event; +import de.cognicrypt.order.editor.statemachine.FinalState; import de.cognicrypt.order.editor.statemachine.State; import de.cognicrypt.order.editor.statemachine.Statemachine; import de.cognicrypt.order.editor.statemachine.StatemachinePackage; @@ -33,6 +34,7 @@ *
    *
  • {@link de.cognicrypt.order.editor.statemachine.impl.StatemachineImpl#getEvents Events}
  • *
  • {@link de.cognicrypt.order.editor.statemachine.impl.StatemachineImpl#getStates States}
  • + *
  • {@link de.cognicrypt.order.editor.statemachine.impl.StatemachineImpl#getFinalstates Finalstates}
  • *
  • {@link de.cognicrypt.order.editor.statemachine.impl.StatemachineImpl#getTransitions Transitions}
  • *
* @@ -60,6 +62,16 @@ public class StatemachineImpl extends MinimalEObjectImpl.Container implements St */ protected EList states; + /** + * The cached value of the '{@link #getFinalstates() Finalstates}' containment reference list. + * + * + * @see #getFinalstates() + * @generated + * @ordered + */ + protected EList finalstates; + /** * The cached value of the '{@link #getTransitions() Transitions}' containment reference list. * @@ -121,6 +133,21 @@ public EList getStates() return states; } + /** + * + * + * @generated + */ + @Override + public EList getFinalstates() + { + if (finalstates == null) + { + finalstates = new EObjectContainmentEList(FinalState.class, this, StatemachinePackage.STATEMACHINE__FINALSTATES); + } + return finalstates; + } + /** * * @@ -150,6 +177,8 @@ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, return ((InternalEList)getEvents()).basicRemove(otherEnd, msgs); case StatemachinePackage.STATEMACHINE__STATES: return ((InternalEList)getStates()).basicRemove(otherEnd, msgs); + case StatemachinePackage.STATEMACHINE__FINALSTATES: + return ((InternalEList)getFinalstates()).basicRemove(otherEnd, msgs); case StatemachinePackage.STATEMACHINE__TRANSITIONS: return ((InternalEList)getTransitions()).basicRemove(otherEnd, msgs); } @@ -170,6 +199,8 @@ public Object eGet(int featureID, boolean resolve, boolean coreType) return getEvents(); case StatemachinePackage.STATEMACHINE__STATES: return getStates(); + case StatemachinePackage.STATEMACHINE__FINALSTATES: + return getFinalstates(); case StatemachinePackage.STATEMACHINE__TRANSITIONS: return getTransitions(); } @@ -195,6 +226,10 @@ public void eSet(int featureID, Object newValue) getStates().clear(); getStates().addAll((Collection)newValue); return; + case StatemachinePackage.STATEMACHINE__FINALSTATES: + getFinalstates().clear(); + getFinalstates().addAll((Collection)newValue); + return; case StatemachinePackage.STATEMACHINE__TRANSITIONS: getTransitions().clear(); getTransitions().addAll((Collection)newValue); @@ -219,6 +254,9 @@ public void eUnset(int featureID) case StatemachinePackage.STATEMACHINE__STATES: getStates().clear(); return; + case StatemachinePackage.STATEMACHINE__FINALSTATES: + getFinalstates().clear(); + return; case StatemachinePackage.STATEMACHINE__TRANSITIONS: getTransitions().clear(); return; @@ -240,6 +278,8 @@ public boolean eIsSet(int featureID) return events != null && !events.isEmpty(); case StatemachinePackage.STATEMACHINE__STATES: return states != null && !states.isEmpty(); + case StatemachinePackage.STATEMACHINE__FINALSTATES: + return finalstates != null && !finalstates.isEmpty(); case StatemachinePackage.STATEMACHINE__TRANSITIONS: return transitions != null && !transitions.isEmpty(); } diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachinePackageImpl.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachinePackageImpl.java index 6c70815e9..f29397e6f 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachinePackageImpl.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachinePackageImpl.java @@ -4,6 +4,7 @@ package de.cognicrypt.order.editor.statemachine.impl; import de.cognicrypt.order.editor.statemachine.Event; +import de.cognicrypt.order.editor.statemachine.FinalState; import de.cognicrypt.order.editor.statemachine.State; import de.cognicrypt.order.editor.statemachine.Statemachine; import de.cognicrypt.order.editor.statemachine.StatemachineFactory; @@ -46,6 +47,13 @@ public class StatemachinePackageImpl extends EPackageImpl implements Statemachin */ private EClass stateEClass = null; + /** + * + * + * @generated + */ + private EClass finalStateEClass = null; + /** * * @@ -155,11 +163,22 @@ public EReference getStatemachine_States() * @generated */ @Override - public EReference getStatemachine_Transitions() + public EReference getStatemachine_Finalstates() { return (EReference)statemachineEClass.getEStructuralFeatures().get(2); } + /** + * + * + * @generated + */ + @Override + public EReference getStatemachine_Transitions() + { + return (EReference)statemachineEClass.getEStructuralFeatures().get(3); + } + /** * * @@ -215,6 +234,17 @@ public EAttribute getState_Name() return (EAttribute)stateEClass.getEStructuralFeatures().get(0); } + /** + * + * + * @generated + */ + @Override + public EAttribute getState_IsFinal() + { + return (EAttribute)stateEClass.getEStructuralFeatures().get(1); + } + /** * * @@ -223,7 +253,29 @@ public EAttribute getState_Name() @Override public EReference getState_Transitions() { - return (EReference)stateEClass.getEStructuralFeatures().get(1); + return (EReference)stateEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getFinalState() + { + return finalStateEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getFinalState_Name() + { + return (EAttribute)finalStateEClass.getEStructuralFeatures().get(0); } /** @@ -315,6 +367,7 @@ public void createPackageContents() statemachineEClass = createEClass(STATEMACHINE); createEReference(statemachineEClass, STATEMACHINE__EVENTS); createEReference(statemachineEClass, STATEMACHINE__STATES); + createEReference(statemachineEClass, STATEMACHINE__FINALSTATES); createEReference(statemachineEClass, STATEMACHINE__TRANSITIONS); eventEClass = createEClass(EVENT); @@ -323,8 +376,12 @@ public void createPackageContents() stateEClass = createEClass(STATE); createEAttribute(stateEClass, STATE__NAME); + createEAttribute(stateEClass, STATE__IS_FINAL); createEReference(stateEClass, STATE__TRANSITIONS); + finalStateEClass = createEClass(FINAL_STATE); + createEAttribute(finalStateEClass, FINAL_STATE__NAME); + transitionEClass = createEClass(TRANSITION); createEAttribute(transitionEClass, TRANSITION__NAME); createEReference(transitionEClass, TRANSITION__FROM_STATE); @@ -366,6 +423,7 @@ public void initializePackageContents() initEClass(statemachineEClass, Statemachine.class, "Statemachine", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getStatemachine_Events(), this.getEvent(), null, "events", null, 0, -1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getStatemachine_States(), this.getState(), null, "states", null, 0, -1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getStatemachine_Finalstates(), this.getFinalState(), null, "finalstates", null, 0, -1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getStatemachine_Transitions(), this.getTransition(), null, "transitions", null, 0, -1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(eventEClass, Event.class, "Event", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); @@ -374,8 +432,12 @@ public void initializePackageContents() initEClass(stateEClass, State.class, "State", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getState_Name(), ecorePackage.getEString(), "name", null, 0, 1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getState_IsFinal(), ecorePackage.getEBoolean(), "isFinal", null, 0, 1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getState_Transitions(), this.getTransition(), null, "transitions", null, 0, -1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(finalStateEClass, FinalState.class, "FinalState", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getFinalState_Name(), ecorePackage.getEString(), "name", null, 0, 1, FinalState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(transitionEClass, Transition.class, "Transition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getTransition_Name(), ecorePackage.getEString(), "name", null, 0, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getTransition_FromState(), this.getState(), null, "fromState", null, 0, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineAdapterFactory.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineAdapterFactory.java index 819905b71..03ce76382 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineAdapterFactory.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineAdapterFactory.java @@ -91,6 +91,11 @@ public Adapter caseState(State object) return createStateAdapter(); } @Override + public Adapter caseFinalState(FinalState object) + { + return createFinalStateAdapter(); + } + @Override public Adapter caseTransition(Transition object) { return createTransitionAdapter(); @@ -162,6 +167,21 @@ public Adapter createStateAdapter() return null; } + /** + * Creates a new adapter for an object of class '{@link de.cognicrypt.order.editor.statemachine.FinalState Final State}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see de.cognicrypt.order.editor.statemachine.FinalState + * @generated + */ + public Adapter createFinalStateAdapter() + { + return null; + } + /** * Creates a new adapter for an object of class '{@link de.cognicrypt.order.editor.statemachine.Transition Transition}'. * diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineSwitch.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineSwitch.java index 8b8f75357..abaed3468 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineSwitch.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineSwitch.java @@ -94,6 +94,13 @@ protected T doSwitch(int classifierID, EObject theEObject) if (result == null) result = defaultCase(theEObject); return result; } + case StatemachinePackage.FINAL_STATE: + { + FinalState finalState = (FinalState)theEObject; + T result = caseFinalState(finalState); + if (result == null) result = defaultCase(theEObject); + return result; + } case StatemachinePackage.TRANSITION: { Transition transition = (Transition)theEObject; @@ -153,6 +160,22 @@ public T caseState(State object) return null; } + /** + * Returns the result of interpreting the object as an instance of 'Final State'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Final State'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFinalState(FinalState object) + { + return null; + } + /** * Returns the result of interpreting the object as an instance of 'Transition'. * diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/GenerateStatemachine.mwe2 b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/GenerateStatemachine.mwe2 index a1d1f66c5..4e209519c 100644 --- a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/GenerateStatemachine.mwe2 +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/GenerateStatemachine.mwe2 @@ -13,13 +13,13 @@ Workflow { baseName = "de.cognicrypt.order.editor" rootPath = rootPath runtimeTest = { - enabled = true + enabled = false } eclipsePlugin = { - enabled = true + enabled = false } eclipsePluginTest = { - enabled = true + enabled = false } createEclipseMetaData = true } diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext index 600f4f0da..daa58335a 100644 --- a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext @@ -8,6 +8,7 @@ Statemachine : events+=Event+ 'end')? states+=State* + finalstates+=FinalState* transitions+=Transition* ; @@ -16,14 +17,21 @@ Event: ; State: - 'state' name=ID + 'state' name=ID (isFinal?='true'|'false') transitions+=Transition* 'end' ; +FinalState: + 'finalstate' name=ID + 'end' +; + Transition: 'transition' name=ID fromState=[State] ',' event=[Event] ',' endState=[State] 'end' ; + + \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java index a25ebd45e..5fcc30a4c 100644 --- a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java @@ -42,6 +42,7 @@ import de.darmstadt.tu.crossing.crySL.SuperType; import de.cognicrypt.order.editor.statemachine.Event; import de.cognicrypt.order.editor.statemachine.State; +import de.cognicrypt.order.editor.statemachine.FinalState; import de.cognicrypt.order.editor.statemachine.Transition; import de.cognicrypt.order.editor.statemachine.StateMachineGraph; import de.cognicrypt.order.editor.statemachine.StateMachineGraphBuilder; @@ -94,10 +95,12 @@ public static void generateStatemachineXtextResource(EObject self, String ruleNa Statemachine statemachine = StatemachineFactory.eINSTANCE.createStatemachine(); State state = null; + FinalState finalstate = null; Event event = null; //de.darmstadt.tu.crossing.statemachine.Transition transition = null; Transition transition = null; HashMap stateNodeMap = new HashMap(); + HashMap finalstateNodeMap = new HashMap(); SuperType ev = null; int counter = 0; @@ -106,9 +109,23 @@ public static void generateStatemachineXtextResource(EObject self, String ruleNa for(StateNode s: stateNodes) { state = (State) StatemachineFactory.eINSTANCE.createState(); state.setName("s" + s.getName()); + if(s.getAccepting().equals(true)) { + state.setIsFinal(true); + } + else { + state.setIsFinal(false); + } statemachine.getStates().add((de.cognicrypt.order.editor.statemachine.State) state); counter++; stateNodeMap.put(s, state); + + if(s.getAccepting().equals(true)) { + finalstate = (FinalState) StatemachineFactory.eINSTANCE.createFinalState(); + finalstate.setName("f" + s.getName()); + //do not actually want to add a new node, but change the border of the current stateNode + statemachine.getFinalstates().add(finalstate); + finalstateNodeMap.put(s, finalstate); + } } //process transition edges for states and transitions diff --git a/plugins/de.cognicrypt.order.editor/xtend-gen/de/cognicrypt/order/editor/generator/.StatemachineGenerator.java._trace b/plugins/de.cognicrypt.order.editor/xtend-gen/de/cognicrypt/order/editor/generator/.StatemachineGenerator.java._trace index 5977d03553b8caa5219fa965b62199ecb71bb584..ee36e84c13cb6717e48d12ca80ba16259e2d9ce1 100644 GIT binary patch literal 414 zcmY+-KTE?v7{~E@@<&@Dm|iqCLP4kwU5p@gak+a2oy5V(NkVee3?^~}s)K{Cz`c`i z#Hn*%f`g;4psROJD8woGQg3VAzhr4IV;-rg{5R#(?G0~7gN72Q}cTn&} z_%58fy7d*fItbo9p%AC!bKm?fj4>AgKOkn7JeFVn1ehpPlGpR9%$vu%HmRFJHHj+9 zwr-NSs#KGiw~IDw)oqqvmz7G_r_+a4RfP?QU^5F2EQf)d$tQn%eLJ(|Of38@W3ku_ zbYF^9VEUJOQyKXDjpF5^H~9C6Y&*RuWza4MepP@j6@myg*7q8mk;q06~`^aYsu z)M8&Z!1FO_pKIB8Ip{Q?U0;A%*N#jByxFBMPe!!6k2*!P>kIJ3p_V$dd)*_Q?a=Ox RcQSvsurI)OkJ^=Ic7HG2M_d2^ diff --git a/plugins/de.cognicrypt.order.editor/xtend-gen/de/cognicrypt/order/editor/generator/.StatemachineGenerator.xtendbin b/plugins/de.cognicrypt.order.editor/xtend-gen/de/cognicrypt/order/editor/generator/.StatemachineGenerator.xtendbin index 3a8a8672ec9ec5b8d914eb595f1d7a3173c119da..4e3482dde69eb401c98da6d6ac8e323d0206b84e 100644 GIT binary patch delta 1108 zcmV-a1grap5`+>BP)h>@6aWYa2mqFZN0AL6e{<7D5VdrYElY__aDf7ano?T$P>Crs z{lK&{4QXM_6q3Ph>Tk?hS~~~Qo#yWB#Qg{S>+YRw#c7+2-I*k#?7qFXcl+Lcf?^Wx z-U%DTaqgXHT|Q5e)6>%!(wvnFVj-u=nFgL+oplo@9GQ=oEC;v4ic&~Dgj6%ZUH8f5 zf2C(SIU7?2$w)6s*aDe2-O=CzO|N481?#A!CZv4gy1gZAE$;7DP{@AAqdfBTO4d{q zh2Y6+I;Y2POo7_Ez;ye1Uc3ShlBFip@P7D!`RB>u_yhK@5-hKe!kOT=kPu5yVkT3F z-z`5LZ-{F&oJPZUUB5}3hX3Q`T(;$Se`-3TTF7{RthA)5epN@dLR;Pz@&?G;{AqLE zfl1djmcZI}W)qT7lPeiKjGuP7Am>L@*RIJz*Sb!d6f~F$SsJUB~NGcAIf4fBt_m zbR2)j0^ZmPJlG2hk+BIguQibw zQ&i%W3((k&cg<;bZLdeG7_pDgUWwZ4)M)cyd&IquW~$Nbugb^oU;+|&3dA=X!dngI zy3-`yL{YCtToSCJpJ6mes}XuPe=rlSGNEOUGO>Jkh$0DkCb=QGiO5@o1lYi_U|FNR zR|)M%vVv(g2j$OAe0f$7fK`S19P65^s27wp{Yah9$!)O#1Tle3iRW17!U^IwqWZDbp2iGXuXnkWIgviP`!2)9O~LpNb6n6Df-R0=w?x zhJw65!OgDvg7+1jLmY-ffWFx`>OU6F$S#~rq_YBeHJRku(`WDHHH>Rkz@6aWYa2mo4$8IcVje{b715S2v9mZjKk>a|_lwR6{XYd=gX zR$w2B4Op73g^RTb>MirPf|kw>TS*j1+KKlMhW+UsDO+*2Ij{#LfpYhb@5p=a{)BuI zwC@BKvF&@ON|n#!`0VT~f+S<5goul2e6FBKug*HL9gOtHOO}DtVR^}g8bYENFC6E| zf9BG26`zl(gm|PDCG3EV?e1uBiKbVv{)BZ@P#uyUah%=~wifr=6%^86@hF!(y^=NI zdCrUYHJ#IwH@ZOXT%fysJHDS}wAs>T~PTO`nmEC5Ae-Zyb z89KJNX8>GBqzgAgnQKZNrVwIi{t>uzN}{ny_biNfC>y~ud-@#mUI zk0~ti$~h?P#=T}Yx~A9TRg9QNXstx;c51YKuzlj(M>ExE_DAL8cQ63~MFPar8^T=; z=DOV=?nF|zM;zj>qMu;YPpT2Re>X4_tTKUN4^zH;cnCuQY9|u?}Qh)yTrSG31v1<@Z_>L^nX!Ci)l2Rf0brPzf)1L zVk+-$PNCkrsGW=@Or6kdhMND3G;Sl?PzeNFaGES>&MS~hv&=k#ZM)%|Nj7E~Q;X*D zZ!dls9D1R|&78s8jUH%)a#mJ4kj}mOQG=B=$bHh(s}{|Pn`xF{$^YWf4Sr7iHXe0U zLS@g(Bj^*?c|bfXe6Z;`e~*?f>-{@a$>8e7))W}5`{fJL>S0?ixyWg@rDq=EOVx(> zlC&yAJX$xzR~W4g@%6ePuC3|+vDSZ;z~9c^QpmdB?Zj;V_}A)IvY+r2`V+zP{sO!1 z5NZ7lP)i30M6m&nmjeI*{|Ep8P)h>@6aWYa2mo4$8ME61hXMmy zh#9kG2Hyb Date: Thu, 14 Oct 2021 14:12:12 +0200 Subject: [PATCH 09/18] Add current status --- plugins/.classpath | 7 + .../org.eclipse.core.resources.prefs | 2 + .../order.statemachine.design/.classpath | 7 + .../order.statemachine.design/.project | 24 + .../description/statemachine.odesign | 24 +- .../order/statemachine/design/Services.java | 69 + .../order.statemachine.modeling/.project | 12 + .../representations.aird | 104 +- .../.antlr-generator-3.2.0-patch.jar | Bin 0 -> 1484649 bytes plugins/de.cognicrypt.order.editor/.classpath | 15 + .../.launch/Launch Runtime Eclipse.launch | 34 + plugins/de.cognicrypt.order.editor/.project | 34 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 8 + .../model/generated/Statemachine.ecore | 6 - .../model/generated/Statemachine.genmodel | 5 - .../output/AEADParameters.statemachine | 1 + .../output/AESEngine.statemachine | 1 + .../output/AeadFactory.statemachine | 1 + .../output/AeadKeyTemplates.statemachine | 1 + .../output/AeadPrimitive.statemachine | 1 + .../AlgorithmParameterGenerator.statemachine | 1 + .../output/AlgorithmParameters.statemachine | 1 + .../AsymmetricCipherKeyPair.statemachine | 1 + .../output/BufferedBlockCipher.statemachine | 1 + .../output/CBCBlockCipher.statemachine | 1 + ...ertPathTrustManagerParameters.statemachine | 1 + .../output/CertificateFactory.statemachine | 1 + .../output/Cipher.statemachine | 1 + .../output/CipherInputStream.statemachine | 1 + .../output/CipherOutputStream.statemachine | 1 + .../output/Cookie.statemachine | 1 + .../output/DHGenParameterSpec.statemachine | 1 + .../output/DHParameterSpec.statemachine | 1 + .../output/DSAGenParameterSpec.statemachine | 1 + .../output/DSAParameterSpec.statemachine | 1 + .../output/DeterministicAead.statemachine | 1 + .../DeterministicAeadFactory.statemachine | 1 + ...DeterministicAeadKeyTemplates.statemachine | 1 + .../output/DigestInputStream.statemachine | 1 + .../output/DigestOutputStream.statemachine | 1 + .../output/ECDomainParameters.statemachine | 1 + .../output/ECElGamalDecryptor.statemachine | 1 + .../output/ECElGamalEncryptor.statemachine | 1 + .../output/ECFixedTransform.statemachine | 1 + .../ECKeyGenerationParameters.statemachine | 1 + .../output/ECKeyPairGenerator.statemachine | 1 + .../output/ECKeyParameters.statemachine | 1 + .../ECNewPublicKeyTransform.statemachine | 1 + .../ECNewRandomnessTransform.statemachine | 1 + .../output/ECPair.statemachine | 1 + .../ECPrivateKeyParameters.statemachine | 1 + .../output/ECPublicKeyParameters.statemachine | 1 + .../output/GCMBlockCipher.statemachine | 1 + .../output/GCMParameterSpec.statemachine | 1 + .../output/HMACParameterSpec.statemachine | 1 + .../output/HMac.statemachine | 1 + .../output/HybridDecrypt.statemachine | 1 + .../output/HybridDecryptFactory.statemachine | 1 + .../output/HybridEncrypt.statemachine | 1 + .../output/HybridEncryptFactory.statemachine | 1 + .../output/HybridKeyTemplates.statemachine | 1 + .../output/IvParameterSpec.statemachine | 1 + .../output/Key.statemachine | 1 + .../output/KeyAgreement.statemachine | 1 + .../output/KeyFactory.statemachine | 1 + .../output/KeyGenerator.statemachine | 1 + .../output/KeyManagerFactory.statemachine | 1 + .../output/KeyPair.statemachine | 1 + .../output/KeyPairGenerator.statemachine | 1 + .../output/KeyParameter.statemachine | 1 + .../output/KeyStore.statemachine | 1 + .../KeyStoreBuilderParameters.statemachine | 1 + .../output/KeyTemplate.statemachine | 1 + .../output/KeysetHandle.statemachine | 1 + .../output/Mac.statemachine | 1 + .../output/MacFactory.statemachine | 1 + .../output/MacKeyTemplates.statemachine | 1 + .../output/MacPrimitive.statemachine | 1 + .../output/MessageDigest.statemachine | 1 + .../output/PBEKeySpec.statemachine | 1 + .../output/PBEParameterSpec.statemachine | 1 + .../output/PKIXBuilderParameters.statemachine | 1 + .../output/PKIXParameters.statemachine | 1 + .../PaddedBufferedBlockCipher.statemachine | 1 + .../output/ParametersWithIV.statemachine | 1 + .../output/ParametersWithRandom.statemachine | 1 + .../output/PublicKeySign.statemachine | 1 + .../output/PublicKeySignFactory.statemachine | 1 + .../output/PublicKeyVerify.statemachine | 1 + .../PublicKeyVerifyFactory.statemachine | 1 + .../output/RSADigestSigner.statemachine | 1 + .../output/RSAEngine.statemachine | 1 + .../RSAKeyGenParameterSpec.statemachine | 1 + .../RSAKeyGenerationParameters.statemachine | 1 + .../output/RSAKeyPairGenerator.statemachine | 1 + .../output/RSAKeyParameters.statemachine | 1 + .../RSAPrivateCrtKeyParameters.statemachine | 1 + .../output/SHA256Digest.statemachine | 1 + .../output/SSLContext.statemachine | 1 + .../output/SSLEngine.statemachine | 1 + .../output/SSLParameters.statemachine | 1 + .../output/SecretKey.statemachine | 1 + .../output/SecretKeyFactory.statemachine | 1 + .../output/SecretKeySpec.statemachine | 1 + .../output/SecureRandom.statemachine | 1 + .../output/Signature.statemachine | 1 + .../output/SignatureKeyTemplates.statemachine | 1 + .../output/StreamingAead.statemachine | 1 + .../output/StreamingAeadFactory.statemachine | 1 + .../StreamingAeadKeyTemplates.statemachine | 1 + .../output/TrustAnchor.statemachine | 1 + .../output/TrustManagerFactory.statemachine | 1 + .../order/editor/Statemachine.xtextbin | Bin 5055 -> 4889 bytes .../antlr/internal/InternalStatemachine.g | 116 +- .../internal/InternalStatemachine.tokens | 40 +- .../internal/InternalStatemachineLexer.java | 333 ++-- .../internal/InternalStatemachineParser.java | 1449 +++++++---------- .../StatemachineSemanticSequencer.java | 31 +- .../services/StatemachineGrammarAccess.java | 87 +- .../order/editor/statemachine/Event.java | 23 - .../order/editor/statemachine/FinalState.java | 48 - .../editor/statemachine/Statemachine.java | 13 - .../statemachine/StatemachineFactory.java | 9 - .../statemachine/StatemachinePackage.java | 131 +- .../editor/statemachine/impl/EventImpl.java | 58 - .../statemachine/impl/FinalStateImpl.java | 180 -- .../impl/StatemachineFactoryImpl.java | 13 - .../statemachine/impl/StatemachineImpl.java | 40 - .../impl/StatemachinePackageImpl.java | 64 +- .../util/StatemachineAdapterFactory.java | 20 - .../statemachine/util/StatemachineSwitch.java | 23 - .../order/editor/Statemachine.xtext | 8 +- .../editor/parser/StatemachineParser.java | 13 - 134 files changed, 1149 insertions(+), 2000 deletions(-) create mode 100644 plugins/.classpath create mode 100644 plugins/de.cognicrypt.codegenerator.tests/.settings/org.eclipse.core.resources.prefs create mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/.classpath create mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/.project create mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/.project create mode 100644 plugins/de.cognicrypt.order.editor/.antlr-generator-3.2.0-patch.jar create mode 100644 plugins/de.cognicrypt.order.editor/.classpath create mode 100644 plugins/de.cognicrypt.order.editor/.launch/Launch Runtime Eclipse.launch create mode 100644 plugins/de.cognicrypt.order.editor/.project create mode 100644 plugins/de.cognicrypt.order.editor/.settings/org.eclipse.core.resources.prefs create mode 100644 plugins/de.cognicrypt.order.editor/.settings/org.eclipse.jdt.core.prefs create mode 100644 plugins/de.cognicrypt.order.editor/output/AEADParameters.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/AESEngine.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/AeadFactory.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/AeadKeyTemplates.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/AeadPrimitive.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/AlgorithmParameterGenerator.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/AlgorithmParameters.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/AsymmetricCipherKeyPair.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/BufferedBlockCipher.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/CBCBlockCipher.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/CertPathTrustManagerParameters.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/CertificateFactory.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/Cipher.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/CipherInputStream.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/CipherOutputStream.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/Cookie.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/DHGenParameterSpec.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/DHParameterSpec.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/DSAGenParameterSpec.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/DSAParameterSpec.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/DeterministicAead.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/DeterministicAeadFactory.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/DeterministicAeadKeyTemplates.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/DigestInputStream.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/DigestOutputStream.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/ECDomainParameters.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/ECElGamalDecryptor.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/ECElGamalEncryptor.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/ECFixedTransform.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/ECKeyGenerationParameters.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/ECKeyPairGenerator.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/ECKeyParameters.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/ECNewPublicKeyTransform.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/ECNewRandomnessTransform.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/ECPair.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/ECPrivateKeyParameters.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/ECPublicKeyParameters.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/GCMBlockCipher.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/GCMParameterSpec.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/HMACParameterSpec.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/HMac.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/HybridDecrypt.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/HybridDecryptFactory.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/HybridEncrypt.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/HybridEncryptFactory.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/HybridKeyTemplates.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/IvParameterSpec.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/Key.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/KeyAgreement.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/KeyFactory.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/KeyGenerator.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/KeyManagerFactory.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/KeyPair.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/KeyPairGenerator.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/KeyParameter.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/KeyStore.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/KeyStoreBuilderParameters.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/KeyTemplate.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/KeysetHandle.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/Mac.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/MacFactory.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/MacKeyTemplates.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/MacPrimitive.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/MessageDigest.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/PBEKeySpec.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/PBEParameterSpec.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/PKIXBuilderParameters.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/PKIXParameters.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/PaddedBufferedBlockCipher.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/ParametersWithIV.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/ParametersWithRandom.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/PublicKeySign.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/PublicKeySignFactory.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/PublicKeyVerify.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/PublicKeyVerifyFactory.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/RSADigestSigner.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/RSAEngine.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/RSAKeyGenParameterSpec.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/RSAKeyGenerationParameters.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/RSAKeyPairGenerator.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/RSAKeyParameters.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/RSAPrivateCrtKeyParameters.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/SHA256Digest.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/SSLContext.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/SSLEngine.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/SSLParameters.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/SecretKey.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/SecretKeyFactory.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/SecretKeySpec.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/SecureRandom.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/Signature.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/SignatureKeyTemplates.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/StreamingAead.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/StreamingAeadFactory.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/StreamingAeadKeyTemplates.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/TrustAnchor.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/output/TrustManagerFactory.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/FinalState.java delete mode 100644 plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/FinalStateImpl.java diff --git a/plugins/.classpath b/plugins/.classpath new file mode 100644 index 000000000..eca7bdba8 --- /dev/null +++ b/plugins/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/plugins/de.cognicrypt.codegenerator.tests/.settings/org.eclipse.core.resources.prefs b/plugins/de.cognicrypt.codegenerator.tests/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 000000000..99f26c020 --- /dev/null +++ b/plugins/de.cognicrypt.codegenerator.tests/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/.classpath b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/.classpath new file mode 100644 index 000000000..39810b7d6 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/.project b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/.project new file mode 100644 index 000000000..c25c11398 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/.project @@ -0,0 +1,24 @@ + + + order.statemachine.design + + + + + org.eclipse.jdt.core.javabuilder + + + + org.eclipse.pde.ManifestBuilder + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/description/statemachine.odesign b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/description/statemachine.odesign index 3e793a90f..c79fff387 100644 --- a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/description/statemachine.odesign +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/description/statemachine.odesign @@ -4,7 +4,7 @@ - +
- + @@ -37,18 +37,24 @@ - - - - - - - + + + + + + + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java index df6767854..f888cf097 100644 --- a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java @@ -1,7 +1,10 @@ package order.statemachine.design; import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EStructuralFeature; +import de.cognicrypt.order.editor.statemachine.Event; import de.cognicrypt.order.editor.statemachine.State; /** @@ -29,5 +32,71 @@ public int changeBorderFinalNode(EObject self) { return 1; } + + // JavaService for a simple String output: + public String nameService(EObject self) { + // TODO Auto-generated code + + return "t"; + } + + public String createEventName(EObject self) { + + System.out.println("self: " + self); // TransitionImpl + System.out.println("self.ecrossreferences: " + self.eCrossReferences()); // source and target states + System.out.println("self.econtainingfeature: " + self.eContainingFeature()); // EReferenceImpl with variable name transitions + EStructuralFeature se = self.eContainingFeature(); + // Execution stops here + Event e = null; // kein Sinn + System.out.println("eGet " + e.eGet(se)); + e.eSet(se, e); + System.out.println("eGet after " + e.eGet(se)); + + + + return "enew"; + } + + // JavaService debugging for the event creation: + public Event createEvent(EObject self) { + // TODO Auto-generated code + + System.out.println("Hello event2"); + System.out.println(self); + + //self.eSet(type name = new type();Event); + Event e = null; + if(self.eAllContents().hasNext()) { + System.out.println(self.eAllContents().next()); + } + else { + System.out.println("else"); + } + System.out.println("eAllContents " + self.eAllContents()); //eAllContents is empty + System.out.println("econtainingFeature " + self.eContainingFeature()); + System.out.println("econtainmentFeature " + self.eContainmentFeature()); + System.out.println("econtainer " + self.eContainer()); + /*for(Object i:self.eAllContents()) { + System.out.println("loop index: " + i) + }*/ + + System.out.println("eallattr " + self.eClass().getEAllAttributes()); + System.out.println("feature count " + self.eClass().getFeatureCount()); + System.out.println("eallref " + self.eClass().getEAllReferences()); + System.out.println("eallstructfeature " + self.eClass().getEAllStructuralFeatures()); + + //gets the event object + EReference eventref = self.eClass().getEAllReferences().get(1); + System.out.println("eventref " + eventref); + eventref.setName("new"); + System.out.println("eventref " + eventref); + System.out.println("eventref get " + eventref.eGet(eventref)); //returns true + self.eSet(eventref, "ds"); + System.out.println("klapp"); + + System.out.println("Hello event"); + + return e; + } } diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/.project b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/.project new file mode 100644 index 000000000..fbf9279fc --- /dev/null +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/.project @@ -0,0 +1,12 @@ + + + order.statemachine.modeling + + + + + + + org.eclipse.sirius.nature.modelingproject + + diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird index da9091644..2a66fbf81 100644 --- a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird +++ b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird @@ -1,98 +1,8 @@ - - - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AlgorithmParameters.statemachine - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AESEngine.statemachine - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - - - - - - - - - - - - + + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AEADParameters.statemachine + + + + diff --git a/plugins/de.cognicrypt.order.editor/.antlr-generator-3.2.0-patch.jar b/plugins/de.cognicrypt.order.editor/.antlr-generator-3.2.0-patch.jar new file mode 100644 index 0000000000000000000000000000000000000000..90516fd7ac76a3ec685e046f91eb762e68e20586 GIT binary patch literal 1484649 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%0AaAH?nu0NxCVyl& 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

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

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

I8_nWQmla%we@Iji{1SQ?m*~ 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 QGin|_fqUSNv#iel1NWwaUjP6A literal 0 HcmV?d00001 diff --git a/plugins/de.cognicrypt.order.editor/.classpath b/plugins/de.cognicrypt.order.editor/.classpath new file mode 100644 index 000000000..80311bc44 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/.classpath @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor/.launch/Launch Runtime Eclipse.launch b/plugins/de.cognicrypt.order.editor/.launch/Launch Runtime Eclipse.launch new file mode 100644 index 000000000..399ecb15a --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/.launch/Launch Runtime Eclipse.launch @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor/.project b/plugins/de.cognicrypt.order.editor/.project new file mode 100644 index 000000000..cf7cb4159 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/.project @@ -0,0 +1,34 @@ + + + de.cognicrypt.order.editor + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.xtext.ui.shared.xtextNature + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/plugins/de.cognicrypt.order.editor/.settings/org.eclipse.core.resources.prefs b/plugins/de.cognicrypt.order.editor/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 000000000..68a030452 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=windows-1252 diff --git a/plugins/de.cognicrypt.order.editor/.settings/org.eclipse.jdt.core.prefs b/plugins/de.cognicrypt.order.editor/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..9f6ece88b --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore index 84a3baed8..a0ccb03c7 100644 --- a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore +++ b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore @@ -7,14 +7,11 @@ eType="#//Event" containment="true"/> - - @@ -22,9 +19,6 @@ - - - diff --git a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel index 430b5011d..2a939c077 100644 --- a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel +++ b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel @@ -9,21 +9,16 @@ - - - - - diff --git a/plugins/de.cognicrypt.order.editor/output/AEADParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/AEADParameters.statemachine new file mode 100644 index 000000000..1d35c7c84 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/AEADParameters.statemachine @@ -0,0 +1 @@ +events CONS end state s0 true end state sinit false end transition t0 sinit , CONS , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/AESEngine.statemachine b/plugins/de.cognicrypt.order.editor/output/AESEngine.statemachine new file mode 100644 index 000000000..c51ba93b3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/AESEngine.statemachine @@ -0,0 +1 @@ +events c end state s0 true end state sinit false end transition t0 sinit , c , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/AeadFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/AeadFactory.statemachine new file mode 100644 index 000000000..bd29bdef3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/AeadFactory.statemachine @@ -0,0 +1 @@ +events gp end state s0 true end state sinit false end transition t0 sinit , gp , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/AeadKeyTemplates.statemachine b/plugins/de.cognicrypt.order.editor/output/AeadKeyTemplates.statemachine new file mode 100644 index 000000000..a74df4471 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/AeadKeyTemplates.statemachine @@ -0,0 +1 @@ +events CreateKeyTemplates0 CreateKeyTemplates1 end state s0 true end state sinit false end transition t0 sinit , CreateKeyTemplates0 , s0 end transition t1 sinit , CreateKeyTemplates1 , sinit end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/AeadPrimitive.statemachine b/plugins/de.cognicrypt.order.editor/output/AeadPrimitive.statemachine new file mode 100644 index 000000000..7d80b232c --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/AeadPrimitive.statemachine @@ -0,0 +1 @@ +events Mode0 Mode1 end state s0 true end state sinit true end transition t0 sinit , Mode0 , s0 end transition t1 s0 , Mode1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/AlgorithmParameterGenerator.statemachine b/plugins/de.cognicrypt.order.editor/output/AlgorithmParameterGenerator.statemachine new file mode 100644 index 000000000..66af4a0f8 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/AlgorithmParameterGenerator.statemachine @@ -0,0 +1 @@ +events Gets Inits Gen end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , Inits , s1 end transition t2 s1 , Gen , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/AlgorithmParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/AlgorithmParameters.statemachine new file mode 100644 index 000000000..3926a82f6 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/AlgorithmParameters.statemachine @@ -0,0 +1 @@ +events Gets Inits Encoded end state s2 true end state s1 true end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , Inits , s1 end transition t2 s1 , Encoded , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/AsymmetricCipherKeyPair.statemachine b/plugins/de.cognicrypt.order.editor/output/AsymmetricCipherKeyPair.statemachine new file mode 100644 index 000000000..aaf395296 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/AsymmetricCipherKeyPair.statemachine @@ -0,0 +1 @@ +events co end state s0 true end state sinit false end transition t0 sinit , co , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/BufferedBlockCipher.statemachine b/plugins/de.cognicrypt.order.editor/output/BufferedBlockCipher.statemachine new file mode 100644 index 000000000..360214e91 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/BufferedBlockCipher.statemachine @@ -0,0 +1 @@ +events Cons Inits1 Procs DOFINALS Inits4 end state s2 false end state s1 false end state s0 false end state sinit false end state s3 true end transition t0 sinit , Cons , s0 end transition t1 s0 , Inits1 , s1 end transition t2 s1 , Procs , s2 end transition t3 s2 , DOFINALS , s3 end transition t4 s3 , Inits4 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/CBCBlockCipher.statemachine b/plugins/de.cognicrypt.order.editor/output/CBCBlockCipher.statemachine new file mode 100644 index 000000000..c51ba93b3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/CBCBlockCipher.statemachine @@ -0,0 +1 @@ +events c end state s0 true end state sinit false end transition t0 sinit , c , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/CertPathTrustManagerParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/CertPathTrustManagerParameters.statemachine new file mode 100644 index 000000000..0dbe94905 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/CertPathTrustManagerParameters.statemachine @@ -0,0 +1 @@ +events C end state s0 true end state sinit false end transition t0 sinit , C , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/CertificateFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/CertificateFactory.statemachine new file mode 100644 index 000000000..9739473a5 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/CertificateFactory.statemachine @@ -0,0 +1 @@ +events Gets GenCert1 GenCertPath2 GenCRL GenCert4 GenCertPath5 end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , GenCert1 , s1 end transition t2 s0 , GenCertPath2 , s1 end transition t3 s1 , GenCRL , s2 end transition t4 s2 , GenCert4 , s1 end transition t5 s2 , GenCertPath5 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/Cipher.statemachine b/plugins/de.cognicrypt.order.editor/output/Cipher.statemachine new file mode 100644 index 000000000..70743d4ea --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/Cipher.statemachine @@ -0,0 +1 @@ +events Gets Inits1 Inits2 w3 w4 FINWOU updates6 updates7 DOFINALS end state s2 true end state s1 false end state s0 false end state sinit false end state s4 false end state s3 true end transition t0 sinit , Gets , s0 end transition t1 s0 , Inits1 , s1 end transition t2 s1 , Inits2 , s1 end transition t3 s1 , w3 , s2 end transition t4 s2 , w4 , s2 end transition t5 s1 , FINWOU , s3 end transition t6 s1 , updates6 , s4 end transition t7 s4 , updates7 , s4 end transition t8 s4 , DOFINALS , s3 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/CipherInputStream.statemachine b/plugins/de.cognicrypt.order.editor/output/CipherInputStream.statemachine new file mode 100644 index 000000000..a6481c640 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/CipherInputStream.statemachine @@ -0,0 +1 @@ +events Constructs Reads1 Reads2 c end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Constructs , s0 end transition t1 s0 , Reads1 , s1 end transition t2 s1 , Reads2 , s1 end transition t3 s1 , c , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/CipherOutputStream.statemachine b/plugins/de.cognicrypt.order.editor/output/CipherOutputStream.statemachine new file mode 100644 index 000000000..d36c4c566 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/CipherOutputStream.statemachine @@ -0,0 +1 @@ +events Constructs Writes1 Writes2 c end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Constructs , s0 end transition t1 s0 , Writes1 , s1 end transition t2 s1 , Writes2 , s1 end transition t3 s1 , c , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/Cookie.statemachine b/plugins/de.cognicrypt.order.editor/output/Cookie.statemachine new file mode 100644 index 000000000..9f2576767 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/Cookie.statemachine @@ -0,0 +1 @@ +events c sc end state s1 true end state s0 false end state sinit false end transition t0 sinit , c , s0 end transition t1 s0 , sc , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/DHGenParameterSpec.statemachine b/plugins/de.cognicrypt.order.editor/output/DHGenParameterSpec.statemachine new file mode 100644 index 000000000..5257247b4 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/DHGenParameterSpec.statemachine @@ -0,0 +1 @@ +events c1 end state s0 true end state sinit false end transition t0 sinit , c1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/DHParameterSpec.statemachine b/plugins/de.cognicrypt.order.editor/output/DHParameterSpec.statemachine new file mode 100644 index 000000000..7a35430e3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/DHParameterSpec.statemachine @@ -0,0 +1 @@ +events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/DSAGenParameterSpec.statemachine b/plugins/de.cognicrypt.order.editor/output/DSAGenParameterSpec.statemachine new file mode 100644 index 000000000..7a35430e3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/DSAGenParameterSpec.statemachine @@ -0,0 +1 @@ +events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/DSAParameterSpec.statemachine b/plugins/de.cognicrypt.order.editor/output/DSAParameterSpec.statemachine new file mode 100644 index 000000000..5257247b4 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/DSAParameterSpec.statemachine @@ -0,0 +1 @@ +events c1 end state s0 true end state sinit false end transition t0 sinit , c1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/DeterministicAead.statemachine b/plugins/de.cognicrypt.order.editor/output/DeterministicAead.statemachine new file mode 100644 index 000000000..7d80b232c --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/DeterministicAead.statemachine @@ -0,0 +1 @@ +events Mode0 Mode1 end state s0 true end state sinit true end transition t0 sinit , Mode0 , s0 end transition t1 s0 , Mode1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/DeterministicAeadFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/DeterministicAeadFactory.statemachine new file mode 100644 index 000000000..bd29bdef3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/DeterministicAeadFactory.statemachine @@ -0,0 +1 @@ +events gp end state s0 true end state sinit false end transition t0 sinit , gp , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/DeterministicAeadKeyTemplates.statemachine b/plugins/de.cognicrypt.order.editor/output/DeterministicAeadKeyTemplates.statemachine new file mode 100644 index 000000000..64fb2187f --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/DeterministicAeadKeyTemplates.statemachine @@ -0,0 +1 @@ +events aes256_siv_evt0 aes256_siv_evt1 end state s0 true end state sinit true end transition t0 sinit , aes256_siv_evt0 , s0 end transition t1 s0 , aes256_siv_evt1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/DigestInputStream.statemachine b/plugins/de.cognicrypt.order.editor/output/DigestInputStream.statemachine new file mode 100644 index 000000000..9578bdb0f --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/DigestInputStream.statemachine @@ -0,0 +1 @@ +events c Reads1 Reads2 end state s1 true end state s0 false end state sinit false end transition t0 sinit , c , s0 end transition t1 s0 , Reads1 , s1 end transition t2 s1 , Reads2 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/DigestOutputStream.statemachine b/plugins/de.cognicrypt.order.editor/output/DigestOutputStream.statemachine new file mode 100644 index 000000000..f6b8583db --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/DigestOutputStream.statemachine @@ -0,0 +1 @@ +events c Writes1 Writes2 end state s1 true end state s0 false end state sinit false end transition t0 sinit , c , s0 end transition t1 s0 , Writes1 , s1 end transition t2 s1 , Writes2 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECDomainParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/ECDomainParameters.statemachine new file mode 100644 index 000000000..7a35430e3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/ECDomainParameters.statemachine @@ -0,0 +1 @@ +events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECElGamalDecryptor.statemachine b/plugins/de.cognicrypt.order.editor/output/ECElGamalDecryptor.statemachine new file mode 100644 index 000000000..83cff9555 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/ECElGamalDecryptor.statemachine @@ -0,0 +1 @@ +events Cons Inits1 Decrypts2 Decrypts3 Inits4 end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Cons , s0 end transition t1 s0 , Inits1 , s1 end transition t2 s1 , Decrypts2 , s2 end transition t3 s2 , Decrypts3 , s2 end transition t4 s2 , Inits4 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECElGamalEncryptor.statemachine b/plugins/de.cognicrypt.order.editor/output/ECElGamalEncryptor.statemachine new file mode 100644 index 000000000..0fc671a22 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/ECElGamalEncryptor.statemachine @@ -0,0 +1 @@ +events Cons Inits1 Encrypts2 Encrypts3 Inits4 end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Cons , s0 end transition t1 s0 , Inits1 , s1 end transition t2 s1 , Encrypts2 , s2 end transition t3 s2 , Encrypts3 , s2 end transition t4 s2 , Inits4 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECFixedTransform.statemachine b/plugins/de.cognicrypt.order.editor/output/ECFixedTransform.statemachine new file mode 100644 index 000000000..865995007 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/ECFixedTransform.statemachine @@ -0,0 +1 @@ +events Cons Inits Transforms2 Transforms3 end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Cons , s0 end transition t1 s0 , Inits , s1 end transition t2 s1 , Transforms2 , s2 end transition t3 s2 , Transforms3 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECKeyGenerationParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/ECKeyGenerationParameters.statemachine new file mode 100644 index 000000000..7a35430e3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/ECKeyGenerationParameters.statemachine @@ -0,0 +1 @@ +events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECKeyPairGenerator.statemachine b/plugins/de.cognicrypt.order.editor/output/ECKeyPairGenerator.statemachine new file mode 100644 index 000000000..663772307 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/ECKeyPairGenerator.statemachine @@ -0,0 +1 @@ +events c i g end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , c , s0 end transition t1 s0 , i , s1 end transition t2 s1 , g , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECKeyParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/ECKeyParameters.statemachine new file mode 100644 index 000000000..7a35430e3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/ECKeyParameters.statemachine @@ -0,0 +1 @@ +events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECNewPublicKeyTransform.statemachine b/plugins/de.cognicrypt.order.editor/output/ECNewPublicKeyTransform.statemachine new file mode 100644 index 000000000..865995007 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/ECNewPublicKeyTransform.statemachine @@ -0,0 +1 @@ +events Cons Inits Transforms2 Transforms3 end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Cons , s0 end transition t1 s0 , Inits , s1 end transition t2 s1 , Transforms2 , s2 end transition t3 s2 , Transforms3 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECNewRandomnessTransform.statemachine b/plugins/de.cognicrypt.order.editor/output/ECNewRandomnessTransform.statemachine new file mode 100644 index 000000000..865995007 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/ECNewRandomnessTransform.statemachine @@ -0,0 +1 @@ +events Cons Inits Transforms2 Transforms3 end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Cons , s0 end transition t1 s0 , Inits , s1 end transition t2 s1 , Transforms2 , s2 end transition t3 s2 , Transforms3 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECPair.statemachine b/plugins/de.cognicrypt.order.editor/output/ECPair.statemachine new file mode 100644 index 000000000..7a35430e3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/ECPair.statemachine @@ -0,0 +1 @@ +events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECPrivateKeyParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/ECPrivateKeyParameters.statemachine new file mode 100644 index 000000000..7a35430e3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/ECPrivateKeyParameters.statemachine @@ -0,0 +1 @@ +events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECPublicKeyParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/ECPublicKeyParameters.statemachine new file mode 100644 index 000000000..7a35430e3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/ECPublicKeyParameters.statemachine @@ -0,0 +1 @@ +events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/GCMBlockCipher.statemachine b/plugins/de.cognicrypt.order.editor/output/GCMBlockCipher.statemachine new file mode 100644 index 000000000..157f4e4ff --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/GCMBlockCipher.statemachine @@ -0,0 +1 @@ +events Cons init process2 process3 doFinal end state s2 false end state s1 false end state s0 false end state sinit false end state s3 true end transition t0 sinit , Cons , s0 end transition t1 s0 , init , s1 end transition t2 s1 , process2 , s2 end transition t3 s2 , process3 , s2 end transition t4 s2 , doFinal , s3 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/GCMParameterSpec.statemachine b/plugins/de.cognicrypt.order.editor/output/GCMParameterSpec.statemachine new file mode 100644 index 000000000..7a35430e3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/GCMParameterSpec.statemachine @@ -0,0 +1 @@ +events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/HMACParameterSpec.statemachine b/plugins/de.cognicrypt.order.editor/output/HMACParameterSpec.statemachine new file mode 100644 index 000000000..5257247b4 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/HMACParameterSpec.statemachine @@ -0,0 +1 @@ +events c1 end state s0 true end state sinit false end transition t0 sinit , c1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/HMac.statemachine b/plugins/de.cognicrypt.order.editor/output/HMac.statemachine new file mode 100644 index 000000000..b96724261 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/HMac.statemachine @@ -0,0 +1 @@ +events Cons Init1 Updates2 Updates3 Finals Init5 end state s2 false end state s1 false end state s0 false end state sinit false end state s3 true end transition t0 sinit , Cons , s0 end transition t1 s0 , Init1 , s1 end transition t2 s1 , Updates2 , s2 end transition t3 s2 , Updates3 , s2 end transition t4 s2 , Finals , s3 end transition t5 s3 , Init5 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/HybridDecrypt.statemachine b/plugins/de.cognicrypt.order.editor/output/HybridDecrypt.statemachine new file mode 100644 index 000000000..de2c4d582 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/HybridDecrypt.statemachine @@ -0,0 +1 @@ +events dec0 dec1 end state s0 true end state sinit true end transition t0 sinit , dec0 , s0 end transition t1 s0 , dec1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/HybridDecryptFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/HybridDecryptFactory.statemachine new file mode 100644 index 000000000..bd29bdef3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/HybridDecryptFactory.statemachine @@ -0,0 +1 @@ +events gp end state s0 true end state sinit false end transition t0 sinit , gp , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/HybridEncrypt.statemachine b/plugins/de.cognicrypt.order.editor/output/HybridEncrypt.statemachine new file mode 100644 index 000000000..2efc0c2aa --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/HybridEncrypt.statemachine @@ -0,0 +1 @@ +events enc0 enc1 end state s0 true end state sinit true end transition t0 sinit , enc0 , s0 end transition t1 s0 , enc1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/HybridEncryptFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/HybridEncryptFactory.statemachine new file mode 100644 index 000000000..bd29bdef3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/HybridEncryptFactory.statemachine @@ -0,0 +1 @@ +events gp end state s0 true end state sinit false end transition t0 sinit , gp , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/HybridKeyTemplates.statemachine b/plugins/de.cognicrypt.order.editor/output/HybridKeyTemplates.statemachine new file mode 100644 index 000000000..31889e648 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/HybridKeyTemplates.statemachine @@ -0,0 +1 @@ +events CreateKeyTemplates0 CreateKeyTemplates1 end state s0 true end state sinit true end transition t0 sinit , CreateKeyTemplates0 , s0 end transition t1 s0 , CreateKeyTemplates1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/IvParameterSpec.statemachine b/plugins/de.cognicrypt.order.editor/output/IvParameterSpec.statemachine new file mode 100644 index 000000000..7a35430e3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/IvParameterSpec.statemachine @@ -0,0 +1 @@ +events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/Key.statemachine b/plugins/de.cognicrypt.order.editor/output/Key.statemachine new file mode 100644 index 000000000..1e91dc632 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/Key.statemachine @@ -0,0 +1 @@ +events ge0 ge1 end state s0 true end state sinit true end transition t0 sinit , ge0 , s0 end transition t1 s0 , ge1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyAgreement.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyAgreement.statemachine new file mode 100644 index 000000000..f86f9a293 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/KeyAgreement.statemachine @@ -0,0 +1 @@ +events Gets Inits dp GenSecret end state s2 false end state s1 false end state s0 false end state sinit false end state s3 true end transition t0 sinit , Gets , s0 end transition t1 s0 , Inits , s1 end transition t2 s1 , dp , s2 end transition t3 s2 , GenSecret , s3 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyFactory.statemachine new file mode 100644 index 000000000..303600f64 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/KeyFactory.statemachine @@ -0,0 +1 @@ +events Gets Gens end state s1 true end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , Gens , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyGenerator.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyGenerator.statemachine new file mode 100644 index 000000000..e89bac6d5 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/KeyGenerator.statemachine @@ -0,0 +1 @@ +events Gets Inits gk2 gk3 end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , Inits , s1 end transition t2 s1 , gk2 , s2 end transition t3 s0 , gk3 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyManagerFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyManagerFactory.statemachine new file mode 100644 index 000000000..de0691439 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/KeyManagerFactory.statemachine @@ -0,0 +1 @@ +events Gets Init gkm end state s2 true end state s1 true end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , Init , s1 end transition t2 s1 , gkm , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyPair.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyPair.statemachine new file mode 100644 index 000000000..9839212d1 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/KeyPair.statemachine @@ -0,0 +1 @@ +events co pu1 pu2 pr3 pr4 pr5 pu6 pu7 pr8 end state s2 true end state s1 true end state s0 true end state sinit true end transition t0 sinit , co , s0 end transition t1 s0 , pu1 , s1 end transition t2 s1 , pu2 , s1 end transition t3 s1 , pr3 , s2 end transition t4 s2 , pr4 , s2 end transition t5 s0 , pr5 , s2 end transition t6 s2 , pu6 , s1 end transition t7 sinit , pu7 , s1 end transition t8 sinit , pr8 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyPairGenerator.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyPairGenerator.statemachine new file mode 100644 index 000000000..ed1edef57 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/KeyPairGenerator.statemachine @@ -0,0 +1 @@ +events Gets Inits Generators end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , Inits , s1 end transition t2 s1 , Generators , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyParameter.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyParameter.statemachine new file mode 100644 index 000000000..7a35430e3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/KeyParameter.statemachine @@ -0,0 +1 @@ +events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyStore.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyStore.statemachine new file mode 100644 index 000000000..3764dcedb --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/KeyStore.statemachine @@ -0,0 +1 @@ +events Gets Loads gE2 gk3 gk4 sE5 Stores gE7 gk8 sE9 end state s2 false end state s1 true end state s0 false end state sinit false end state s4 false end state s3 true end transition t0 sinit , Gets , s0 end transition t1 s0 , Loads , s1 end transition t2 s1 , gE2 , s2 end transition t3 s2 , gk3 , s3 end transition t4 s1 , gk4 , s3 end transition t5 s1 , sE5 , s4 end transition t6 s4 , Stores , s3 end transition t7 s3 , gE7 , s2 end transition t8 s3 , gk8 , s3 end transition t9 s3 , sE9 , s4 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyStoreBuilderParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyStoreBuilderParameters.statemachine new file mode 100644 index 000000000..0dbe94905 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/KeyStoreBuilderParameters.statemachine @@ -0,0 +1 @@ +events C end state s0 true end state sinit false end transition t0 sinit , C , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyTemplate.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyTemplate.statemachine new file mode 100644 index 000000000..b041745d0 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/KeyTemplate.statemachine @@ -0,0 +1 @@ +events evt0 evt1 end state s0 true end state sinit true end transition t0 sinit , evt0 , s0 end transition t1 s0 , evt1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeysetHandle.statemachine b/plugins/de.cognicrypt.order.editor/output/KeysetHandle.statemachine new file mode 100644 index 000000000..8fa2debe0 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/KeysetHandle.statemachine @@ -0,0 +1 @@ +events gen_evt read_evt gen_public_evt export_evt3 export_evt4 end state s2 true end state s1 true end state s0 true end state sinit false end transition t0 sinit , gen_evt , s0 end transition t1 sinit , read_evt , s0 end transition t2 s0 , gen_public_evt , s1 end transition t3 s1 , export_evt3 , s2 end transition t4 s0 , export_evt4 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/Mac.statemachine b/plugins/de.cognicrypt.order.editor/output/Mac.statemachine new file mode 100644 index 000000000..6ac8396e6 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/Mac.statemachine @@ -0,0 +1 @@ +events Gets Inits Finals2 Updates3 Updates4 Finals5 end state s2 true end state s1 false end state s0 false end state sinit false end state s3 false end transition t0 sinit , Gets , s0 end transition t1 s0 , Inits , s1 end transition t2 s1 , Finals2 , s2 end transition t3 s1 , Updates3 , s3 end transition t4 s3 , Updates4 , s3 end transition t5 s3 , Finals5 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/MacFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/MacFactory.statemachine new file mode 100644 index 000000000..bd29bdef3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/MacFactory.statemachine @@ -0,0 +1 @@ +events gp end state s0 true end state sinit false end transition t0 sinit , gp , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/MacKeyTemplates.statemachine b/plugins/de.cognicrypt.order.editor/output/MacKeyTemplates.statemachine new file mode 100644 index 000000000..86803b439 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/MacKeyTemplates.statemachine @@ -0,0 +1 @@ +events hmac_sha256_evt end state s0 true end state sinit false end transition t0 sinit , hmac_sha256_evt , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/MacPrimitive.statemachine b/plugins/de.cognicrypt.order.editor/output/MacPrimitive.statemachine new file mode 100644 index 000000000..7d80b232c --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/MacPrimitive.statemachine @@ -0,0 +1 @@ +events Mode0 Mode1 end state s0 true end state sinit true end transition t0 sinit , Mode0 , s0 end transition t1 s0 , Mode1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/MessageDigest.statemachine b/plugins/de.cognicrypt.order.editor/output/MessageDigest.statemachine new file mode 100644 index 000000000..025a21dde --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/MessageDigest.statemachine @@ -0,0 +1 @@ +events Gets DWOU1 Updates2 Updates3 Digests DWOU5 Updates6 end state s2 false end state s1 true end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , DWOU1 , s1 end transition t2 s0 , Updates2 , s2 end transition t3 s2 , Updates3 , s2 end transition t4 s2 , Digests , s1 end transition t5 s1 , DWOU5 , s1 end transition t6 s1 , Updates6 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/PBEKeySpec.statemachine b/plugins/de.cognicrypt.order.editor/output/PBEKeySpec.statemachine new file mode 100644 index 000000000..0bb07424e --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/PBEKeySpec.statemachine @@ -0,0 +1 @@ +events c1 cP end state s1 true end state s0 false end state sinit false end transition t0 sinit , c1 , s0 end transition t1 s0 , cP , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/PBEParameterSpec.statemachine b/plugins/de.cognicrypt.order.editor/output/PBEParameterSpec.statemachine new file mode 100644 index 000000000..7a35430e3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/PBEParameterSpec.statemachine @@ -0,0 +1 @@ +events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/PKIXBuilderParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/PKIXBuilderParameters.statemachine new file mode 100644 index 000000000..9cca1f340 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/PKIXBuilderParameters.statemachine @@ -0,0 +1 @@ +events c1 c2 end state s0 true end state sinit false end transition t0 sinit , c1 , s0 end transition t1 sinit , c2 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/PKIXParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/PKIXParameters.statemachine new file mode 100644 index 000000000..5257247b4 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/PKIXParameters.statemachine @@ -0,0 +1 @@ +events c1 end state s0 true end state sinit false end transition t0 sinit , c1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/PaddedBufferedBlockCipher.statemachine b/plugins/de.cognicrypt.order.editor/output/PaddedBufferedBlockCipher.statemachine new file mode 100644 index 000000000..360214e91 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/PaddedBufferedBlockCipher.statemachine @@ -0,0 +1 @@ +events Cons Inits1 Procs DOFINALS Inits4 end state s2 false end state s1 false end state s0 false end state sinit false end state s3 true end transition t0 sinit , Cons , s0 end transition t1 s0 , Inits1 , s1 end transition t2 s1 , Procs , s2 end transition t3 s2 , DOFINALS , s3 end transition t4 s3 , Inits4 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ParametersWithIV.statemachine b/plugins/de.cognicrypt.order.editor/output/ParametersWithIV.statemachine new file mode 100644 index 000000000..7a35430e3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/ParametersWithIV.statemachine @@ -0,0 +1 @@ +events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ParametersWithRandom.statemachine b/plugins/de.cognicrypt.order.editor/output/ParametersWithRandom.statemachine new file mode 100644 index 000000000..7a35430e3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/ParametersWithRandom.statemachine @@ -0,0 +1 @@ +events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/PublicKeySign.statemachine b/plugins/de.cognicrypt.order.editor/output/PublicKeySign.statemachine new file mode 100644 index 000000000..d5b861f4a --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/PublicKeySign.statemachine @@ -0,0 +1 @@ +events sign_evt0 sign_evt1 end state s0 true end state sinit false end transition t0 sinit , sign_evt0 , s0 end transition t1 sinit , sign_evt1 , sinit end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/PublicKeySignFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/PublicKeySignFactory.statemachine new file mode 100644 index 000000000..0ea6c285c --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/PublicKeySignFactory.statemachine @@ -0,0 +1 @@ +events gp0 gp1 end state s0 true end state sinit false end transition t0 sinit , gp0 , s0 end transition t1 sinit , gp1 , sinit end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/PublicKeyVerify.statemachine b/plugins/de.cognicrypt.order.editor/output/PublicKeyVerify.statemachine new file mode 100644 index 000000000..7b24553cb --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/PublicKeyVerify.statemachine @@ -0,0 +1 @@ +events verify_evt0 verify_evt1 end state s0 true end state sinit false end transition t0 sinit , verify_evt0 , s0 end transition t1 sinit , verify_evt1 , sinit end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/PublicKeyVerifyFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/PublicKeyVerifyFactory.statemachine new file mode 100644 index 000000000..0ea6c285c --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/PublicKeyVerifyFactory.statemachine @@ -0,0 +1 @@ +events gp0 gp1 end state s0 true end state sinit false end transition t0 sinit , gp0 , s0 end transition t1 sinit , gp1 , sinit end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/RSADigestSigner.statemachine b/plugins/de.cognicrypt.order.editor/output/RSADigestSigner.statemachine new file mode 100644 index 000000000..2b1c302e7 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/RSADigestSigner.statemachine @@ -0,0 +1 @@ +events c1 Inits1 Updates2 Updates3 Signs c2 Inits6 Updates7 Updates8 Verify end state s7 true end state s2 false end state s1 false end state s0 false end state sinit false end state s6 false end state s5 false end state s4 false end state s3 true end transition t0 sinit , c1 , s0 end transition t1 s0 , Inits1 , s1 end transition t2 s1 , Updates2 , s2 end transition t3 s2 , Updates3 , s2 end transition t4 s2 , Signs , s3 end transition t5 sinit , c2 , s4 end transition t6 s4 , Inits6 , s5 end transition t7 s5 , Updates7 , s6 end transition t8 s6 , Updates8 , s6 end transition t9 s6 , Verify , s7 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/RSAEngine.statemachine b/plugins/de.cognicrypt.order.editor/output/RSAEngine.statemachine new file mode 100644 index 000000000..64180be26 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/RSAEngine.statemachine @@ -0,0 +1 @@ +events c i1 p i3 end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , c , s0 end transition t1 s0 , i1 , s1 end transition t2 s1 , p , s2 end transition t3 s2 , i3 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/RSAKeyGenParameterSpec.statemachine b/plugins/de.cognicrypt.order.editor/output/RSAKeyGenParameterSpec.statemachine new file mode 100644 index 000000000..5257247b4 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/RSAKeyGenParameterSpec.statemachine @@ -0,0 +1 @@ +events c1 end state s0 true end state sinit false end transition t0 sinit , c1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/RSAKeyGenerationParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/RSAKeyGenerationParameters.statemachine new file mode 100644 index 000000000..c51ba93b3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/RSAKeyGenerationParameters.statemachine @@ -0,0 +1 @@ +events c end state s0 true end state sinit false end transition t0 sinit , c , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/RSAKeyPairGenerator.statemachine b/plugins/de.cognicrypt.order.editor/output/RSAKeyPairGenerator.statemachine new file mode 100644 index 000000000..1cef7136b --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/RSAKeyPairGenerator.statemachine @@ -0,0 +1 @@ +events c i1 g i3 end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , c , s0 end transition t1 s0 , i1 , s1 end transition t2 s1 , g , s2 end transition t3 s2 , i3 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/RSAKeyParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/RSAKeyParameters.statemachine new file mode 100644 index 000000000..c51ba93b3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/RSAKeyParameters.statemachine @@ -0,0 +1 @@ +events c end state s0 true end state sinit false end transition t0 sinit , c , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/RSAPrivateCrtKeyParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/RSAPrivateCrtKeyParameters.statemachine new file mode 100644 index 000000000..c51ba93b3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/RSAPrivateCrtKeyParameters.statemachine @@ -0,0 +1 @@ +events c end state s0 true end state sinit false end transition t0 sinit , c , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/SHA256Digest.statemachine b/plugins/de.cognicrypt.order.editor/output/SHA256Digest.statemachine new file mode 100644 index 000000000..8b7b69b52 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/SHA256Digest.statemachine @@ -0,0 +1 @@ +events Cons Updates1 Updates2 Finals Updates4 end state s2 true end state s1 false end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end transition t1 s0 , Updates1 , s1 end transition t2 s1 , Updates2 , s1 end transition t3 s1 , Finals , s2 end transition t4 s2 , Updates4 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/SSLContext.statemachine b/plugins/de.cognicrypt.order.editor/output/SSLContext.statemachine new file mode 100644 index 000000000..9baec8e6f --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/SSLContext.statemachine @@ -0,0 +1 @@ +events Gets Init Engine end state s2 true end state s1 true end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , Init , s1 end transition t2 s1 , Engine , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/SSLEngine.statemachine b/plugins/de.cognicrypt.order.editor/output/SSLEngine.statemachine new file mode 100644 index 000000000..356db597b --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/SSLEngine.statemachine @@ -0,0 +1 @@ +events Con ec1 ep2 ep3 ec4 end state s2 true end state s1 false end state s0 false end state sinit false end state s3 false end transition t0 sinit , Con , s0 end transition t1 s0 , ec1 , s1 end transition t2 s1 , ep2 , s2 end transition t3 s0 , ep3 , s3 end transition t4 s3 , ec4 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/SSLParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/SSLParameters.statemachine new file mode 100644 index 000000000..5ddaf0651 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/SSLParameters.statemachine @@ -0,0 +1 @@ +events C1 CS1 PR2 PR3 CS4 C2 PR6 C3 end state s2 true end state s1 false end state s0 false end state sinit false end state s4 false end state s3 false end transition t0 sinit , C1 , s0 end transition t1 s0 , CS1 , s1 end transition t2 s1 , PR2 , s2 end transition t3 s0 , PR3 , s3 end transition t4 s3 , CS4 , s2 end transition t5 sinit , C2 , s4 end transition t6 s4 , PR6 , s2 end transition t7 sinit , C3 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/SecretKey.statemachine b/plugins/de.cognicrypt.order.editor/output/SecretKey.statemachine new file mode 100644 index 000000000..de8017943 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/SecretKey.statemachine @@ -0,0 +1 @@ +events ge0 ge1 d2 d3 end state s1 true end state s0 true end state sinit true end transition t0 sinit , ge0 , s0 end transition t1 s0 , ge1 , s0 end transition t2 s0 , d2 , s1 end transition t3 sinit , d3 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/SecretKeyFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/SecretKeyFactory.statemachine new file mode 100644 index 000000000..303600f64 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/SecretKeyFactory.statemachine @@ -0,0 +1 @@ +events Gets Gens end state s1 true end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , Gens , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/SecretKeySpec.statemachine b/plugins/de.cognicrypt.order.editor/output/SecretKeySpec.statemachine new file mode 100644 index 000000000..7a35430e3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/SecretKeySpec.statemachine @@ -0,0 +1 @@ +events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/SecureRandom.statemachine b/plugins/de.cognicrypt.order.editor/output/SecureRandom.statemachine new file mode 100644 index 000000000..5ec1f430b --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/SecureRandom.statemachine @@ -0,0 +1 @@ +events Ins Seeds Ends2 Ends3 Ends4 end state s2 true end state s1 true end state s0 true end state sinit false end transition t0 sinit , Ins , s0 end transition t1 s0 , Seeds , s1 end transition t2 s1 , Ends2 , s2 end transition t3 s2 , Ends3 , s2 end transition t4 s0 , Ends4 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/Signature.statemachine b/plugins/de.cognicrypt.order.editor/output/Signature.statemachine new file mode 100644 index 000000000..eb6773f28 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/Signature.statemachine @@ -0,0 +1 @@ +events Gets InitSigns1 InitSigns2 Updates3 Updates4 Signs5 Signs6 Updates7 InitVerifies8 InitVerifies9 Updates10 Updates11 Verifies12 Verifies13 Verifies14 Updates15 end state s2 false end state s1 false end state s0 false end state sinit false end state s6 true end state s5 false end state s4 false end state s3 true end transition t0 sinit , Gets , s0 end transition t1 s0 , InitSigns1 , s1 end transition t2 s1 , InitSigns2 , s1 end transition t3 s1 , Updates3 , s2 end transition t4 s2 , Updates4 , s2 end transition t5 s2 , Signs5 , s3 end transition t6 s3 , Signs6 , s3 end transition t7 s3 , Updates7 , s2 end transition t8 s0 , InitVerifies8 , s4 end transition t9 s4 , InitVerifies9 , s4 end transition t10 s4 , Updates10 , s5 end transition t11 s5 , Updates11 , s5 end transition t12 s5 , Verifies12 , s6 end transition t13 s6 , Verifies13 , s6 end transition t14 s4 , Verifies14 , s6 end transition t15 s6 , Updates15 , s5 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/SignatureKeyTemplates.statemachine b/plugins/de.cognicrypt.order.editor/output/SignatureKeyTemplates.statemachine new file mode 100644 index 000000000..e80b59a84 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/SignatureKeyTemplates.statemachine @@ -0,0 +1 @@ +events ecdsa_evt end state s0 true end state sinit false end transition t0 sinit , ecdsa_evt , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/StreamingAead.statemachine b/plugins/de.cognicrypt.order.editor/output/StreamingAead.statemachine new file mode 100644 index 000000000..ad0b54bd4 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/StreamingAead.statemachine @@ -0,0 +1 @@ +events create_writable_channel_evt create_readable_channel_evt end state s0 true end state sinit false end transition t0 sinit , create_writable_channel_evt , s0 end transition t1 sinit , create_readable_channel_evt , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/StreamingAeadFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/StreamingAeadFactory.statemachine new file mode 100644 index 000000000..bd29bdef3 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/StreamingAeadFactory.statemachine @@ -0,0 +1 @@ +events gp end state s0 true end state sinit false end transition t0 sinit , gp , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/StreamingAeadKeyTemplates.statemachine b/plugins/de.cognicrypt.order.editor/output/StreamingAeadKeyTemplates.statemachine new file mode 100644 index 000000000..31889e648 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/StreamingAeadKeyTemplates.statemachine @@ -0,0 +1 @@ +events CreateKeyTemplates0 CreateKeyTemplates1 end state s0 true end state sinit true end transition t0 sinit , CreateKeyTemplates0 , s0 end transition t1 s0 , CreateKeyTemplates1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/TrustAnchor.statemachine b/plugins/de.cognicrypt.order.editor/output/TrustAnchor.statemachine new file mode 100644 index 000000000..d9e1aa7f0 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/TrustAnchor.statemachine @@ -0,0 +1 @@ +events c1 c2 c3 end state s0 true end state sinit false end transition t0 sinit , c1 , s0 end transition t1 sinit , c2 , s0 end transition t2 sinit , c3 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/TrustManagerFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/TrustManagerFactory.statemachine new file mode 100644 index 000000000..a8193acd6 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/TrustManagerFactory.statemachine @@ -0,0 +1 @@ +events Gets Init gtm end state s2 true end state s1 true end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , Init , s1 end transition t2 s1 , gtm , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/Statemachine.xtextbin b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/Statemachine.xtextbin index 0ab1405da2dfe5e86ee775dc0ae9b58ea2277e98..f5091d3cfe60874fe9e7b8943c327f2c1ca7afe4 100644 GIT binary patch delta 547 zcmZ{h$x^~V5Qgm;W&$LXDIdVHTtEShJGdaW3vNe!fm9K!RKcVwiC*&%o_qqYzJaf1 zPZoiLIZVxT_xJao?w`hI{ae`}J_5T#=a>DOSVAaw;z`ysa1~6^1^wX~NKx|Ckgn@s zG1e4D6uYq(N#3H$4XVUCRGEC%QH~AZ43{`=GQJ?nj+2I=gj-+;iA_?IDG%6!*_KH= z>xtVS1jijpmi=hpD|ak;pE@~&ia31p$jPpj8M)&~KlUQ3({n5z&=6Jd-qhF0+$*<;7K~Q6(X(*;yNd8h^WvCrd@6|G??jfS1|X)Wb4w) XdzgDY{x_&6q8DjW8d=6V-5C4=$*y4? delta 661 zcmY+C*-pYh6ox$=X3Cl%#zb$7aRCLi;sUrJ92eY01((}KiXnlL(CRG@!Ie+ot#9BP z`3#@fN!!)Q| z;2QD5k|zPz$Fwz1djmN6%23bWw8~9WZwXc;Z<|DNyZdgC^p>2`&|8+_quqA@H#XDT zkw&s)Bvk9_rq#5Y9g|_sbCZ{DBAPbrk)>U-6u>-~o3( diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachine.g b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachine.g index 2a53cd067..78b811a42 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachine.g +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachine.g @@ -134,28 +134,9 @@ ruleStatemachine returns [EObject current=null] ( ( { - newCompositeNode(grammarAccess.getStatemachineAccess().getFinalstatesFinalStateParserRuleCall_3_0()); + newCompositeNode(grammarAccess.getStatemachineAccess().getTransitionsTransitionParserRuleCall_3_0()); } - lv_finalstates_5_0=ruleFinalState - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getStatemachineRule()); - } - add( - $current, - "finalstates", - lv_finalstates_5_0, - "de.cognicrypt.order.editor.Statemachine.FinalState"); - afterParserOrEnumRuleCall(); - } - ) - )* - ( - ( - { - newCompositeNode(grammarAccess.getStatemachineAccess().getTransitionsTransitionParserRuleCall_4_0()); - } - lv_transitions_6_0=ruleTransition + lv_transitions_5_0=ruleTransition { if ($current==null) { $current = createModelElementForParent(grammarAccess.getStatemachineRule()); @@ -163,7 +144,7 @@ ruleStatemachine returns [EObject current=null] add( $current, "transitions", - lv_transitions_6_0, + lv_transitions_5_0, "de.cognicrypt.order.editor.Statemachine.Transition"); afterParserOrEnumRuleCall(); } @@ -189,40 +170,20 @@ ruleEvent returns [EObject current=null] }: ( ( - ( - lv_name_0_0=RULE_ID - { - newLeafNode(lv_name_0_0, grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getEventRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_0_0, - "org.eclipse.xtext.xbase.Xtype.ID"); - } - ) - ) - ( - ( - lv_code_1_0=RULE_ID - { - newLeafNode(lv_code_1_0, grammarAccess.getEventAccess().getCodeIDTerminalRuleCall_1_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getEventRule()); - } - setWithLastConsumed( - $current, - "code", - lv_code_1_0, - "org.eclipse.xtext.xbase.Xtype.ID"); + lv_name_0_0=RULE_ID + { + newLeafNode(lv_name_0_0, grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getEventRule()); } - ) + setWithLastConsumed( + $current, + "name", + lv_name_0_0, + "org.eclipse.xtext.xbase.Xtype.ID"); + } ) ) ; @@ -312,51 +273,6 @@ ruleState returns [EObject current=null] ) ; -// Entry rule entryRuleFinalState -entryRuleFinalState returns [EObject current=null]: - { newCompositeNode(grammarAccess.getFinalStateRule()); } - iv_ruleFinalState=ruleFinalState - { $current=$iv_ruleFinalState.current; } - EOF; - -// Rule FinalState -ruleFinalState returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='finalstate' - { - newLeafNode(otherlv_0, grammarAccess.getFinalStateAccess().getFinalstateKeyword_0()); - } - ( - ( - lv_name_1_0=RULE_ID - { - newLeafNode(lv_name_1_0, grammarAccess.getFinalStateAccess().getNameIDTerminalRuleCall_1_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFinalStateRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_1_0, - "org.eclipse.xtext.xbase.Xtype.ID"); - } - ) - ) - otherlv_2='end' - { - newLeafNode(otherlv_2, grammarAccess.getFinalStateAccess().getEndKeyword_2()); - } - ) -; - // Entry rule entryRuleTransition entryRuleTransition returns [EObject current=null]: { newCompositeNode(grammarAccess.getTransitionRule()); } diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachine.tokens b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachine.tokens index 9df37a6c5..58729ff90 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachine.tokens +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachine.tokens @@ -1,27 +1,26 @@ -'&'=28 -'('=20 -')'=21 -'*'=30 -','=17 -'.'=25 -';'=34 -'<'=23 -'=>'=22 -'>'=24 -'?'=26 -'['=18 -']'=19 +'&'=27 +'('=19 +')'=20 +'*'=29 +','=16 +'.'=24 +';'=33 +'<'=22 +'=>'=21 +'>'=23 +'?'=25 +'['=17 +']'=18 'end'=11 'events'=10 -'extends'=27 -'extension'=33 +'extends'=26 +'extension'=32 'false'=14 -'finalstate'=15 -'import'=31 +'import'=30 'state'=12 -'static'=32 -'super'=29 -'transition'=16 +'static'=31 +'super'=28 +'transition'=15 'true'=13 RULE_ANY_OTHER=9 RULE_ID=4 @@ -53,4 +52,3 @@ T__30=30 T__31=31 T__32=32 T__33=33 -T__34=34 diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineLexer.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineLexer.java index 6623fe5a5..17a754aba 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineLexer.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineLexer.java @@ -22,7 +22,6 @@ public class InternalStatemachineLexer extends Lexer { public static final int T__11=11; public static final int T__33=33; public static final int T__12=12; - public static final int T__34=34; public static final int T__13=13; public static final int T__14=14; public static final int EOF=-1; @@ -168,10 +167,10 @@ public final void mT__15() throws RecognitionException { try { int _type = T__15; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:16:7: ( 'finalstate' ) - // InternalStatemachine.g:16:9: 'finalstate' + // InternalStatemachine.g:16:7: ( 'transition' ) + // InternalStatemachine.g:16:9: 'transition' { - match("finalstate"); + match("transition"); } @@ -189,11 +188,10 @@ public final void mT__16() throws RecognitionException { try { int _type = T__16; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:17:7: ( 'transition' ) - // InternalStatemachine.g:17:9: 'transition' + // InternalStatemachine.g:17:7: ( ',' ) + // InternalStatemachine.g:17:9: ',' { - match("transition"); - + match(','); } @@ -210,10 +208,10 @@ public final void mT__17() throws RecognitionException { try { int _type = T__17; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:18:7: ( ',' ) - // InternalStatemachine.g:18:9: ',' + // InternalStatemachine.g:18:7: ( '[' ) + // InternalStatemachine.g:18:9: '[' { - match(','); + match('['); } @@ -230,10 +228,10 @@ public final void mT__18() throws RecognitionException { try { int _type = T__18; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:19:7: ( '[' ) - // InternalStatemachine.g:19:9: '[' + // InternalStatemachine.g:19:7: ( ']' ) + // InternalStatemachine.g:19:9: ']' { - match('['); + match(']'); } @@ -250,10 +248,10 @@ public final void mT__19() throws RecognitionException { try { int _type = T__19; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:20:7: ( ']' ) - // InternalStatemachine.g:20:9: ']' + // InternalStatemachine.g:20:7: ( '(' ) + // InternalStatemachine.g:20:9: '(' { - match(']'); + match('('); } @@ -270,10 +268,10 @@ public final void mT__20() throws RecognitionException { try { int _type = T__20; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:21:7: ( '(' ) - // InternalStatemachine.g:21:9: '(' + // InternalStatemachine.g:21:7: ( ')' ) + // InternalStatemachine.g:21:9: ')' { - match('('); + match(')'); } @@ -290,10 +288,11 @@ public final void mT__21() throws RecognitionException { try { int _type = T__21; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:22:7: ( ')' ) - // InternalStatemachine.g:22:9: ')' + // InternalStatemachine.g:22:7: ( '=>' ) + // InternalStatemachine.g:22:9: '=>' { - match(')'); + match("=>"); + } @@ -310,11 +309,10 @@ public final void mT__22() throws RecognitionException { try { int _type = T__22; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:23:7: ( '=>' ) - // InternalStatemachine.g:23:9: '=>' + // InternalStatemachine.g:23:7: ( '<' ) + // InternalStatemachine.g:23:9: '<' { - match("=>"); - + match('<'); } @@ -331,10 +329,10 @@ public final void mT__23() throws RecognitionException { try { int _type = T__23; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:24:7: ( '<' ) - // InternalStatemachine.g:24:9: '<' + // InternalStatemachine.g:24:7: ( '>' ) + // InternalStatemachine.g:24:9: '>' { - match('<'); + match('>'); } @@ -351,10 +349,10 @@ public final void mT__24() throws RecognitionException { try { int _type = T__24; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:25:7: ( '>' ) - // InternalStatemachine.g:25:9: '>' + // InternalStatemachine.g:25:7: ( '.' ) + // InternalStatemachine.g:25:9: '.' { - match('>'); + match('.'); } @@ -371,10 +369,10 @@ public final void mT__25() throws RecognitionException { try { int _type = T__25; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:26:7: ( '.' ) - // InternalStatemachine.g:26:9: '.' + // InternalStatemachine.g:26:7: ( '?' ) + // InternalStatemachine.g:26:9: '?' { - match('.'); + match('?'); } @@ -391,10 +389,11 @@ public final void mT__26() throws RecognitionException { try { int _type = T__26; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:27:7: ( '?' ) - // InternalStatemachine.g:27:9: '?' + // InternalStatemachine.g:27:7: ( 'extends' ) + // InternalStatemachine.g:27:9: 'extends' { - match('?'); + match("extends"); + } @@ -411,11 +410,10 @@ public final void mT__27() throws RecognitionException { try { int _type = T__27; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:28:7: ( 'extends' ) - // InternalStatemachine.g:28:9: 'extends' + // InternalStatemachine.g:28:7: ( '&' ) + // InternalStatemachine.g:28:9: '&' { - match("extends"); - + match('&'); } @@ -432,10 +430,11 @@ public final void mT__28() throws RecognitionException { try { int _type = T__28; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:29:7: ( '&' ) - // InternalStatemachine.g:29:9: '&' + // InternalStatemachine.g:29:7: ( 'super' ) + // InternalStatemachine.g:29:9: 'super' { - match('&'); + match("super"); + } @@ -452,11 +451,10 @@ public final void mT__29() throws RecognitionException { try { int _type = T__29; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:30:7: ( 'super' ) - // InternalStatemachine.g:30:9: 'super' + // InternalStatemachine.g:30:7: ( '*' ) + // InternalStatemachine.g:30:9: '*' { - match("super"); - + match('*'); } @@ -473,10 +471,11 @@ public final void mT__30() throws RecognitionException { try { int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:31:7: ( '*' ) - // InternalStatemachine.g:31:9: '*' + // InternalStatemachine.g:31:7: ( 'import' ) + // InternalStatemachine.g:31:9: 'import' { - match('*'); + match("import"); + } @@ -493,10 +492,10 @@ public final void mT__31() throws RecognitionException { try { int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:32:7: ( 'import' ) - // InternalStatemachine.g:32:9: 'import' + // InternalStatemachine.g:32:7: ( 'static' ) + // InternalStatemachine.g:32:9: 'static' { - match("import"); + match("static"); } @@ -514,10 +513,10 @@ public final void mT__32() throws RecognitionException { try { int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:33:7: ( 'static' ) - // InternalStatemachine.g:33:9: 'static' + // InternalStatemachine.g:33:7: ( 'extension' ) + // InternalStatemachine.g:33:9: 'extension' { - match("static"); + match("extension"); } @@ -535,29 +534,8 @@ public final void mT__33() throws RecognitionException { try { int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:34:7: ( 'extension' ) - // InternalStatemachine.g:34:9: 'extension' - { - match("extension"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__33" - - // $ANTLR start "T__34" - public final void mT__34() throws RecognitionException { - try { - int _type = T__34; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:35:7: ( ';' ) - // InternalStatemachine.g:35:9: ';' + // InternalStatemachine.g:34:7: ( ';' ) + // InternalStatemachine.g:34:9: ';' { match(';'); @@ -569,17 +547,17 @@ public final void mT__34() throws RecognitionException { finally { } } - // $ANTLR end "T__34" + // $ANTLR end "T__33" // $ANTLR start "RULE_ID" public final void mRULE_ID() throws RecognitionException { try { int _type = RULE_ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:1439:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* ) - // InternalStatemachine.g:1439:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* + // InternalStatemachine.g:1355:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* ) + // InternalStatemachine.g:1355:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* { - // InternalStatemachine.g:1439:11: ( '^' )? + // InternalStatemachine.g:1355:11: ( '^' )? int alt1=2; int LA1_0 = input.LA(1); @@ -588,7 +566,7 @@ public final void mRULE_ID() throws RecognitionException { } switch (alt1) { case 1 : - // InternalStatemachine.g:1439:11: '^' + // InternalStatemachine.g:1355:11: '^' { match('^'); @@ -606,7 +584,7 @@ public final void mRULE_ID() throws RecognitionException { recover(mse); throw mse;} - // InternalStatemachine.g:1439:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* + // InternalStatemachine.g:1355:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* loop2: do { int alt2=2; @@ -655,10 +633,10 @@ public final void mRULE_STRING() throws RecognitionException { try { int _type = RULE_STRING; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:1441:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) ) - // InternalStatemachine.g:1441:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) + // InternalStatemachine.g:1357:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) ) + // InternalStatemachine.g:1357:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) { - // InternalStatemachine.g:1441:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) + // InternalStatemachine.g:1357:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) int alt7=2; int LA7_0 = input.LA(1); @@ -676,10 +654,10 @@ else if ( (LA7_0=='\'') ) { } switch (alt7) { case 1 : - // InternalStatemachine.g:1441:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? + // InternalStatemachine.g:1357:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? { match('\"'); - // InternalStatemachine.g:1441:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* + // InternalStatemachine.g:1357:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* loop3: do { int alt3=3; @@ -695,7 +673,7 @@ else if ( ((LA3_0>='\u0000' && LA3_0<='!')||(LA3_0>='#' && LA3_0<='[')||(LA3_0>= switch (alt3) { case 1 : - // InternalStatemachine.g:1441:21: '\\\\' . + // InternalStatemachine.g:1357:21: '\\\\' . { match('\\'); matchAny(); @@ -703,7 +681,7 @@ else if ( ((LA3_0>='\u0000' && LA3_0<='!')||(LA3_0>='#' && LA3_0<='[')||(LA3_0>= } break; case 2 : - // InternalStatemachine.g:1441:28: ~ ( ( '\\\\' | '\"' ) ) + // InternalStatemachine.g:1357:28: ~ ( ( '\\\\' | '\"' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -723,7 +701,7 @@ else if ( ((LA3_0>='\u0000' && LA3_0<='!')||(LA3_0>='#' && LA3_0<='[')||(LA3_0>= } } while (true); - // InternalStatemachine.g:1441:44: ( '\"' )? + // InternalStatemachine.g:1357:44: ( '\"' )? int alt4=2; int LA4_0 = input.LA(1); @@ -732,7 +710,7 @@ else if ( ((LA3_0>='\u0000' && LA3_0<='!')||(LA3_0>='#' && LA3_0<='[')||(LA3_0>= } switch (alt4) { case 1 : - // InternalStatemachine.g:1441:44: '\"' + // InternalStatemachine.g:1357:44: '\"' { match('\"'); @@ -745,10 +723,10 @@ else if ( ((LA3_0>='\u0000' && LA3_0<='!')||(LA3_0>='#' && LA3_0<='[')||(LA3_0>= } break; case 2 : - // InternalStatemachine.g:1441:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? + // InternalStatemachine.g:1357:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? { match('\''); - // InternalStatemachine.g:1441:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* + // InternalStatemachine.g:1357:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* loop5: do { int alt5=3; @@ -764,7 +742,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= switch (alt5) { case 1 : - // InternalStatemachine.g:1441:55: '\\\\' . + // InternalStatemachine.g:1357:55: '\\\\' . { match('\\'); matchAny(); @@ -772,7 +750,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= } break; case 2 : - // InternalStatemachine.g:1441:62: ~ ( ( '\\\\' | '\\'' ) ) + // InternalStatemachine.g:1357:62: ~ ( ( '\\\\' | '\\'' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -792,7 +770,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= } } while (true); - // InternalStatemachine.g:1441:79: ( '\\'' )? + // InternalStatemachine.g:1357:79: ( '\\'' )? int alt6=2; int LA6_0 = input.LA(1); @@ -801,7 +779,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= } switch (alt6) { case 1 : - // InternalStatemachine.g:1441:79: '\\'' + // InternalStatemachine.g:1357:79: '\\'' { match('\''); @@ -832,12 +810,12 @@ public final void mRULE_ML_COMMENT() throws RecognitionException { try { int _type = RULE_ML_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:1443:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) - // InternalStatemachine.g:1443:19: '/*' ( options {greedy=false; } : . )* '*/' + // InternalStatemachine.g:1359:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // InternalStatemachine.g:1359:19: '/*' ( options {greedy=false; } : . )* '*/' { match("/*"); - // InternalStatemachine.g:1443:24: ( options {greedy=false; } : . )* + // InternalStatemachine.g:1359:24: ( options {greedy=false; } : . )* loop8: do { int alt8=2; @@ -862,7 +840,7 @@ else if ( ((LA8_0>='\u0000' && LA8_0<=')')||(LA8_0>='+' && LA8_0<='\uFFFF')) ) { switch (alt8) { case 1 : - // InternalStatemachine.g:1443:52: . + // InternalStatemachine.g:1359:52: . { matchAny(); @@ -892,12 +870,12 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { try { int _type = RULE_SL_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:1445:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) - // InternalStatemachine.g:1445:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + // InternalStatemachine.g:1361:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // InternalStatemachine.g:1361:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? { match("//"); - // InternalStatemachine.g:1445:24: (~ ( ( '\\n' | '\\r' ) ) )* + // InternalStatemachine.g:1361:24: (~ ( ( '\\n' | '\\r' ) ) )* loop9: do { int alt9=2; @@ -910,7 +888,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { switch (alt9) { case 1 : - // InternalStatemachine.g:1445:24: ~ ( ( '\\n' | '\\r' ) ) + // InternalStatemachine.g:1361: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(); @@ -930,7 +908,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } } while (true); - // InternalStatemachine.g:1445:40: ( ( '\\r' )? '\\n' )? + // InternalStatemachine.g:1361:40: ( ( '\\r' )? '\\n' )? int alt11=2; int LA11_0 = input.LA(1); @@ -939,9 +917,9 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } switch (alt11) { case 1 : - // InternalStatemachine.g:1445:41: ( '\\r' )? '\\n' + // InternalStatemachine.g:1361:41: ( '\\r' )? '\\n' { - // InternalStatemachine.g:1445:41: ( '\\r' )? + // InternalStatemachine.g:1361:41: ( '\\r' )? int alt10=2; int LA10_0 = input.LA(1); @@ -950,7 +928,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } switch (alt10) { case 1 : - // InternalStatemachine.g:1445:41: '\\r' + // InternalStatemachine.g:1361:41: '\\r' { match('\r'); @@ -982,10 +960,10 @@ public final void mRULE_WS() throws RecognitionException { try { int _type = RULE_WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:1447:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) - // InternalStatemachine.g:1447:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // InternalStatemachine.g:1363:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // InternalStatemachine.g:1363:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ { - // InternalStatemachine.g:1447:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // InternalStatemachine.g:1363:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ int cnt12=0; loop12: do { @@ -1039,8 +1017,8 @@ public final void mRULE_ANY_OTHER() throws RecognitionException { try { int _type = RULE_ANY_OTHER; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalStatemachine.g:1449:16: ( . ) - // InternalStatemachine.g:1449:18: . + // InternalStatemachine.g:1365:16: ( . ) + // InternalStatemachine.g:1365:18: . { matchAny(); @@ -1055,8 +1033,8 @@ public final void mRULE_ANY_OTHER() throws RecognitionException { // $ANTLR end "RULE_ANY_OTHER" public void mTokens() throws RecognitionException { - // InternalStatemachine.g:1:8: ( T__10 | 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 | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) - int alt13=31; + // InternalStatemachine.g:1:8: ( T__10 | 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 | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) + int alt13=30; alt13 = dfa13.predict(input); switch (alt13) { case 1 : @@ -1228,49 +1206,42 @@ public void mTokens() throws RecognitionException { } break; case 25 : - // InternalStatemachine.g:1:154: T__34 - { - mT__34(); - - } - break; - case 26 : - // InternalStatemachine.g:1:160: RULE_ID + // InternalStatemachine.g:1:154: RULE_ID { mRULE_ID(); } break; - case 27 : - // InternalStatemachine.g:1:168: RULE_STRING + case 26 : + // InternalStatemachine.g:1:162: RULE_STRING { mRULE_STRING(); } break; - case 28 : - // InternalStatemachine.g:1:180: RULE_ML_COMMENT + case 27 : + // InternalStatemachine.g:1:174: RULE_ML_COMMENT { mRULE_ML_COMMENT(); } break; - case 29 : - // InternalStatemachine.g:1:196: RULE_SL_COMMENT + case 28 : + // InternalStatemachine.g:1:190: RULE_SL_COMMENT { mRULE_SL_COMMENT(); } break; - case 30 : - // InternalStatemachine.g:1:212: RULE_WS + case 29 : + // InternalStatemachine.g:1:206: RULE_WS { mRULE_WS(); } break; - case 31 : - // InternalStatemachine.g:1:220: RULE_ANY_OTHER + case 30 : + // InternalStatemachine.g:1:214: RULE_ANY_OTHER { mRULE_ANY_OTHER(); @@ -1284,53 +1255,52 @@ public void mTokens() throws RecognitionException { protected DFA13 dfa13 = new DFA13(this); static final String DFA13_eotS = - "\1\uffff\4\35\5\uffff\1\31\6\uffff\1\35\1\uffff\1\31\3\uffff\1\31\2\uffff\3\35\1\uffff\5\35\14\uffff\1\35\5\uffff\1\35\1\100\11\35\1\uffff\3\35\1\116\6\35\1\126\1\35\1\130\1\uffff\1\35\1\132\2\35\1\135\2\35\1\uffff\1\140\1\uffff\1\35\1\uffff\1\35\1\143\1\uffff\1\144\1\35\1\uffff\2\35\2\uffff\3\35\1\153\2\35\1\uffff\1\156\1\157\2\uffff"; + "\1\uffff\4\35\5\uffff\1\31\6\uffff\1\35\1\uffff\1\31\3\uffff\1\31\2\uffff\3\35\1\uffff\4\35\14\uffff\1\35\5\uffff\1\35\1\76\10\35\1\uffff\3\35\1\113\5\35\1\122\1\35\1\124\1\uffff\1\35\1\126\1\35\1\130\2\35\1\uffff\1\133\1\uffff\1\35\1\uffff\1\135\1\uffff\1\136\1\35\1\uffff\1\35\2\uffff\2\35\1\143\1\35\1\uffff\1\145\1\uffff"; static final String DFA13_eofS = - "\160\uffff"; + "\146\uffff"; static final String DFA13_minS = - "\1\0\1\156\1\164\1\162\1\141\5\uffff\1\76\6\uffff\1\155\1\uffff\1\44\3\uffff\1\52\2\uffff\1\145\1\144\1\164\1\uffff\1\141\1\160\1\141\1\154\1\156\14\uffff\1\160\5\uffff\1\156\1\44\1\145\1\164\2\145\1\156\1\163\1\141\1\157\1\164\1\uffff\1\156\1\145\1\162\1\44\1\163\1\145\1\154\1\162\1\163\1\144\1\44\1\143\1\44\1\uffff\1\151\1\44\1\163\1\164\1\44\1\163\1\151\1\uffff\1\44\1\uffff\1\164\1\uffff\1\164\1\44\1\uffff\1\44\1\157\1\uffff\1\151\1\141\2\uffff\1\156\1\157\1\164\1\44\1\156\1\145\1\uffff\2\44\2\uffff"; + "\1\0\1\156\1\164\1\162\1\141\5\uffff\1\76\6\uffff\1\155\1\uffff\1\44\3\uffff\1\52\2\uffff\1\145\1\144\1\164\1\uffff\1\141\1\160\1\141\1\154\14\uffff\1\160\5\uffff\1\156\1\44\1\145\1\164\2\145\1\156\1\163\1\157\1\164\1\uffff\1\156\1\145\1\162\1\44\1\163\1\145\1\162\1\163\1\144\1\44\1\143\1\44\1\uffff\1\151\1\44\1\164\1\44\1\163\1\151\1\uffff\1\44\1\uffff\1\164\1\uffff\1\44\1\uffff\1\44\1\157\1\uffff\1\151\2\uffff\1\156\1\157\1\44\1\156\1\uffff\1\44\1\uffff"; static final String DFA13_maxS = - "\1\uffff\1\170\1\165\1\162\1\151\5\uffff\1\76\6\uffff\1\155\1\uffff\1\172\3\uffff\1\57\2\uffff\1\145\1\144\1\164\1\uffff\1\141\1\160\1\165\1\154\1\156\14\uffff\1\160\5\uffff\1\156\1\172\1\145\1\164\2\145\1\156\1\163\1\141\1\157\1\164\1\uffff\1\156\1\151\1\162\1\172\1\163\1\145\1\154\1\162\2\163\1\172\1\143\1\172\1\uffff\1\151\1\172\1\163\1\164\1\172\1\163\1\151\1\uffff\1\172\1\uffff\1\164\1\uffff\1\164\1\172\1\uffff\1\172\1\157\1\uffff\1\151\1\141\2\uffff\1\156\1\157\1\164\1\172\1\156\1\145\1\uffff\2\172\2\uffff"; + "\1\uffff\1\170\1\165\1\162\1\141\5\uffff\1\76\6\uffff\1\155\1\uffff\1\172\3\uffff\1\57\2\uffff\1\145\1\144\1\164\1\uffff\1\141\1\160\1\165\1\154\14\uffff\1\160\5\uffff\1\156\1\172\1\145\1\164\2\145\1\156\1\163\1\157\1\164\1\uffff\1\156\1\151\1\162\1\172\1\163\1\145\1\162\2\163\1\172\1\143\1\172\1\uffff\1\151\1\172\1\164\1\172\1\163\1\151\1\uffff\1\172\1\uffff\1\164\1\uffff\1\172\1\uffff\1\172\1\157\1\uffff\1\151\2\uffff\1\156\1\157\1\172\1\156\1\uffff\1\172\1\uffff"; static final String DFA13_acceptS = - "\5\uffff\1\10\1\11\1\12\1\13\1\14\1\uffff\1\16\1\17\1\20\1\21\1\23\1\25\1\uffff\1\31\1\uffff\1\32\2\33\1\uffff\1\36\1\37\3\uffff\1\32\5\uffff\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\23\1\25\1\uffff\1\31\1\33\1\34\1\35\1\36\13\uffff\1\2\15\uffff\1\4\7\uffff\1\3\1\uffff\1\24\1\uffff\1\5\2\uffff\1\1\2\uffff\1\27\2\uffff\1\26\1\22\6\uffff\1\30\2\uffff\1\7\1\6"; + "\5\uffff\1\7\1\10\1\11\1\12\1\13\1\uffff\1\15\1\16\1\17\1\20\1\22\1\24\1\uffff\1\30\1\uffff\1\31\2\32\1\uffff\1\35\1\36\3\uffff\1\31\4\uffff\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\22\1\24\1\uffff\1\30\1\32\1\33\1\34\1\35\12\uffff\1\2\14\uffff\1\4\6\uffff\1\3\1\uffff\1\23\1\uffff\1\5\1\uffff\1\1\2\uffff\1\26\1\uffff\1\25\1\21\4\uffff\1\27\1\uffff\1\6"; static final String DFA13_specialS = - "\1\0\157\uffff}>"; + "\1\0\145\uffff}>"; static final String[] DFA13_transitionS = { "\11\31\2\30\2\31\1\30\22\31\1\30\1\31\1\25\1\31\1\24\1\31\1\17\1\26\1\10\1\11\1\20\1\31\1\5\1\31\1\15\1\27\13\31\1\22\1\13\1\12\1\14\1\16\1\31\32\24\1\6\1\31\1\7\1\23\1\24\1\31\4\24\1\1\1\4\2\24\1\21\11\24\1\2\1\3\6\24\uff85\31", "\1\33\7\uffff\1\32\1\uffff\1\34", "\1\36\1\37", "\1\40", - "\1\41\7\uffff\1\42", + "\1\41", "", "", "", "", "", - "\1\50", + "\1\47", "", "", "", "", "", "", - "\1\57", + "\1\56", "", "\1\35\34\uffff\32\35\4\uffff\1\35\1\uffff\32\35", "", "", "", - "\1\62\4\uffff\1\63", + "\1\61\4\uffff\1\62", "", "", + "\1\64", "\1\65", "\1\66", - "\1\67", "", + "\1\67", "\1\70", - "\1\71", - "\1\73\23\uffff\1\72", - "\1\74", - "\1\75", + "\1\72\23\uffff\1\71", + "\1\73", "", "", "", @@ -1343,70 +1313,61 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\76", + "\1\74", "", "", "", "", "", - "\1\77", + "\1\75", "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", + "\1\77", + "\1\100", "\1\101", "\1\102", "\1\103", "\1\104", "\1\105", "\1\106", - "\1\107", - "\1\110", - "\1\111", "", + "\1\107", + "\1\110\3\uffff\1\111", "\1\112", - "\1\113\3\uffff\1\114", - "\1\115", "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", + "\1\114", + "\1\115", + "\1\116", "\1\117", - "\1\120", - "\1\121", - "\1\122", - "\1\123", - "\1\124\16\uffff\1\125", + "\1\120\16\uffff\1\121", "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", - "\1\127", + "\1\123", "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", "", - "\1\131", + "\1\125", "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", - "\1\133", - "\1\134", + "\1\127", "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", - "\1\136", - "\1\137", + "\1\131", + "\1\132", "", "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", "", - "\1\141", + "\1\134", "", - "\1\142", "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", "", "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", - "\1\145", + "\1\137", "", - "\1\146", - "\1\147", + "\1\140", "", "", - "\1\150", - "\1\151", - "\1\152", + "\1\141", + "\1\142", "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", - "\1\154", - "\1\155", + "\1\144", "", "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", - "\1\35\13\uffff\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35", - "", "" }; @@ -1440,7 +1401,7 @@ public DFA13(BaseRecognizer recognizer) { this.transition = DFA13_transition; } public String getDescription() { - return "1:1: Tokens : ( T__10 | 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 | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; + return "1:1: Tokens : ( T__10 | 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 | RULE_ID | 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; diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineParser.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineParser.java index 3a1c21288..041c4ea5a 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineParser.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/parser/antlr/internal/InternalStatemachineParser.java @@ -22,7 +22,7 @@ @SuppressWarnings("all") public class InternalStatemachineParser extends AbstractInternalAntlrParser { public static final String[] tokenNames = new String[] { - "", "", "", "", "RULE_ID", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'events'", "'end'", "'state'", "'true'", "'false'", "'finalstate'", "'transition'", "','", "'['", "']'", "'('", "')'", "'=>'", "'<'", "'>'", "'.'", "'?'", "'extends'", "'&'", "'super'", "'*'", "'import'", "'static'", "'extension'", "';'" + "", "", "", "", "RULE_ID", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'events'", "'end'", "'state'", "'true'", "'false'", "'transition'", "','", "'['", "']'", "'('", "')'", "'=>'", "'<'", "'>'", "'.'", "'?'", "'extends'", "'&'", "'super'", "'*'", "'import'", "'static'", "'extension'", "';'" }; public static final int RULE_STRING=5; public static final int RULE_SL_COMMENT=7; @@ -34,7 +34,6 @@ public class InternalStatemachineParser extends AbstractInternalAntlrParser { public static final int T__11=11; public static final int T__33=33; public static final int T__12=12; - public static final int T__34=34; public static final int T__13=13; public static final int T__14=14; public static final int EOF=-1; @@ -137,7 +136,7 @@ public final EObject entryRuleStatemachine() throws RecognitionException { // $ANTLR start "ruleStatemachine" - // InternalStatemachine.g:71:1: ruleStatemachine returns [EObject current=null] : ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_finalstates_5_0= ruleFinalState ) )* ( (lv_transitions_6_0= ruleTransition ) )* ) ; + // InternalStatemachine.g:71:1: ruleStatemachine returns [EObject current=null] : ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_transitions_5_0= ruleTransition ) )* ) ; public final EObject ruleStatemachine() throws RecognitionException { EObject current = null; @@ -147,20 +146,18 @@ public final EObject ruleStatemachine() throws RecognitionException { EObject lv_states_4_0 = null; - EObject lv_finalstates_5_0 = null; - - EObject lv_transitions_6_0 = null; + EObject lv_transitions_5_0 = null; enterRule(); try { - // InternalStatemachine.g:77:2: ( ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_finalstates_5_0= ruleFinalState ) )* ( (lv_transitions_6_0= ruleTransition ) )* ) ) - // InternalStatemachine.g:78:2: ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_finalstates_5_0= ruleFinalState ) )* ( (lv_transitions_6_0= ruleTransition ) )* ) + // InternalStatemachine.g:77:2: ( ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_transitions_5_0= ruleTransition ) )* ) ) + // InternalStatemachine.g:78:2: ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_transitions_5_0= ruleTransition ) )* ) { - // InternalStatemachine.g:78:2: ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_finalstates_5_0= ruleFinalState ) )* ( (lv_transitions_6_0= ruleTransition ) )* ) - // InternalStatemachine.g:79:3: () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_finalstates_5_0= ruleFinalState ) )* ( (lv_transitions_6_0= ruleTransition ) )* + // InternalStatemachine.g:78:2: ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_transitions_5_0= ruleTransition ) )* ) + // InternalStatemachine.g:79:3: () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? ( (lv_states_4_0= ruleState ) )* ( (lv_transitions_5_0= ruleTransition ) )* { // InternalStatemachine.g:79:3: () // InternalStatemachine.g:80:4: @@ -316,7 +313,7 @@ public final EObject ruleStatemachine() throws RecognitionException { } } while (true); - // InternalStatemachine.g:134:3: ( (lv_finalstates_5_0= ruleFinalState ) )* + // InternalStatemachine.g:134:3: ( (lv_transitions_5_0= ruleTransition ) )* loop4: do { int alt4=2; @@ -329,71 +326,18 @@ public final EObject ruleStatemachine() throws RecognitionException { switch (alt4) { case 1 : - // InternalStatemachine.g:135:4: (lv_finalstates_5_0= ruleFinalState ) + // InternalStatemachine.g:135:4: (lv_transitions_5_0= ruleTransition ) { - // InternalStatemachine.g:135:4: (lv_finalstates_5_0= ruleFinalState ) - // InternalStatemachine.g:136:5: lv_finalstates_5_0= ruleFinalState + // InternalStatemachine.g:135:4: (lv_transitions_5_0= ruleTransition ) + // InternalStatemachine.g:136:5: lv_transitions_5_0= ruleTransition { if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getStatemachineAccess().getFinalstatesFinalStateParserRuleCall_3_0()); + newCompositeNode(grammarAccess.getStatemachineAccess().getTransitionsTransitionParserRuleCall_3_0()); } pushFollow(FOLLOW_6); - lv_finalstates_5_0=ruleFinalState(); - - state._fsp--; - if (state.failed) return current; - if ( state.backtracking==0 ) { - - if (current==null) { - current = createModelElementForParent(grammarAccess.getStatemachineRule()); - } - add( - current, - "finalstates", - lv_finalstates_5_0, - "de.cognicrypt.order.editor.Statemachine.FinalState"); - afterParserOrEnumRuleCall(); - - } - - } - - - } - break; - - default : - break loop4; - } - } while (true); - - // InternalStatemachine.g:153:3: ( (lv_transitions_6_0= ruleTransition ) )* - loop5: - do { - int alt5=2; - int LA5_0 = input.LA(1); - - if ( (LA5_0==16) ) { - alt5=1; - } - - - switch (alt5) { - case 1 : - // InternalStatemachine.g:154:4: (lv_transitions_6_0= ruleTransition ) - { - // InternalStatemachine.g:154:4: (lv_transitions_6_0= ruleTransition ) - // InternalStatemachine.g:155:5: lv_transitions_6_0= ruleTransition - { - if ( state.backtracking==0 ) { - - newCompositeNode(grammarAccess.getStatemachineAccess().getTransitionsTransitionParserRuleCall_4_0()); - - } - pushFollow(FOLLOW_7); - lv_transitions_6_0=ruleTransition(); + lv_transitions_5_0=ruleTransition(); state._fsp--; if (state.failed) return current; @@ -405,7 +349,7 @@ public final EObject ruleStatemachine() throws RecognitionException { add( current, "transitions", - lv_transitions_6_0, + lv_transitions_5_0, "de.cognicrypt.order.editor.Statemachine.Transition"); afterParserOrEnumRuleCall(); @@ -418,7 +362,7 @@ public final EObject ruleStatemachine() throws RecognitionException { break; default : - break loop5; + break loop4; } } while (true); @@ -447,7 +391,7 @@ public final EObject ruleStatemachine() throws RecognitionException { // $ANTLR start "entryRuleEvent" - // InternalStatemachine.g:176:1: entryRuleEvent returns [EObject current=null] : iv_ruleEvent= ruleEvent EOF ; + // InternalStatemachine.g:157:1: entryRuleEvent returns [EObject current=null] : iv_ruleEvent= ruleEvent EOF ; public final EObject entryRuleEvent() throws RecognitionException { EObject current = null; @@ -455,8 +399,8 @@ public final EObject entryRuleEvent() throws RecognitionException { try { - // InternalStatemachine.g:176:46: (iv_ruleEvent= ruleEvent EOF ) - // InternalStatemachine.g:177:2: iv_ruleEvent= ruleEvent EOF + // InternalStatemachine.g:157:46: (iv_ruleEvent= ruleEvent EOF ) + // InternalStatemachine.g:158:2: iv_ruleEvent= ruleEvent EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getEventRule()); @@ -487,76 +431,42 @@ public final EObject entryRuleEvent() throws RecognitionException { // $ANTLR start "ruleEvent" - // InternalStatemachine.g:183:1: ruleEvent returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) ; + // InternalStatemachine.g:164:1: ruleEvent returns [EObject current=null] : ( (lv_name_0_0= RULE_ID ) ) ; public final EObject ruleEvent() throws RecognitionException { EObject current = null; Token lv_name_0_0=null; - Token lv_code_1_0=null; enterRule(); try { - // InternalStatemachine.g:189:2: ( ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) ) - // InternalStatemachine.g:190:2: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) - { - // InternalStatemachine.g:190:2: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) - // InternalStatemachine.g:191:3: ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) - { - // InternalStatemachine.g:191:3: ( (lv_name_0_0= RULE_ID ) ) - // InternalStatemachine.g:192:4: (lv_name_0_0= RULE_ID ) + // InternalStatemachine.g:170:2: ( ( (lv_name_0_0= RULE_ID ) ) ) + // InternalStatemachine.g:171:2: ( (lv_name_0_0= RULE_ID ) ) { - // InternalStatemachine.g:192:4: (lv_name_0_0= RULE_ID ) - // InternalStatemachine.g:193:5: lv_name_0_0= RULE_ID - { - lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_3); if (state.failed) return current; - if ( state.backtracking==0 ) { - - newLeafNode(lv_name_0_0, grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0_0()); - - } - if ( state.backtracking==0 ) { - - if (current==null) { - current = createModelElement(grammarAccess.getEventRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_0_0, - "org.eclipse.xtext.xbase.Xtype.ID"); - - } - - } - - - } - - // InternalStatemachine.g:209:3: ( (lv_code_1_0= RULE_ID ) ) - // InternalStatemachine.g:210:4: (lv_code_1_0= RULE_ID ) + // InternalStatemachine.g:171:2: ( (lv_name_0_0= RULE_ID ) ) + // InternalStatemachine.g:172:3: (lv_name_0_0= RULE_ID ) { - // InternalStatemachine.g:210:4: (lv_code_1_0= RULE_ID ) - // InternalStatemachine.g:211:5: lv_code_1_0= RULE_ID + // InternalStatemachine.g:172:3: (lv_name_0_0= RULE_ID ) + // InternalStatemachine.g:173:4: lv_name_0_0= RULE_ID { - lv_code_1_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current; + lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current; if ( state.backtracking==0 ) { - newLeafNode(lv_code_1_0, grammarAccess.getEventAccess().getCodeIDTerminalRuleCall_1_0()); - + newLeafNode(lv_name_0_0, grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0()); + } if ( state.backtracking==0 ) { - if (current==null) { - current = createModelElement(grammarAccess.getEventRule()); - } - setWithLastConsumed( - current, - "code", - lv_code_1_0, - "org.eclipse.xtext.xbase.Xtype.ID"); - + if (current==null) { + current = createModelElement(grammarAccess.getEventRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_0_0, + "org.eclipse.xtext.xbase.Xtype.ID"); + } } @@ -565,9 +475,6 @@ public final EObject ruleEvent() throws RecognitionException { } - } - - } if ( state.backtracking==0 ) { @@ -589,7 +496,7 @@ public final EObject ruleEvent() throws RecognitionException { // $ANTLR start "entryRuleState" - // InternalStatemachine.g:231:1: entryRuleState returns [EObject current=null] : iv_ruleState= ruleState EOF ; + // InternalStatemachine.g:192:1: entryRuleState returns [EObject current=null] : iv_ruleState= ruleState EOF ; public final EObject entryRuleState() throws RecognitionException { EObject current = null; @@ -597,8 +504,8 @@ public final EObject entryRuleState() throws RecognitionException { try { - // InternalStatemachine.g:231:46: (iv_ruleState= ruleState EOF ) - // InternalStatemachine.g:232:2: iv_ruleState= ruleState EOF + // InternalStatemachine.g:192:46: (iv_ruleState= ruleState EOF ) + // InternalStatemachine.g:193:2: iv_ruleState= ruleState EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getStateRule()); @@ -629,7 +536,7 @@ public final EObject entryRuleState() throws RecognitionException { // $ANTLR start "ruleState" - // InternalStatemachine.g:238:1: ruleState returns [EObject current=null] : (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_isFinal_2_0= 'true' ) ) | otherlv_3= 'false' ) ( (lv_transitions_4_0= ruleTransition ) )* otherlv_5= 'end' ) ; + // InternalStatemachine.g:199:1: ruleState returns [EObject current=null] : (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_isFinal_2_0= 'true' ) ) | otherlv_3= 'false' ) ( (lv_transitions_4_0= ruleTransition ) )* otherlv_5= 'end' ) ; public final EObject ruleState() throws RecognitionException { EObject current = null; @@ -645,11 +552,11 @@ public final EObject ruleState() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:244:2: ( (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_isFinal_2_0= 'true' ) ) | otherlv_3= 'false' ) ( (lv_transitions_4_0= ruleTransition ) )* otherlv_5= 'end' ) ) - // InternalStatemachine.g:245:2: (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_isFinal_2_0= 'true' ) ) | otherlv_3= 'false' ) ( (lv_transitions_4_0= ruleTransition ) )* otherlv_5= 'end' ) + // InternalStatemachine.g:205:2: ( (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_isFinal_2_0= 'true' ) ) | otherlv_3= 'false' ) ( (lv_transitions_4_0= ruleTransition ) )* otherlv_5= 'end' ) ) + // InternalStatemachine.g:206:2: (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_isFinal_2_0= 'true' ) ) | otherlv_3= 'false' ) ( (lv_transitions_4_0= ruleTransition ) )* otherlv_5= 'end' ) { - // InternalStatemachine.g:245:2: (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_isFinal_2_0= 'true' ) ) | otherlv_3= 'false' ) ( (lv_transitions_4_0= ruleTransition ) )* otherlv_5= 'end' ) - // InternalStatemachine.g:246:3: otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_isFinal_2_0= 'true' ) ) | otherlv_3= 'false' ) ( (lv_transitions_4_0= ruleTransition ) )* otherlv_5= 'end' + // InternalStatemachine.g:206:2: (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_isFinal_2_0= 'true' ) ) | otherlv_3= 'false' ) ( (lv_transitions_4_0= ruleTransition ) )* otherlv_5= 'end' ) + // InternalStatemachine.g:207:3: otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_isFinal_2_0= 'true' ) ) | otherlv_3= 'false' ) ( (lv_transitions_4_0= ruleTransition ) )* otherlv_5= 'end' { otherlv_0=(Token)match(input,12,FOLLOW_3); if (state.failed) return current; if ( state.backtracking==0 ) { @@ -657,13 +564,13 @@ public final EObject ruleState() throws RecognitionException { newLeafNode(otherlv_0, grammarAccess.getStateAccess().getStateKeyword_0()); } - // InternalStatemachine.g:250:3: ( (lv_name_1_0= RULE_ID ) ) - // InternalStatemachine.g:251:4: (lv_name_1_0= RULE_ID ) + // InternalStatemachine.g:211:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalStatemachine.g:212:4: (lv_name_1_0= RULE_ID ) { - // InternalStatemachine.g:251:4: (lv_name_1_0= RULE_ID ) - // InternalStatemachine.g:252:5: lv_name_1_0= RULE_ID + // InternalStatemachine.g:212:4: (lv_name_1_0= RULE_ID ) + // InternalStatemachine.g:213:5: lv_name_1_0= RULE_ID { - lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_8); if (state.failed) return current; + lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_7); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(lv_name_1_0, grammarAccess.getStateAccess().getNameIDTerminalRuleCall_1_0()); @@ -687,34 +594,34 @@ public final EObject ruleState() throws RecognitionException { } - // InternalStatemachine.g:268:3: ( ( (lv_isFinal_2_0= 'true' ) ) | otherlv_3= 'false' ) - int alt6=2; - int LA6_0 = input.LA(1); + // InternalStatemachine.g:229:3: ( ( (lv_isFinal_2_0= 'true' ) ) | otherlv_3= 'false' ) + int alt5=2; + int LA5_0 = input.LA(1); - if ( (LA6_0==13) ) { - alt6=1; + if ( (LA5_0==13) ) { + alt5=1; } - else if ( (LA6_0==14) ) { - alt6=2; + else if ( (LA5_0==14) ) { + alt5=2; } else { if (state.backtracking>0) {state.failed=true; return current;} NoViableAltException nvae = - new NoViableAltException("", 6, 0, input); + new NoViableAltException("", 5, 0, input); throw nvae; } - switch (alt6) { + switch (alt5) { case 1 : - // InternalStatemachine.g:269:4: ( (lv_isFinal_2_0= 'true' ) ) + // InternalStatemachine.g:230:4: ( (lv_isFinal_2_0= 'true' ) ) { - // InternalStatemachine.g:269:4: ( (lv_isFinal_2_0= 'true' ) ) - // InternalStatemachine.g:270:5: (lv_isFinal_2_0= 'true' ) + // InternalStatemachine.g:230:4: ( (lv_isFinal_2_0= 'true' ) ) + // InternalStatemachine.g:231:5: (lv_isFinal_2_0= 'true' ) { - // InternalStatemachine.g:270:5: (lv_isFinal_2_0= 'true' ) - // InternalStatemachine.g:271:6: lv_isFinal_2_0= 'true' + // InternalStatemachine.g:231:5: (lv_isFinal_2_0= 'true' ) + // InternalStatemachine.g:232:6: lv_isFinal_2_0= 'true' { - lv_isFinal_2_0=(Token)match(input,13,FOLLOW_9); if (state.failed) return current; + lv_isFinal_2_0=(Token)match(input,13,FOLLOW_8); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(lv_isFinal_2_0, grammarAccess.getStateAccess().getIsFinalTrueKeyword_2_0_0()); @@ -738,9 +645,9 @@ else if ( (LA6_0==14) ) { } break; case 2 : - // InternalStatemachine.g:284:4: otherlv_3= 'false' + // InternalStatemachine.g:245:4: otherlv_3= 'false' { - otherlv_3=(Token)match(input,14,FOLLOW_9); if (state.failed) return current; + otherlv_3=(Token)match(input,14,FOLLOW_8); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_3, grammarAccess.getStateAccess().getFalseKeyword_2_1()); @@ -752,30 +659,30 @@ else if ( (LA6_0==14) ) { } - // InternalStatemachine.g:289:3: ( (lv_transitions_4_0= ruleTransition ) )* - loop7: + // InternalStatemachine.g:250:3: ( (lv_transitions_4_0= ruleTransition ) )* + loop6: do { - int alt7=2; - int LA7_0 = input.LA(1); + int alt6=2; + int LA6_0 = input.LA(1); - if ( (LA7_0==16) ) { - alt7=1; + if ( (LA6_0==15) ) { + alt6=1; } - switch (alt7) { + switch (alt6) { case 1 : - // InternalStatemachine.g:290:4: (lv_transitions_4_0= ruleTransition ) + // InternalStatemachine.g:251:4: (lv_transitions_4_0= ruleTransition ) { - // InternalStatemachine.g:290:4: (lv_transitions_4_0= ruleTransition ) - // InternalStatemachine.g:291:5: lv_transitions_4_0= ruleTransition + // InternalStatemachine.g:251:4: (lv_transitions_4_0= ruleTransition ) + // InternalStatemachine.g:252:5: lv_transitions_4_0= ruleTransition { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getStateAccess().getTransitionsTransitionParserRuleCall_3_0()); } - pushFollow(FOLLOW_9); + pushFollow(FOLLOW_8); lv_transitions_4_0=ruleTransition(); state._fsp--; @@ -801,7 +708,7 @@ else if ( (LA6_0==14) ) { break; default : - break loop7; + break loop6; } } while (true); @@ -835,133 +742,8 @@ else if ( (LA6_0==14) ) { // $ANTLR end "ruleState" - // $ANTLR start "entryRuleFinalState" - // InternalStatemachine.g:316:1: entryRuleFinalState returns [EObject current=null] : iv_ruleFinalState= ruleFinalState EOF ; - public final EObject entryRuleFinalState() throws RecognitionException { - EObject current = null; - - EObject iv_ruleFinalState = null; - - - try { - // InternalStatemachine.g:316:51: (iv_ruleFinalState= ruleFinalState EOF ) - // InternalStatemachine.g:317:2: iv_ruleFinalState= ruleFinalState EOF - { - if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getFinalStateRule()); - } - pushFollow(FOLLOW_1); - iv_ruleFinalState=ruleFinalState(); - - state._fsp--; - if (state.failed) return current; - if ( state.backtracking==0 ) { - current =iv_ruleFinalState; - } - match(input,EOF,FOLLOW_2); if (state.failed) return current; - - } - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleFinalState" - - - // $ANTLR start "ruleFinalState" - // InternalStatemachine.g:323:1: ruleFinalState returns [EObject current=null] : (otherlv_0= 'finalstate' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'end' ) ; - public final EObject ruleFinalState() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - Token lv_name_1_0=null; - Token otherlv_2=null; - - - enterRule(); - - try { - // InternalStatemachine.g:329:2: ( (otherlv_0= 'finalstate' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'end' ) ) - // InternalStatemachine.g:330:2: (otherlv_0= 'finalstate' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'end' ) - { - // InternalStatemachine.g:330:2: (otherlv_0= 'finalstate' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'end' ) - // InternalStatemachine.g:331:3: otherlv_0= 'finalstate' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'end' - { - otherlv_0=(Token)match(input,15,FOLLOW_3); if (state.failed) return current; - if ( state.backtracking==0 ) { - - newLeafNode(otherlv_0, grammarAccess.getFinalStateAccess().getFinalstateKeyword_0()); - - } - // InternalStatemachine.g:335:3: ( (lv_name_1_0= RULE_ID ) ) - // InternalStatemachine.g:336:4: (lv_name_1_0= RULE_ID ) - { - // InternalStatemachine.g:336:4: (lv_name_1_0= RULE_ID ) - // InternalStatemachine.g:337:5: lv_name_1_0= RULE_ID - { - lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_10); if (state.failed) return current; - if ( state.backtracking==0 ) { - - newLeafNode(lv_name_1_0, grammarAccess.getFinalStateAccess().getNameIDTerminalRuleCall_1_0()); - - } - if ( state.backtracking==0 ) { - - if (current==null) { - current = createModelElement(grammarAccess.getFinalStateRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_1_0, - "org.eclipse.xtext.xbase.Xtype.ID"); - - } - - } - - - } - - otherlv_2=(Token)match(input,11,FOLLOW_2); if (state.failed) return current; - if ( state.backtracking==0 ) { - - newLeafNode(otherlv_2, grammarAccess.getFinalStateAccess().getEndKeyword_2()); - - } - - } - - - } - - if ( state.backtracking==0 ) { - - leaveRule(); - - } - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleFinalState" - - // $ANTLR start "entryRuleTransition" - // InternalStatemachine.g:361:1: entryRuleTransition returns [EObject current=null] : iv_ruleTransition= ruleTransition EOF ; + // InternalStatemachine.g:277:1: entryRuleTransition returns [EObject current=null] : iv_ruleTransition= ruleTransition EOF ; public final EObject entryRuleTransition() throws RecognitionException { EObject current = null; @@ -969,8 +751,8 @@ public final EObject entryRuleTransition() throws RecognitionException { try { - // InternalStatemachine.g:361:51: (iv_ruleTransition= ruleTransition EOF ) - // InternalStatemachine.g:362:2: iv_ruleTransition= ruleTransition EOF + // InternalStatemachine.g:277:51: (iv_ruleTransition= ruleTransition EOF ) + // InternalStatemachine.g:278:2: iv_ruleTransition= ruleTransition EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getTransitionRule()); @@ -1001,7 +783,7 @@ public final EObject entryRuleTransition() throws RecognitionException { // $ANTLR start "ruleTransition" - // InternalStatemachine.g:368:1: ruleTransition returns [EObject current=null] : (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) ; + // InternalStatemachine.g:284:1: ruleTransition returns [EObject current=null] : (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) ; public final EObject ruleTransition() throws RecognitionException { EObject current = null; @@ -1018,23 +800,23 @@ public final EObject ruleTransition() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:374:2: ( (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) ) - // InternalStatemachine.g:375:2: (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) + // InternalStatemachine.g:290:2: ( (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) ) + // InternalStatemachine.g:291:2: (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) { - // InternalStatemachine.g:375:2: (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) - // InternalStatemachine.g:376:3: otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' + // InternalStatemachine.g:291:2: (otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' ) + // InternalStatemachine.g:292:3: otherlv_0= 'transition' ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= RULE_ID ) ) otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) otherlv_5= ',' ( (otherlv_6= RULE_ID ) ) otherlv_7= 'end' { - otherlv_0=(Token)match(input,16,FOLLOW_3); if (state.failed) return current; + otherlv_0=(Token)match(input,15,FOLLOW_3); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_0, grammarAccess.getTransitionAccess().getTransitionKeyword_0()); } - // InternalStatemachine.g:380:3: ( (lv_name_1_0= RULE_ID ) ) - // InternalStatemachine.g:381:4: (lv_name_1_0= RULE_ID ) + // InternalStatemachine.g:296:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalStatemachine.g:297:4: (lv_name_1_0= RULE_ID ) { - // InternalStatemachine.g:381:4: (lv_name_1_0= RULE_ID ) - // InternalStatemachine.g:382:5: lv_name_1_0= RULE_ID + // InternalStatemachine.g:297:4: (lv_name_1_0= RULE_ID ) + // InternalStatemachine.g:298:5: lv_name_1_0= RULE_ID { lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_3); if (state.failed) return current; if ( state.backtracking==0 ) { @@ -1060,11 +842,11 @@ public final EObject ruleTransition() throws RecognitionException { } - // InternalStatemachine.g:398:3: ( (otherlv_2= RULE_ID ) ) - // InternalStatemachine.g:399:4: (otherlv_2= RULE_ID ) + // InternalStatemachine.g:314:3: ( (otherlv_2= RULE_ID ) ) + // InternalStatemachine.g:315:4: (otherlv_2= RULE_ID ) { - // InternalStatemachine.g:399:4: (otherlv_2= RULE_ID ) - // InternalStatemachine.g:400:5: otherlv_2= RULE_ID + // InternalStatemachine.g:315:4: (otherlv_2= RULE_ID ) + // InternalStatemachine.g:316:5: otherlv_2= RULE_ID { if ( state.backtracking==0 ) { @@ -1073,7 +855,7 @@ public final EObject ruleTransition() throws RecognitionException { } } - otherlv_2=(Token)match(input,RULE_ID,FOLLOW_11); if (state.failed) return current; + otherlv_2=(Token)match(input,RULE_ID,FOLLOW_9); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_2, grammarAccess.getTransitionAccess().getFromStateStateCrossReference_2_0()); @@ -1085,17 +867,17 @@ public final EObject ruleTransition() throws RecognitionException { } - otherlv_3=(Token)match(input,17,FOLLOW_3); if (state.failed) return current; + otherlv_3=(Token)match(input,16,FOLLOW_3); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_3, grammarAccess.getTransitionAccess().getCommaKeyword_3()); } - // InternalStatemachine.g:415:3: ( (otherlv_4= RULE_ID ) ) - // InternalStatemachine.g:416:4: (otherlv_4= RULE_ID ) + // InternalStatemachine.g:331:3: ( (otherlv_4= RULE_ID ) ) + // InternalStatemachine.g:332:4: (otherlv_4= RULE_ID ) { - // InternalStatemachine.g:416:4: (otherlv_4= RULE_ID ) - // InternalStatemachine.g:417:5: otherlv_4= RULE_ID + // InternalStatemachine.g:332:4: (otherlv_4= RULE_ID ) + // InternalStatemachine.g:333:5: otherlv_4= RULE_ID { if ( state.backtracking==0 ) { @@ -1104,7 +886,7 @@ public final EObject ruleTransition() throws RecognitionException { } } - otherlv_4=(Token)match(input,RULE_ID,FOLLOW_11); if (state.failed) return current; + otherlv_4=(Token)match(input,RULE_ID,FOLLOW_9); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_4, grammarAccess.getTransitionAccess().getEventEventCrossReference_4_0()); @@ -1116,17 +898,17 @@ public final EObject ruleTransition() throws RecognitionException { } - otherlv_5=(Token)match(input,17,FOLLOW_3); if (state.failed) return current; + otherlv_5=(Token)match(input,16,FOLLOW_3); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_5, grammarAccess.getTransitionAccess().getCommaKeyword_5()); } - // InternalStatemachine.g:432:3: ( (otherlv_6= RULE_ID ) ) - // InternalStatemachine.g:433:4: (otherlv_6= RULE_ID ) + // InternalStatemachine.g:348:3: ( (otherlv_6= RULE_ID ) ) + // InternalStatemachine.g:349:4: (otherlv_6= RULE_ID ) { - // InternalStatemachine.g:433:4: (otherlv_6= RULE_ID ) - // InternalStatemachine.g:434:5: otherlv_6= RULE_ID + // InternalStatemachine.g:349:4: (otherlv_6= RULE_ID ) + // InternalStatemachine.g:350:5: otherlv_6= RULE_ID { if ( state.backtracking==0 ) { @@ -1178,7 +960,7 @@ public final EObject ruleTransition() throws RecognitionException { // $ANTLR start "entryRuleJvmTypeReference" - // InternalStatemachine.g:453:1: entryRuleJvmTypeReference returns [EObject current=null] : iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ; + // InternalStatemachine.g:369:1: entryRuleJvmTypeReference returns [EObject current=null] : iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ; public final EObject entryRuleJvmTypeReference() throws RecognitionException { EObject current = null; @@ -1186,8 +968,8 @@ public final EObject entryRuleJvmTypeReference() throws RecognitionException { try { - // InternalStatemachine.g:453:57: (iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ) - // InternalStatemachine.g:454:2: iv_ruleJvmTypeReference= ruleJvmTypeReference EOF + // InternalStatemachine.g:369:57: (iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ) + // InternalStatemachine.g:370:2: iv_ruleJvmTypeReference= ruleJvmTypeReference EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmTypeReferenceRule()); @@ -1218,7 +1000,7 @@ public final EObject entryRuleJvmTypeReference() throws RecognitionException { // $ANTLR start "ruleJvmTypeReference" - // InternalStatemachine.g:460:1: ruleJvmTypeReference returns [EObject current=null] : ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ; + // InternalStatemachine.g:376:1: ruleJvmTypeReference returns [EObject current=null] : ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ; public final EObject ruleJvmTypeReference() throws RecognitionException { EObject current = null; @@ -1231,39 +1013,39 @@ public final EObject ruleJvmTypeReference() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:466:2: ( ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ) - // InternalStatemachine.g:467:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) + // InternalStatemachine.g:382:2: ( ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ) + // InternalStatemachine.g:383:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) { - // InternalStatemachine.g:467:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) - int alt9=2; - int LA9_0 = input.LA(1); + // InternalStatemachine.g:383:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) + int alt8=2; + int LA8_0 = input.LA(1); - if ( (LA9_0==RULE_ID) ) { - alt9=1; + if ( (LA8_0==RULE_ID) ) { + alt8=1; } - else if ( (LA9_0==20||LA9_0==22) ) { - alt9=2; + else if ( (LA8_0==19||LA8_0==21) ) { + alt8=2; } else { if (state.backtracking>0) {state.failed=true; return current;} NoViableAltException nvae = - new NoViableAltException("", 9, 0, input); + new NoViableAltException("", 8, 0, input); throw nvae; } - switch (alt9) { + switch (alt8) { case 1 : - // InternalStatemachine.g:468:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) + // InternalStatemachine.g:384:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) { - // InternalStatemachine.g:468:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) - // InternalStatemachine.g:469:4: this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* + // InternalStatemachine.g:384:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) + // InternalStatemachine.g:385:4: this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); } - pushFollow(FOLLOW_12); + pushFollow(FOLLOW_11); this_JvmParameterizedTypeReference_0=ruleJvmParameterizedTypeReference(); state._fsp--; @@ -1274,26 +1056,26 @@ else if ( (LA9_0==20||LA9_0==22) ) { afterParserOrEnumRuleCall(); } - // InternalStatemachine.g:477:4: ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* - loop8: + // InternalStatemachine.g:393:4: ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* + loop7: do { - int alt8=2; - int LA8_0 = input.LA(1); + int alt7=2; + int LA7_0 = input.LA(1); - if ( (LA8_0==18) && (synpred1_InternalStatemachine())) { - alt8=1; + if ( (LA7_0==17) && (synpred1_InternalStatemachine())) { + alt7=1; } - switch (alt8) { + switch (alt7) { case 1 : - // InternalStatemachine.g:478:5: ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) + // InternalStatemachine.g:394:5: ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) { - // InternalStatemachine.g:484:5: ( () ruleArrayBrackets ) - // InternalStatemachine.g:485:6: () ruleArrayBrackets + // InternalStatemachine.g:400:5: ( () ruleArrayBrackets ) + // InternalStatemachine.g:401:6: () ruleArrayBrackets { - // InternalStatemachine.g:485:6: () - // InternalStatemachine.g:486:7: + // InternalStatemachine.g:401:6: () + // InternalStatemachine.g:402:7: { if ( state.backtracking==0 ) { @@ -1310,7 +1092,7 @@ else if ( (LA9_0==20||LA9_0==22) ) { newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); } - pushFollow(FOLLOW_12); + pushFollow(FOLLOW_11); ruleArrayBrackets(); state._fsp--; @@ -1328,7 +1110,7 @@ else if ( (LA9_0==20||LA9_0==22) ) { break; default : - break loop8; + break loop7; } } while (true); @@ -1339,7 +1121,7 @@ else if ( (LA9_0==20||LA9_0==22) ) { } break; case 2 : - // InternalStatemachine.g:503:3: this_XFunctionTypeRef_3= ruleXFunctionTypeRef + // InternalStatemachine.g:419:3: this_XFunctionTypeRef_3= ruleXFunctionTypeRef { if ( state.backtracking==0 ) { @@ -1385,7 +1167,7 @@ else if ( (LA9_0==20||LA9_0==22) ) { // $ANTLR start "entryRuleArrayBrackets" - // InternalStatemachine.g:515:1: entryRuleArrayBrackets returns [String current=null] : iv_ruleArrayBrackets= ruleArrayBrackets EOF ; + // InternalStatemachine.g:431:1: entryRuleArrayBrackets returns [String current=null] : iv_ruleArrayBrackets= ruleArrayBrackets EOF ; public final String entryRuleArrayBrackets() throws RecognitionException { String current = null; @@ -1393,8 +1175,8 @@ public final String entryRuleArrayBrackets() throws RecognitionException { try { - // InternalStatemachine.g:515:53: (iv_ruleArrayBrackets= ruleArrayBrackets EOF ) - // InternalStatemachine.g:516:2: iv_ruleArrayBrackets= ruleArrayBrackets EOF + // InternalStatemachine.g:431:53: (iv_ruleArrayBrackets= ruleArrayBrackets EOF ) + // InternalStatemachine.g:432:2: iv_ruleArrayBrackets= ruleArrayBrackets EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getArrayBracketsRule()); @@ -1425,7 +1207,7 @@ public final String entryRuleArrayBrackets() throws RecognitionException { // $ANTLR start "ruleArrayBrackets" - // InternalStatemachine.g:522:1: ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '[' kw= ']' ) ; + // InternalStatemachine.g:438:1: ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '[' kw= ']' ) ; public final AntlrDatatypeRuleToken ruleArrayBrackets() throws RecognitionException { AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); @@ -1435,20 +1217,20 @@ public final AntlrDatatypeRuleToken ruleArrayBrackets() throws RecognitionExcept enterRule(); try { - // InternalStatemachine.g:528:2: ( (kw= '[' kw= ']' ) ) - // InternalStatemachine.g:529:2: (kw= '[' kw= ']' ) + // InternalStatemachine.g:444:2: ( (kw= '[' kw= ']' ) ) + // InternalStatemachine.g:445:2: (kw= '[' kw= ']' ) { - // InternalStatemachine.g:529:2: (kw= '[' kw= ']' ) - // InternalStatemachine.g:530:3: kw= '[' kw= ']' + // InternalStatemachine.g:445:2: (kw= '[' kw= ']' ) + // InternalStatemachine.g:446:3: kw= '[' kw= ']' { - kw=(Token)match(input,18,FOLLOW_13); if (state.failed) return current; + kw=(Token)match(input,17,FOLLOW_12); if (state.failed) return current; if ( state.backtracking==0 ) { current.merge(kw); newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); } - kw=(Token)match(input,19,FOLLOW_2); if (state.failed) return current; + kw=(Token)match(input,18,FOLLOW_2); if (state.failed) return current; if ( state.backtracking==0 ) { current.merge(kw); @@ -1480,7 +1262,7 @@ public final AntlrDatatypeRuleToken ruleArrayBrackets() throws RecognitionExcept // $ANTLR start "entryRuleXFunctionTypeRef" - // InternalStatemachine.g:544:1: entryRuleXFunctionTypeRef returns [EObject current=null] : iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ; + // InternalStatemachine.g:460:1: entryRuleXFunctionTypeRef returns [EObject current=null] : iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ; public final EObject entryRuleXFunctionTypeRef() throws RecognitionException { EObject current = null; @@ -1488,8 +1270,8 @@ public final EObject entryRuleXFunctionTypeRef() throws RecognitionException { try { - // InternalStatemachine.g:544:57: (iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ) - // InternalStatemachine.g:545:2: iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF + // InternalStatemachine.g:460:57: (iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ) + // InternalStatemachine.g:461:2: iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getXFunctionTypeRefRule()); @@ -1520,7 +1302,7 @@ public final EObject entryRuleXFunctionTypeRef() throws RecognitionException { // $ANTLR start "ruleXFunctionTypeRef" - // InternalStatemachine.g:551:1: ruleXFunctionTypeRef returns [EObject current=null] : ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ; + // InternalStatemachine.g:467:1: ruleXFunctionTypeRef returns [EObject current=null] : ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ; public final EObject ruleXFunctionTypeRef() throws RecognitionException { EObject current = null; @@ -1539,52 +1321,52 @@ public final EObject ruleXFunctionTypeRef() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:557:2: ( ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ) - // InternalStatemachine.g:558:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:473:2: ( ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ) + // InternalStatemachine.g:474:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) { - // InternalStatemachine.g:558:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) - // InternalStatemachine.g:559:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:474:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:475:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) { - // InternalStatemachine.g:559:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? - int alt12=2; - int LA12_0 = input.LA(1); + // InternalStatemachine.g:475:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? + int alt11=2; + int LA11_0 = input.LA(1); - if ( (LA12_0==20) ) { - alt12=1; + if ( (LA11_0==19) ) { + alt11=1; } - switch (alt12) { + switch (alt11) { case 1 : - // InternalStatemachine.g:560:4: otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' + // InternalStatemachine.g:476:4: otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' { - otherlv_0=(Token)match(input,20,FOLLOW_14); if (state.failed) return current; + otherlv_0=(Token)match(input,19,FOLLOW_13); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_0, grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); } - // InternalStatemachine.g:564:4: ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? - int alt11=2; - int LA11_0 = input.LA(1); + // InternalStatemachine.g:480:4: ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? + int alt10=2; + int LA10_0 = input.LA(1); - if ( (LA11_0==RULE_ID||LA11_0==20||LA11_0==22) ) { - alt11=1; + if ( (LA10_0==RULE_ID||LA10_0==19||LA10_0==21) ) { + alt10=1; } - switch (alt11) { + switch (alt10) { case 1 : - // InternalStatemachine.g:565:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* + // InternalStatemachine.g:481:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* { - // InternalStatemachine.g:565:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) - // InternalStatemachine.g:566:6: (lv_paramTypes_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:481:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:482:6: (lv_paramTypes_1_0= ruleJvmTypeReference ) { - // InternalStatemachine.g:566:6: (lv_paramTypes_1_0= ruleJvmTypeReference ) - // InternalStatemachine.g:567:7: lv_paramTypes_1_0= ruleJvmTypeReference + // InternalStatemachine.g:482:6: (lv_paramTypes_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:483:7: lv_paramTypes_1_0= ruleJvmTypeReference { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); } - pushFollow(FOLLOW_15); + pushFollow(FOLLOW_14); lv_paramTypes_1_0=ruleJvmTypeReference(); state._fsp--; @@ -1608,39 +1390,39 @@ public final EObject ruleXFunctionTypeRef() throws RecognitionException { } - // InternalStatemachine.g:584:5: (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* - loop10: + // InternalStatemachine.g:500:5: (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* + loop9: do { - int alt10=2; - int LA10_0 = input.LA(1); + int alt9=2; + int LA9_0 = input.LA(1); - if ( (LA10_0==17) ) { - alt10=1; + if ( (LA9_0==16) ) { + alt9=1; } - switch (alt10) { + switch (alt9) { case 1 : - // InternalStatemachine.g:585:6: otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:501:6: otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) { - otherlv_2=(Token)match(input,17,FOLLOW_16); if (state.failed) return current; + otherlv_2=(Token)match(input,16,FOLLOW_15); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_2, grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); } - // InternalStatemachine.g:589:6: ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) - // InternalStatemachine.g:590:7: (lv_paramTypes_3_0= ruleJvmTypeReference ) + // InternalStatemachine.g:505:6: ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:506:7: (lv_paramTypes_3_0= ruleJvmTypeReference ) { - // InternalStatemachine.g:590:7: (lv_paramTypes_3_0= ruleJvmTypeReference ) - // InternalStatemachine.g:591:8: lv_paramTypes_3_0= ruleJvmTypeReference + // InternalStatemachine.g:506:7: (lv_paramTypes_3_0= ruleJvmTypeReference ) + // InternalStatemachine.g:507:8: lv_paramTypes_3_0= ruleJvmTypeReference { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); } - pushFollow(FOLLOW_15); + pushFollow(FOLLOW_14); lv_paramTypes_3_0=ruleJvmTypeReference(); state._fsp--; @@ -1669,7 +1451,7 @@ public final EObject ruleXFunctionTypeRef() throws RecognitionException { break; default : - break loop10; + break loop9; } } while (true); @@ -1679,7 +1461,7 @@ public final EObject ruleXFunctionTypeRef() throws RecognitionException { } - otherlv_4=(Token)match(input,21,FOLLOW_17); if (state.failed) return current; + otherlv_4=(Token)match(input,20,FOLLOW_16); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_4, grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); @@ -1691,17 +1473,17 @@ public final EObject ruleXFunctionTypeRef() throws RecognitionException { } - otherlv_5=(Token)match(input,22,FOLLOW_16); if (state.failed) return current; + otherlv_5=(Token)match(input,21,FOLLOW_15); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_5, grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); } - // InternalStatemachine.g:619:3: ( (lv_returnType_6_0= ruleJvmTypeReference ) ) - // InternalStatemachine.g:620:4: (lv_returnType_6_0= ruleJvmTypeReference ) + // InternalStatemachine.g:535:3: ( (lv_returnType_6_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:536:4: (lv_returnType_6_0= ruleJvmTypeReference ) { - // InternalStatemachine.g:620:4: (lv_returnType_6_0= ruleJvmTypeReference ) - // InternalStatemachine.g:621:5: lv_returnType_6_0= ruleJvmTypeReference + // InternalStatemachine.g:536:4: (lv_returnType_6_0= ruleJvmTypeReference ) + // InternalStatemachine.g:537:5: lv_returnType_6_0= ruleJvmTypeReference { if ( state.backtracking==0 ) { @@ -1757,7 +1539,7 @@ public final EObject ruleXFunctionTypeRef() throws RecognitionException { // $ANTLR start "entryRuleJvmParameterizedTypeReference" - // InternalStatemachine.g:642:1: entryRuleJvmParameterizedTypeReference returns [EObject current=null] : iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ; + // InternalStatemachine.g:558:1: entryRuleJvmParameterizedTypeReference returns [EObject current=null] : iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ; public final EObject entryRuleJvmParameterizedTypeReference() throws RecognitionException { EObject current = null; @@ -1765,8 +1547,8 @@ public final EObject entryRuleJvmParameterizedTypeReference() throws Recognition try { - // InternalStatemachine.g:642:70: (iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ) - // InternalStatemachine.g:643:2: iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF + // InternalStatemachine.g:558:70: (iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ) + // InternalStatemachine.g:559:2: iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceRule()); @@ -1797,7 +1579,7 @@ public final EObject entryRuleJvmParameterizedTypeReference() throws Recognition // $ANTLR start "ruleJvmParameterizedTypeReference" - // InternalStatemachine.g:649:1: ruleJvmParameterizedTypeReference returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) ; + // InternalStatemachine.g:565:1: ruleJvmParameterizedTypeReference returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) ; public final EObject ruleJvmParameterizedTypeReference() throws RecognitionException { EObject current = null; @@ -1821,17 +1603,17 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep enterRule(); try { - // InternalStatemachine.g:655:2: ( ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) ) - // InternalStatemachine.g:656:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) + // InternalStatemachine.g:571:2: ( ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) ) + // InternalStatemachine.g:572:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) { - // InternalStatemachine.g:656:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) - // InternalStatemachine.g:657:3: ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? + // InternalStatemachine.g:572:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) + // InternalStatemachine.g:573:3: ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? { - // InternalStatemachine.g:657:3: ( ( ruleQualifiedName ) ) - // InternalStatemachine.g:658:4: ( ruleQualifiedName ) + // InternalStatemachine.g:573:3: ( ( ruleQualifiedName ) ) + // InternalStatemachine.g:574:4: ( ruleQualifiedName ) { - // InternalStatemachine.g:658:4: ( ruleQualifiedName ) - // InternalStatemachine.g:659:5: ruleQualifiedName + // InternalStatemachine.g:574:4: ( ruleQualifiedName ) + // InternalStatemachine.g:575:5: ruleQualifiedName { if ( state.backtracking==0 ) { @@ -1845,7 +1627,7 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); } - pushFollow(FOLLOW_18); + pushFollow(FOLLOW_17); ruleQualifiedName(); state._fsp--; @@ -1861,21 +1643,21 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep } - // InternalStatemachine.g:673:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? - int alt17=2; - int LA17_0 = input.LA(1); + // InternalStatemachine.g:589:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? + int alt16=2; + int LA16_0 = input.LA(1); - if ( (LA17_0==23) && (synpred2_InternalStatemachine())) { - alt17=1; + if ( (LA16_0==22) && (synpred2_InternalStatemachine())) { + alt16=1; } - switch (alt17) { + switch (alt16) { case 1 : - // InternalStatemachine.g:674:4: ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* + // InternalStatemachine.g:590:4: ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* { - // InternalStatemachine.g:674:4: ( ( '<' )=>otherlv_1= '<' ) - // InternalStatemachine.g:675:5: ( '<' )=>otherlv_1= '<' + // InternalStatemachine.g:590:4: ( ( '<' )=>otherlv_1= '<' ) + // InternalStatemachine.g:591:5: ( '<' )=>otherlv_1= '<' { - otherlv_1=(Token)match(input,23,FOLLOW_19); if (state.failed) return current; + otherlv_1=(Token)match(input,22,FOLLOW_18); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_1, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); @@ -1884,18 +1666,18 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep } - // InternalStatemachine.g:681:4: ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) - // InternalStatemachine.g:682:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:597:4: ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) + // InternalStatemachine.g:598:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference ) { - // InternalStatemachine.g:682:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference ) - // InternalStatemachine.g:683:6: lv_arguments_2_0= ruleJvmArgumentTypeReference + // InternalStatemachine.g:598:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:599:6: lv_arguments_2_0= ruleJvmArgumentTypeReference { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); } - pushFollow(FOLLOW_20); + pushFollow(FOLLOW_19); lv_arguments_2_0=ruleJvmArgumentTypeReference(); state._fsp--; @@ -1919,39 +1701,39 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep } - // InternalStatemachine.g:700:4: (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* - loop13: + // InternalStatemachine.g:616:4: (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* + loop12: do { - int alt13=2; - int LA13_0 = input.LA(1); + int alt12=2; + int LA12_0 = input.LA(1); - if ( (LA13_0==17) ) { - alt13=1; + if ( (LA12_0==16) ) { + alt12=1; } - switch (alt13) { + switch (alt12) { case 1 : - // InternalStatemachine.g:701:5: otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) + // InternalStatemachine.g:617:5: otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) { - otherlv_3=(Token)match(input,17,FOLLOW_19); if (state.failed) return current; + otherlv_3=(Token)match(input,16,FOLLOW_18); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_3, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); } - // InternalStatemachine.g:705:5: ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) - // InternalStatemachine.g:706:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:621:5: ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) + // InternalStatemachine.g:622:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference ) { - // InternalStatemachine.g:706:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference ) - // InternalStatemachine.g:707:7: lv_arguments_4_0= ruleJvmArgumentTypeReference + // InternalStatemachine.g:622:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:623:7: lv_arguments_4_0= ruleJvmArgumentTypeReference { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); } - pushFollow(FOLLOW_20); + pushFollow(FOLLOW_19); lv_arguments_4_0=ruleJvmArgumentTypeReference(); state._fsp--; @@ -1980,39 +1762,39 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep break; default : - break loop13; + break loop12; } } while (true); - otherlv_5=(Token)match(input,24,FOLLOW_21); if (state.failed) return current; + otherlv_5=(Token)match(input,23,FOLLOW_20); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_5, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); } - // InternalStatemachine.g:729:4: ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* - loop16: + // InternalStatemachine.g:645:4: ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* + loop15: do { - int alt16=2; - int LA16_0 = input.LA(1); + int alt15=2; + int LA15_0 = input.LA(1); - if ( (LA16_0==25) && (synpred3_InternalStatemachine())) { - alt16=1; + if ( (LA15_0==24) && (synpred3_InternalStatemachine())) { + alt15=1; } - switch (alt16) { + switch (alt15) { case 1 : - // InternalStatemachine.g:730:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? + // InternalStatemachine.g:646:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? { - // InternalStatemachine.g:730:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) - // InternalStatemachine.g:731:6: ( ( () '.' ) )=> ( () otherlv_7= '.' ) + // InternalStatemachine.g:646:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) + // InternalStatemachine.g:647:6: ( ( () '.' ) )=> ( () otherlv_7= '.' ) { - // InternalStatemachine.g:737:6: ( () otherlv_7= '.' ) - // InternalStatemachine.g:738:7: () otherlv_7= '.' + // InternalStatemachine.g:653:6: ( () otherlv_7= '.' ) + // InternalStatemachine.g:654:7: () otherlv_7= '.' { - // InternalStatemachine.g:738:7: () - // InternalStatemachine.g:739:8: + // InternalStatemachine.g:654:7: () + // InternalStatemachine.g:655:8: { if ( state.backtracking==0 ) { @@ -2024,7 +1806,7 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep } - otherlv_7=(Token)match(input,25,FOLLOW_3); if (state.failed) return current; + otherlv_7=(Token)match(input,24,FOLLOW_3); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_7, grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); @@ -2036,11 +1818,11 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep } - // InternalStatemachine.g:751:5: ( ( ruleValidID ) ) - // InternalStatemachine.g:752:6: ( ruleValidID ) + // InternalStatemachine.g:667:5: ( ( ruleValidID ) ) + // InternalStatemachine.g:668:6: ( ruleValidID ) { - // InternalStatemachine.g:752:6: ( ruleValidID ) - // InternalStatemachine.g:753:7: ruleValidID + // InternalStatemachine.g:668:6: ( ruleValidID ) + // InternalStatemachine.g:669:7: ruleValidID { if ( state.backtracking==0 ) { @@ -2054,7 +1836,7 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); } - pushFollow(FOLLOW_22); + pushFollow(FOLLOW_21); ruleValidID(); state._fsp--; @@ -2070,21 +1852,21 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep } - // InternalStatemachine.g:767:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? - int alt15=2; - int LA15_0 = input.LA(1); + // InternalStatemachine.g:683:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? + int alt14=2; + int LA14_0 = input.LA(1); - if ( (LA15_0==23) && (synpred4_InternalStatemachine())) { - alt15=1; + if ( (LA14_0==22) && (synpred4_InternalStatemachine())) { + alt14=1; } - switch (alt15) { + switch (alt14) { case 1 : - // InternalStatemachine.g:768:6: ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' + // InternalStatemachine.g:684:6: ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' { - // InternalStatemachine.g:768:6: ( ( '<' )=>otherlv_9= '<' ) - // InternalStatemachine.g:769:7: ( '<' )=>otherlv_9= '<' + // InternalStatemachine.g:684:6: ( ( '<' )=>otherlv_9= '<' ) + // InternalStatemachine.g:685:7: ( '<' )=>otherlv_9= '<' { - otherlv_9=(Token)match(input,23,FOLLOW_19); if (state.failed) return current; + otherlv_9=(Token)match(input,22,FOLLOW_18); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_9, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0()); @@ -2093,18 +1875,18 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep } - // InternalStatemachine.g:775:6: ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) - // InternalStatemachine.g:776:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:691:6: ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) + // InternalStatemachine.g:692:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference ) { - // InternalStatemachine.g:776:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference ) - // InternalStatemachine.g:777:8: lv_arguments_10_0= ruleJvmArgumentTypeReference + // InternalStatemachine.g:692:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:693:8: lv_arguments_10_0= ruleJvmArgumentTypeReference { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); } - pushFollow(FOLLOW_20); + pushFollow(FOLLOW_19); lv_arguments_10_0=ruleJvmArgumentTypeReference(); state._fsp--; @@ -2128,39 +1910,39 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep } - // InternalStatemachine.g:794:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* - loop14: + // InternalStatemachine.g:710:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* + loop13: do { - int alt14=2; - int LA14_0 = input.LA(1); + int alt13=2; + int LA13_0 = input.LA(1); - if ( (LA14_0==17) ) { - alt14=1; + if ( (LA13_0==16) ) { + alt13=1; } - switch (alt14) { + switch (alt13) { case 1 : - // InternalStatemachine.g:795:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) + // InternalStatemachine.g:711:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) { - otherlv_11=(Token)match(input,17,FOLLOW_19); if (state.failed) return current; + otherlv_11=(Token)match(input,16,FOLLOW_18); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_11, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); } - // InternalStatemachine.g:799:7: ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) - // InternalStatemachine.g:800:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:715:7: ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) + // InternalStatemachine.g:716:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference ) { - // InternalStatemachine.g:800:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference ) - // InternalStatemachine.g:801:9: lv_arguments_12_0= ruleJvmArgumentTypeReference + // InternalStatemachine.g:716:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference ) + // InternalStatemachine.g:717:9: lv_arguments_12_0= ruleJvmArgumentTypeReference { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); } - pushFollow(FOLLOW_20); + pushFollow(FOLLOW_19); lv_arguments_12_0=ruleJvmArgumentTypeReference(); state._fsp--; @@ -2189,11 +1971,11 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep break; default : - break loop14; + break loop13; } } while (true); - otherlv_13=(Token)match(input,24,FOLLOW_21); if (state.failed) return current; + otherlv_13=(Token)match(input,23,FOLLOW_20); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_13, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); @@ -2210,7 +1992,7 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep break; default : - break loop16; + break loop15; } } while (true); @@ -2245,7 +2027,7 @@ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionExcep // $ANTLR start "entryRuleJvmArgumentTypeReference" - // InternalStatemachine.g:830:1: entryRuleJvmArgumentTypeReference returns [EObject current=null] : iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ; + // InternalStatemachine.g:746:1: entryRuleJvmArgumentTypeReference returns [EObject current=null] : iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ; public final EObject entryRuleJvmArgumentTypeReference() throws RecognitionException { EObject current = null; @@ -2253,8 +2035,8 @@ public final EObject entryRuleJvmArgumentTypeReference() throws RecognitionExcep try { - // InternalStatemachine.g:830:65: (iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ) - // InternalStatemachine.g:831:2: iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF + // InternalStatemachine.g:746:65: (iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ) + // InternalStatemachine.g:747:2: iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceRule()); @@ -2285,7 +2067,7 @@ public final EObject entryRuleJvmArgumentTypeReference() throws RecognitionExcep // $ANTLR start "ruleJvmArgumentTypeReference" - // InternalStatemachine.g:837:1: ruleJvmArgumentTypeReference returns [EObject current=null] : (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ; + // InternalStatemachine.g:753:1: ruleJvmArgumentTypeReference returns [EObject current=null] : (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ; public final EObject ruleJvmArgumentTypeReference() throws RecognitionException { EObject current = null; @@ -2298,29 +2080,29 @@ public final EObject ruleJvmArgumentTypeReference() throws RecognitionException enterRule(); try { - // InternalStatemachine.g:843:2: ( (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ) - // InternalStatemachine.g:844:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) + // InternalStatemachine.g:759:2: ( (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ) + // InternalStatemachine.g:760:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) { - // InternalStatemachine.g:844:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) - int alt18=2; - int LA18_0 = input.LA(1); + // InternalStatemachine.g:760:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) + int alt17=2; + int LA17_0 = input.LA(1); - if ( (LA18_0==RULE_ID||LA18_0==20||LA18_0==22) ) { - alt18=1; + if ( (LA17_0==RULE_ID||LA17_0==19||LA17_0==21) ) { + alt17=1; } - else if ( (LA18_0==26) ) { - alt18=2; + else if ( (LA17_0==25) ) { + alt17=2; } else { if (state.backtracking>0) {state.failed=true; return current;} NoViableAltException nvae = - new NoViableAltException("", 18, 0, input); + new NoViableAltException("", 17, 0, input); throw nvae; } - switch (alt18) { + switch (alt17) { case 1 : - // InternalStatemachine.g:845:3: this_JvmTypeReference_0= ruleJvmTypeReference + // InternalStatemachine.g:761:3: this_JvmTypeReference_0= ruleJvmTypeReference { if ( state.backtracking==0 ) { @@ -2342,7 +2124,7 @@ else if ( (LA18_0==26) ) { } break; case 2 : - // InternalStatemachine.g:854:3: this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference + // InternalStatemachine.g:770:3: this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference { if ( state.backtracking==0 ) { @@ -2388,7 +2170,7 @@ else if ( (LA18_0==26) ) { // $ANTLR start "entryRuleJvmWildcardTypeReference" - // InternalStatemachine.g:866:1: entryRuleJvmWildcardTypeReference returns [EObject current=null] : iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ; + // InternalStatemachine.g:782:1: entryRuleJvmWildcardTypeReference returns [EObject current=null] : iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ; public final EObject entryRuleJvmWildcardTypeReference() throws RecognitionException { EObject current = null; @@ -2396,8 +2178,8 @@ public final EObject entryRuleJvmWildcardTypeReference() throws RecognitionExcep try { - // InternalStatemachine.g:866:65: (iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ) - // InternalStatemachine.g:867:2: iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF + // InternalStatemachine.g:782:65: (iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ) + // InternalStatemachine.g:783:2: iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceRule()); @@ -2428,7 +2210,7 @@ public final EObject entryRuleJvmWildcardTypeReference() throws RecognitionExcep // $ANTLR start "ruleJvmWildcardTypeReference" - // InternalStatemachine.g:873:1: ruleJvmWildcardTypeReference returns [EObject current=null] : ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) ; + // InternalStatemachine.g:789:1: ruleJvmWildcardTypeReference returns [EObject current=null] : ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) ; public final EObject ruleJvmWildcardTypeReference() throws RecognitionException { EObject current = null; @@ -2446,14 +2228,14 @@ public final EObject ruleJvmWildcardTypeReference() throws RecognitionException enterRule(); try { - // InternalStatemachine.g:879:2: ( ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) ) - // InternalStatemachine.g:880:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) + // InternalStatemachine.g:795:2: ( ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) ) + // InternalStatemachine.g:796:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) { - // InternalStatemachine.g:880:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) - // InternalStatemachine.g:881:3: () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? + // InternalStatemachine.g:796:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) + // InternalStatemachine.g:797:3: () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? { - // InternalStatemachine.g:881:3: () - // InternalStatemachine.g:882:4: + // InternalStatemachine.g:797:3: () + // InternalStatemachine.g:798:4: { if ( state.backtracking==0 ) { @@ -2465,41 +2247,41 @@ public final EObject ruleJvmWildcardTypeReference() throws RecognitionException } - otherlv_1=(Token)match(input,26,FOLLOW_23); if (state.failed) return current; + otherlv_1=(Token)match(input,25,FOLLOW_22); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_1, grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); } - // InternalStatemachine.g:892:3: ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? - int alt21=3; - int LA21_0 = input.LA(1); + // InternalStatemachine.g:808:3: ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? + int alt20=3; + int LA20_0 = input.LA(1); - if ( (LA21_0==27) ) { - alt21=1; + if ( (LA20_0==26) ) { + alt20=1; } - else if ( (LA21_0==29) ) { - alt21=2; + else if ( (LA20_0==28) ) { + alt20=2; } - switch (alt21) { + switch (alt20) { case 1 : - // InternalStatemachine.g:893:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) + // InternalStatemachine.g:809:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) { - // InternalStatemachine.g:893:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) - // InternalStatemachine.g:894:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* + // InternalStatemachine.g:809:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) + // InternalStatemachine.g:810:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* { - // InternalStatemachine.g:894:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) - // InternalStatemachine.g:895:6: (lv_constraints_2_0= ruleJvmUpperBound ) + // InternalStatemachine.g:810:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) + // InternalStatemachine.g:811:6: (lv_constraints_2_0= ruleJvmUpperBound ) { - // InternalStatemachine.g:895:6: (lv_constraints_2_0= ruleJvmUpperBound ) - // InternalStatemachine.g:896:7: lv_constraints_2_0= ruleJvmUpperBound + // InternalStatemachine.g:811:6: (lv_constraints_2_0= ruleJvmUpperBound ) + // InternalStatemachine.g:812:7: lv_constraints_2_0= ruleJvmUpperBound { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); } - pushFollow(FOLLOW_24); + pushFollow(FOLLOW_23); lv_constraints_2_0=ruleJvmUpperBound(); state._fsp--; @@ -2523,30 +2305,30 @@ else if ( (LA21_0==29) ) { } - // InternalStatemachine.g:913:5: ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* - loop19: + // InternalStatemachine.g:829:5: ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* + loop18: do { - int alt19=2; - int LA19_0 = input.LA(1); + int alt18=2; + int LA18_0 = input.LA(1); - if ( (LA19_0==28) ) { - alt19=1; + if ( (LA18_0==27) ) { + alt18=1; } - switch (alt19) { + switch (alt18) { case 1 : - // InternalStatemachine.g:914:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded ) + // InternalStatemachine.g:830:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded ) { - // InternalStatemachine.g:914:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded ) - // InternalStatemachine.g:915:7: lv_constraints_3_0= ruleJvmUpperBoundAnded + // InternalStatemachine.g:830:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded ) + // InternalStatemachine.g:831:7: lv_constraints_3_0= ruleJvmUpperBoundAnded { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); } - pushFollow(FOLLOW_24); + pushFollow(FOLLOW_23); lv_constraints_3_0=ruleJvmUpperBoundAnded(); state._fsp--; @@ -2572,7 +2354,7 @@ else if ( (LA21_0==29) ) { break; default : - break loop19; + break loop18; } } while (true); @@ -2583,23 +2365,23 @@ else if ( (LA21_0==29) ) { } break; case 2 : - // InternalStatemachine.g:934:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) + // InternalStatemachine.g:850:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) { - // InternalStatemachine.g:934:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) - // InternalStatemachine.g:935:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* + // InternalStatemachine.g:850:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) + // InternalStatemachine.g:851:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* { - // InternalStatemachine.g:935:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) - // InternalStatemachine.g:936:6: (lv_constraints_4_0= ruleJvmLowerBound ) + // InternalStatemachine.g:851:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) + // InternalStatemachine.g:852:6: (lv_constraints_4_0= ruleJvmLowerBound ) { - // InternalStatemachine.g:936:6: (lv_constraints_4_0= ruleJvmLowerBound ) - // InternalStatemachine.g:937:7: lv_constraints_4_0= ruleJvmLowerBound + // InternalStatemachine.g:852:6: (lv_constraints_4_0= ruleJvmLowerBound ) + // InternalStatemachine.g:853:7: lv_constraints_4_0= ruleJvmLowerBound { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); } - pushFollow(FOLLOW_24); + pushFollow(FOLLOW_23); lv_constraints_4_0=ruleJvmLowerBound(); state._fsp--; @@ -2623,30 +2405,30 @@ else if ( (LA21_0==29) ) { } - // InternalStatemachine.g:954:5: ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* - loop20: + // InternalStatemachine.g:870:5: ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* + loop19: do { - int alt20=2; - int LA20_0 = input.LA(1); + int alt19=2; + int LA19_0 = input.LA(1); - if ( (LA20_0==28) ) { - alt20=1; + if ( (LA19_0==27) ) { + alt19=1; } - switch (alt20) { + switch (alt19) { case 1 : - // InternalStatemachine.g:955:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded ) + // InternalStatemachine.g:871:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded ) { - // InternalStatemachine.g:955:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded ) - // InternalStatemachine.g:956:7: lv_constraints_5_0= ruleJvmLowerBoundAnded + // InternalStatemachine.g:871:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded ) + // InternalStatemachine.g:872:7: lv_constraints_5_0= ruleJvmLowerBoundAnded { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); } - pushFollow(FOLLOW_24); + pushFollow(FOLLOW_23); lv_constraints_5_0=ruleJvmLowerBoundAnded(); state._fsp--; @@ -2672,7 +2454,7 @@ else if ( (LA21_0==29) ) { break; default : - break loop20; + break loop19; } } while (true); @@ -2710,7 +2492,7 @@ else if ( (LA21_0==29) ) { // $ANTLR start "entryRuleJvmUpperBound" - // InternalStatemachine.g:979:1: entryRuleJvmUpperBound returns [EObject current=null] : iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ; + // InternalStatemachine.g:895:1: entryRuleJvmUpperBound returns [EObject current=null] : iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ; public final EObject entryRuleJvmUpperBound() throws RecognitionException { EObject current = null; @@ -2718,8 +2500,8 @@ public final EObject entryRuleJvmUpperBound() throws RecognitionException { try { - // InternalStatemachine.g:979:54: (iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ) - // InternalStatemachine.g:980:2: iv_ruleJvmUpperBound= ruleJvmUpperBound EOF + // InternalStatemachine.g:895:54: (iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ) + // InternalStatemachine.g:896:2: iv_ruleJvmUpperBound= ruleJvmUpperBound EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmUpperBoundRule()); @@ -2750,7 +2532,7 @@ public final EObject entryRuleJvmUpperBound() throws RecognitionException { // $ANTLR start "ruleJvmUpperBound" - // InternalStatemachine.g:986:1: ruleJvmUpperBound returns [EObject current=null] : (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; + // InternalStatemachine.g:902:1: ruleJvmUpperBound returns [EObject current=null] : (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; public final EObject ruleJvmUpperBound() throws RecognitionException { EObject current = null; @@ -2762,23 +2544,23 @@ public final EObject ruleJvmUpperBound() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:992:2: ( (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) - // InternalStatemachine.g:993:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:908:2: ( (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) + // InternalStatemachine.g:909:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) { - // InternalStatemachine.g:993:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) - // InternalStatemachine.g:994:3: otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:909:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:910:3: otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) { - otherlv_0=(Token)match(input,27,FOLLOW_16); if (state.failed) return current; + otherlv_0=(Token)match(input,26,FOLLOW_15); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); } - // InternalStatemachine.g:998:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) - // InternalStatemachine.g:999:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:914:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:915:4: (lv_typeReference_1_0= ruleJvmTypeReference ) { - // InternalStatemachine.g:999:4: (lv_typeReference_1_0= ruleJvmTypeReference ) - // InternalStatemachine.g:1000:5: lv_typeReference_1_0= ruleJvmTypeReference + // InternalStatemachine.g:915:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:916:5: lv_typeReference_1_0= ruleJvmTypeReference { if ( state.backtracking==0 ) { @@ -2834,7 +2616,7 @@ public final EObject ruleJvmUpperBound() throws RecognitionException { // $ANTLR start "entryRuleJvmUpperBoundAnded" - // InternalStatemachine.g:1021:1: entryRuleJvmUpperBoundAnded returns [EObject current=null] : iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ; + // InternalStatemachine.g:937:1: entryRuleJvmUpperBoundAnded returns [EObject current=null] : iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ; public final EObject entryRuleJvmUpperBoundAnded() throws RecognitionException { EObject current = null; @@ -2842,8 +2624,8 @@ public final EObject entryRuleJvmUpperBoundAnded() throws RecognitionException { try { - // InternalStatemachine.g:1021:59: (iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ) - // InternalStatemachine.g:1022:2: iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF + // InternalStatemachine.g:937:59: (iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ) + // InternalStatemachine.g:938:2: iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmUpperBoundAndedRule()); @@ -2874,7 +2656,7 @@ public final EObject entryRuleJvmUpperBoundAnded() throws RecognitionException { // $ANTLR start "ruleJvmUpperBoundAnded" - // InternalStatemachine.g:1028:1: ruleJvmUpperBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; + // InternalStatemachine.g:944:1: ruleJvmUpperBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; public final EObject ruleJvmUpperBoundAnded() throws RecognitionException { EObject current = null; @@ -2886,23 +2668,23 @@ public final EObject ruleJvmUpperBoundAnded() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:1034:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) - // InternalStatemachine.g:1035:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:950:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) + // InternalStatemachine.g:951:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) { - // InternalStatemachine.g:1035:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) - // InternalStatemachine.g:1036:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:951:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:952:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) { - otherlv_0=(Token)match(input,28,FOLLOW_16); if (state.failed) return current; + otherlv_0=(Token)match(input,27,FOLLOW_15); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); } - // InternalStatemachine.g:1040:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) - // InternalStatemachine.g:1041:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:956:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:957:4: (lv_typeReference_1_0= ruleJvmTypeReference ) { - // InternalStatemachine.g:1041:4: (lv_typeReference_1_0= ruleJvmTypeReference ) - // InternalStatemachine.g:1042:5: lv_typeReference_1_0= ruleJvmTypeReference + // InternalStatemachine.g:957:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:958:5: lv_typeReference_1_0= ruleJvmTypeReference { if ( state.backtracking==0 ) { @@ -2958,7 +2740,7 @@ public final EObject ruleJvmUpperBoundAnded() throws RecognitionException { // $ANTLR start "entryRuleJvmLowerBound" - // InternalStatemachine.g:1063:1: entryRuleJvmLowerBound returns [EObject current=null] : iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ; + // InternalStatemachine.g:979:1: entryRuleJvmLowerBound returns [EObject current=null] : iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ; public final EObject entryRuleJvmLowerBound() throws RecognitionException { EObject current = null; @@ -2966,8 +2748,8 @@ public final EObject entryRuleJvmLowerBound() throws RecognitionException { try { - // InternalStatemachine.g:1063:54: (iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ) - // InternalStatemachine.g:1064:2: iv_ruleJvmLowerBound= ruleJvmLowerBound EOF + // InternalStatemachine.g:979:54: (iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ) + // InternalStatemachine.g:980:2: iv_ruleJvmLowerBound= ruleJvmLowerBound EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmLowerBoundRule()); @@ -2998,7 +2780,7 @@ public final EObject entryRuleJvmLowerBound() throws RecognitionException { // $ANTLR start "ruleJvmLowerBound" - // InternalStatemachine.g:1070:1: ruleJvmLowerBound returns [EObject current=null] : (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; + // InternalStatemachine.g:986:1: ruleJvmLowerBound returns [EObject current=null] : (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; public final EObject ruleJvmLowerBound() throws RecognitionException { EObject current = null; @@ -3010,23 +2792,23 @@ public final EObject ruleJvmLowerBound() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:1076:2: ( (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) - // InternalStatemachine.g:1077:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:992:2: ( (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) + // InternalStatemachine.g:993:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) { - // InternalStatemachine.g:1077:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) - // InternalStatemachine.g:1078:3: otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:993:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:994:3: otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) { - otherlv_0=(Token)match(input,29,FOLLOW_16); if (state.failed) return current; + otherlv_0=(Token)match(input,28,FOLLOW_15); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); } - // InternalStatemachine.g:1082:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) - // InternalStatemachine.g:1083:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:998:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:999:4: (lv_typeReference_1_0= ruleJvmTypeReference ) { - // InternalStatemachine.g:1083:4: (lv_typeReference_1_0= ruleJvmTypeReference ) - // InternalStatemachine.g:1084:5: lv_typeReference_1_0= ruleJvmTypeReference + // InternalStatemachine.g:999:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:1000:5: lv_typeReference_1_0= ruleJvmTypeReference { if ( state.backtracking==0 ) { @@ -3082,7 +2864,7 @@ public final EObject ruleJvmLowerBound() throws RecognitionException { // $ANTLR start "entryRuleJvmLowerBoundAnded" - // InternalStatemachine.g:1105:1: entryRuleJvmLowerBoundAnded returns [EObject current=null] : iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ; + // InternalStatemachine.g:1021:1: entryRuleJvmLowerBoundAnded returns [EObject current=null] : iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ; public final EObject entryRuleJvmLowerBoundAnded() throws RecognitionException { EObject current = null; @@ -3090,8 +2872,8 @@ public final EObject entryRuleJvmLowerBoundAnded() throws RecognitionException { try { - // InternalStatemachine.g:1105:59: (iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ) - // InternalStatemachine.g:1106:2: iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF + // InternalStatemachine.g:1021:59: (iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ) + // InternalStatemachine.g:1022:2: iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getJvmLowerBoundAndedRule()); @@ -3122,7 +2904,7 @@ public final EObject entryRuleJvmLowerBoundAnded() throws RecognitionException { // $ANTLR start "ruleJvmLowerBoundAnded" - // InternalStatemachine.g:1112:1: ruleJvmLowerBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; + // InternalStatemachine.g:1028:1: ruleJvmLowerBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ; public final EObject ruleJvmLowerBoundAnded() throws RecognitionException { EObject current = null; @@ -3134,23 +2916,23 @@ public final EObject ruleJvmLowerBoundAnded() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:1118:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) - // InternalStatemachine.g:1119:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:1034:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ) + // InternalStatemachine.g:1035:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) { - // InternalStatemachine.g:1119:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) - // InternalStatemachine.g:1120:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:1035:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) + // InternalStatemachine.g:1036:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) { - otherlv_0=(Token)match(input,28,FOLLOW_16); if (state.failed) return current; + otherlv_0=(Token)match(input,27,FOLLOW_15); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); } - // InternalStatemachine.g:1124:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) - // InternalStatemachine.g:1125:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:1040:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) + // InternalStatemachine.g:1041:4: (lv_typeReference_1_0= ruleJvmTypeReference ) { - // InternalStatemachine.g:1125:4: (lv_typeReference_1_0= ruleJvmTypeReference ) - // InternalStatemachine.g:1126:5: lv_typeReference_1_0= ruleJvmTypeReference + // InternalStatemachine.g:1041:4: (lv_typeReference_1_0= ruleJvmTypeReference ) + // InternalStatemachine.g:1042:5: lv_typeReference_1_0= ruleJvmTypeReference { if ( state.backtracking==0 ) { @@ -3206,7 +2988,7 @@ public final EObject ruleJvmLowerBoundAnded() throws RecognitionException { // $ANTLR start "entryRuleQualifiedName" - // InternalStatemachine.g:1147:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ; + // InternalStatemachine.g:1063:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ; public final String entryRuleQualifiedName() throws RecognitionException { String current = null; @@ -3214,8 +2996,8 @@ public final String entryRuleQualifiedName() throws RecognitionException { try { - // InternalStatemachine.g:1147:53: (iv_ruleQualifiedName= ruleQualifiedName EOF ) - // InternalStatemachine.g:1148:2: iv_ruleQualifiedName= ruleQualifiedName EOF + // InternalStatemachine.g:1063:53: (iv_ruleQualifiedName= ruleQualifiedName EOF ) + // InternalStatemachine.g:1064:2: iv_ruleQualifiedName= ruleQualifiedName EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getQualifiedNameRule()); @@ -3246,7 +3028,7 @@ public final String entryRuleQualifiedName() throws RecognitionException { // $ANTLR start "ruleQualifiedName" - // InternalStatemachine.g:1154:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) ; + // InternalStatemachine.g:1070:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) ; public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException { AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); @@ -3260,18 +3042,18 @@ public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionExcept enterRule(); try { - // InternalStatemachine.g:1160:2: ( (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) ) - // InternalStatemachine.g:1161:2: (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) + // InternalStatemachine.g:1076:2: ( (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) ) + // InternalStatemachine.g:1077:2: (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) { - // InternalStatemachine.g:1161:2: (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) - // InternalStatemachine.g:1162:3: this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* + // InternalStatemachine.g:1077:2: (this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* ) + // InternalStatemachine.g:1078:3: this_ValidID_0= ruleValidID (kw= '.' this_ValidID_2= ruleValidID )* { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); } - pushFollow(FOLLOW_21); + pushFollow(FOLLOW_20); this_ValidID_0=ruleValidID(); state._fsp--; @@ -3286,28 +3068,28 @@ public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionExcept afterParserOrEnumRuleCall(); } - // InternalStatemachine.g:1172:3: (kw= '.' this_ValidID_2= ruleValidID )* - loop22: + // InternalStatemachine.g:1088:3: (kw= '.' this_ValidID_2= ruleValidID )* + loop21: do { - int alt22=2; - int LA22_0 = input.LA(1); + int alt21=2; + int LA21_0 = input.LA(1); - if ( (LA22_0==25) ) { - int LA22_2 = input.LA(2); + if ( (LA21_0==24) ) { + int LA21_2 = input.LA(2); - if ( (LA22_2==RULE_ID) ) { - alt22=1; + if ( (LA21_2==RULE_ID) ) { + alt21=1; } } - switch (alt22) { + switch (alt21) { case 1 : - // InternalStatemachine.g:1173:4: kw= '.' this_ValidID_2= ruleValidID + // InternalStatemachine.g:1089:4: kw= '.' this_ValidID_2= ruleValidID { - kw=(Token)match(input,25,FOLLOW_3); if (state.failed) return current; + kw=(Token)match(input,24,FOLLOW_3); if (state.failed) return current; if ( state.backtracking==0 ) { current.merge(kw); @@ -3319,7 +3101,7 @@ public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionExcept newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); } - pushFollow(FOLLOW_21); + pushFollow(FOLLOW_20); this_ValidID_2=ruleValidID(); state._fsp--; @@ -3339,7 +3121,7 @@ public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionExcept break; default : - break loop22; + break loop21; } } while (true); @@ -3368,7 +3150,7 @@ public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionExcept // $ANTLR start "entryRuleQualifiedNameWithWildcard" - // InternalStatemachine.g:1193:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ; + // InternalStatemachine.g:1109:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ; public final String entryRuleQualifiedNameWithWildcard() throws RecognitionException { String current = null; @@ -3376,8 +3158,8 @@ public final String entryRuleQualifiedNameWithWildcard() throws RecognitionExcep try { - // InternalStatemachine.g:1193:65: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ) - // InternalStatemachine.g:1194:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF + // InternalStatemachine.g:1109:65: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ) + // InternalStatemachine.g:1110:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getQualifiedNameWithWildcardRule()); @@ -3408,7 +3190,7 @@ public final String entryRuleQualifiedNameWithWildcard() throws RecognitionExcep // $ANTLR start "ruleQualifiedNameWithWildcard" - // InternalStatemachine.g:1200:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ; + // InternalStatemachine.g:1116:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ; public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildcard() throws RecognitionException { AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); @@ -3420,18 +3202,18 @@ public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildcard() throws Recog enterRule(); try { - // InternalStatemachine.g:1206:2: ( (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ) - // InternalStatemachine.g:1207:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) + // InternalStatemachine.g:1122:2: ( (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ) + // InternalStatemachine.g:1123:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) { - // InternalStatemachine.g:1207:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) - // InternalStatemachine.g:1208:3: this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' + // InternalStatemachine.g:1123:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) + // InternalStatemachine.g:1124:3: this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); } - pushFollow(FOLLOW_25); + pushFollow(FOLLOW_24); this_QualifiedName_0=ruleQualifiedName(); state._fsp--; @@ -3446,14 +3228,14 @@ public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildcard() throws Recog afterParserOrEnumRuleCall(); } - kw=(Token)match(input,25,FOLLOW_26); if (state.failed) return current; + kw=(Token)match(input,24,FOLLOW_25); if (state.failed) return current; if ( state.backtracking==0 ) { current.merge(kw); newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); } - kw=(Token)match(input,30,FOLLOW_2); if (state.failed) return current; + kw=(Token)match(input,29,FOLLOW_2); if (state.failed) return current; if ( state.backtracking==0 ) { current.merge(kw); @@ -3485,7 +3267,7 @@ public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildcard() throws Recog // $ANTLR start "entryRuleValidID" - // InternalStatemachine.g:1232:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ; + // InternalStatemachine.g:1148:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ; public final String entryRuleValidID() throws RecognitionException { String current = null; @@ -3493,8 +3275,8 @@ public final String entryRuleValidID() throws RecognitionException { try { - // InternalStatemachine.g:1232:47: (iv_ruleValidID= ruleValidID EOF ) - // InternalStatemachine.g:1233:2: iv_ruleValidID= ruleValidID EOF + // InternalStatemachine.g:1148:47: (iv_ruleValidID= ruleValidID EOF ) + // InternalStatemachine.g:1149:2: iv_ruleValidID= ruleValidID EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getValidIDRule()); @@ -3525,7 +3307,7 @@ public final String entryRuleValidID() throws RecognitionException { // $ANTLR start "ruleValidID" - // InternalStatemachine.g:1239:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ; + // InternalStatemachine.g:1155:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ; public final AntlrDatatypeRuleToken ruleValidID() throws RecognitionException { AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); @@ -3535,8 +3317,8 @@ public final AntlrDatatypeRuleToken ruleValidID() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:1245:2: (this_ID_0= RULE_ID ) - // InternalStatemachine.g:1246:2: this_ID_0= RULE_ID + // InternalStatemachine.g:1161:2: (this_ID_0= RULE_ID ) + // InternalStatemachine.g:1162:2: this_ID_0= RULE_ID { this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current; if ( state.backtracking==0 ) { @@ -3571,7 +3353,7 @@ public final AntlrDatatypeRuleToken ruleValidID() throws RecognitionException { // $ANTLR start "entryRuleXImportDeclaration" - // InternalStatemachine.g:1256:1: entryRuleXImportDeclaration returns [EObject current=null] : iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ; + // InternalStatemachine.g:1172:1: entryRuleXImportDeclaration returns [EObject current=null] : iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ; public final EObject entryRuleXImportDeclaration() throws RecognitionException { EObject current = null; @@ -3579,8 +3361,8 @@ public final EObject entryRuleXImportDeclaration() throws RecognitionException { try { - // InternalStatemachine.g:1256:59: (iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ) - // InternalStatemachine.g:1257:2: iv_ruleXImportDeclaration= ruleXImportDeclaration EOF + // InternalStatemachine.g:1172:59: (iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ) + // InternalStatemachine.g:1173:2: iv_ruleXImportDeclaration= ruleXImportDeclaration EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getXImportDeclarationRule()); @@ -3611,7 +3393,7 @@ public final EObject entryRuleXImportDeclaration() throws RecognitionException { // $ANTLR start "ruleXImportDeclaration" - // InternalStatemachine.g:1263:1: ruleXImportDeclaration returns [EObject current=null] : (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) ; + // InternalStatemachine.g:1179:1: ruleXImportDeclaration returns [EObject current=null] : (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) ; public final EObject ruleXImportDeclaration() throws RecognitionException { EObject current = null; @@ -3629,35 +3411,35 @@ public final EObject ruleXImportDeclaration() throws RecognitionException { enterRule(); try { - // InternalStatemachine.g:1269:2: ( (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) ) - // InternalStatemachine.g:1270:2: (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) + // InternalStatemachine.g:1185:2: ( (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) ) + // InternalStatemachine.g:1186:2: (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) { - // InternalStatemachine.g:1270:2: (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) - // InternalStatemachine.g:1271:3: otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? + // InternalStatemachine.g:1186:2: (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) + // InternalStatemachine.g:1187:3: otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? { - otherlv_0=(Token)match(input,31,FOLLOW_27); if (state.failed) return current; + otherlv_0=(Token)match(input,30,FOLLOW_26); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_0, grammarAccess.getXImportDeclarationAccess().getImportKeyword_0()); } - // InternalStatemachine.g:1275:3: ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) - int alt25=3; - alt25 = dfa25.predict(input); - switch (alt25) { + // InternalStatemachine.g:1191:3: ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) + int alt24=3; + alt24 = dfa24.predict(input); + switch (alt24) { case 1 : - // InternalStatemachine.g:1276:4: ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) + // InternalStatemachine.g:1192:4: ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) { - // InternalStatemachine.g:1276:4: ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) - // InternalStatemachine.g:1277:5: ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) + // InternalStatemachine.g:1192:4: ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) + // InternalStatemachine.g:1193:5: ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) { - // InternalStatemachine.g:1277:5: ( (lv_static_1_0= 'static' ) ) - // InternalStatemachine.g:1278:6: (lv_static_1_0= 'static' ) + // InternalStatemachine.g:1193:5: ( (lv_static_1_0= 'static' ) ) + // InternalStatemachine.g:1194:6: (lv_static_1_0= 'static' ) { - // InternalStatemachine.g:1278:6: (lv_static_1_0= 'static' ) - // InternalStatemachine.g:1279:7: lv_static_1_0= 'static' + // InternalStatemachine.g:1194:6: (lv_static_1_0= 'static' ) + // InternalStatemachine.g:1195:7: lv_static_1_0= 'static' { - lv_static_1_0=(Token)match(input,32,FOLLOW_28); if (state.failed) return current; + lv_static_1_0=(Token)match(input,31,FOLLOW_27); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(lv_static_1_0, grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0()); @@ -3677,21 +3459,21 @@ public final EObject ruleXImportDeclaration() throws RecognitionException { } - // InternalStatemachine.g:1291:5: ( (lv_extension_2_0= 'extension' ) )? - int alt23=2; - int LA23_0 = input.LA(1); + // InternalStatemachine.g:1207:5: ( (lv_extension_2_0= 'extension' ) )? + int alt22=2; + int LA22_0 = input.LA(1); - if ( (LA23_0==33) ) { - alt23=1; + if ( (LA22_0==32) ) { + alt22=1; } - switch (alt23) { + switch (alt22) { case 1 : - // InternalStatemachine.g:1292:6: (lv_extension_2_0= 'extension' ) + // InternalStatemachine.g:1208:6: (lv_extension_2_0= 'extension' ) { - // InternalStatemachine.g:1292:6: (lv_extension_2_0= 'extension' ) - // InternalStatemachine.g:1293:7: lv_extension_2_0= 'extension' + // InternalStatemachine.g:1208:6: (lv_extension_2_0= 'extension' ) + // InternalStatemachine.g:1209:7: lv_extension_2_0= 'extension' { - lv_extension_2_0=(Token)match(input,33,FOLLOW_28); if (state.failed) return current; + lv_extension_2_0=(Token)match(input,32,FOLLOW_27); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(lv_extension_2_0, grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0()); @@ -3714,11 +3496,11 @@ public final EObject ruleXImportDeclaration() throws RecognitionException { } - // InternalStatemachine.g:1305:5: ( ( ruleQualifiedNameInStaticImport ) ) - // InternalStatemachine.g:1306:6: ( ruleQualifiedNameInStaticImport ) + // InternalStatemachine.g:1221:5: ( ( ruleQualifiedNameInStaticImport ) ) + // InternalStatemachine.g:1222:6: ( ruleQualifiedNameInStaticImport ) { - // InternalStatemachine.g:1306:6: ( ruleQualifiedNameInStaticImport ) - // InternalStatemachine.g:1307:7: ruleQualifiedNameInStaticImport + // InternalStatemachine.g:1222:6: ( ruleQualifiedNameInStaticImport ) + // InternalStatemachine.g:1223:7: ruleQualifiedNameInStaticImport { if ( state.backtracking==0 ) { @@ -3732,7 +3514,7 @@ public final EObject ruleXImportDeclaration() throws RecognitionException { newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_0_2_0()); } - pushFollow(FOLLOW_29); + pushFollow(FOLLOW_28); ruleQualifiedNameInStaticImport(); state._fsp--; @@ -3748,34 +3530,34 @@ public final EObject ruleXImportDeclaration() throws RecognitionException { } - // InternalStatemachine.g:1321:5: ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) - int alt24=2; - int LA24_0 = input.LA(1); + // InternalStatemachine.g:1237:5: ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) + int alt23=2; + int LA23_0 = input.LA(1); - if ( (LA24_0==30) ) { - alt24=1; + if ( (LA23_0==29) ) { + alt23=1; } - else if ( (LA24_0==RULE_ID) ) { - alt24=2; + else if ( (LA23_0==RULE_ID) ) { + alt23=2; } else { if (state.backtracking>0) {state.failed=true; return current;} NoViableAltException nvae = - new NoViableAltException("", 24, 0, input); + new NoViableAltException("", 23, 0, input); throw nvae; } - switch (alt24) { + switch (alt23) { case 1 : - // InternalStatemachine.g:1322:6: ( (lv_wildcard_4_0= '*' ) ) + // InternalStatemachine.g:1238:6: ( (lv_wildcard_4_0= '*' ) ) { - // InternalStatemachine.g:1322:6: ( (lv_wildcard_4_0= '*' ) ) - // InternalStatemachine.g:1323:7: (lv_wildcard_4_0= '*' ) + // InternalStatemachine.g:1238:6: ( (lv_wildcard_4_0= '*' ) ) + // InternalStatemachine.g:1239:7: (lv_wildcard_4_0= '*' ) { - // InternalStatemachine.g:1323:7: (lv_wildcard_4_0= '*' ) - // InternalStatemachine.g:1324:8: lv_wildcard_4_0= '*' + // InternalStatemachine.g:1239:7: (lv_wildcard_4_0= '*' ) + // InternalStatemachine.g:1240:8: lv_wildcard_4_0= '*' { - lv_wildcard_4_0=(Token)match(input,30,FOLLOW_30); if (state.failed) return current; + lv_wildcard_4_0=(Token)match(input,29,FOLLOW_29); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(lv_wildcard_4_0, grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_1_0_3_0_0()); @@ -3799,20 +3581,20 @@ else if ( (LA24_0==RULE_ID) ) { } break; case 2 : - // InternalStatemachine.g:1337:6: ( (lv_memberName_5_0= ruleValidID ) ) + // InternalStatemachine.g:1253:6: ( (lv_memberName_5_0= ruleValidID ) ) { - // InternalStatemachine.g:1337:6: ( (lv_memberName_5_0= ruleValidID ) ) - // InternalStatemachine.g:1338:7: (lv_memberName_5_0= ruleValidID ) + // InternalStatemachine.g:1253:6: ( (lv_memberName_5_0= ruleValidID ) ) + // InternalStatemachine.g:1254:7: (lv_memberName_5_0= ruleValidID ) { - // InternalStatemachine.g:1338:7: (lv_memberName_5_0= ruleValidID ) - // InternalStatemachine.g:1339:8: lv_memberName_5_0= ruleValidID + // InternalStatemachine.g:1254:7: (lv_memberName_5_0= ruleValidID ) + // InternalStatemachine.g:1255:8: lv_memberName_5_0= ruleValidID { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_1_0_3_1_0()); } - pushFollow(FOLLOW_30); + pushFollow(FOLLOW_29); lv_memberName_5_0=ruleValidID(); state._fsp--; @@ -3849,13 +3631,13 @@ else if ( (LA24_0==RULE_ID) ) { } break; case 2 : - // InternalStatemachine.g:1359:4: ( ( ruleQualifiedName ) ) + // InternalStatemachine.g:1275:4: ( ( ruleQualifiedName ) ) { - // InternalStatemachine.g:1359:4: ( ( ruleQualifiedName ) ) - // InternalStatemachine.g:1360:5: ( ruleQualifiedName ) + // InternalStatemachine.g:1275:4: ( ( ruleQualifiedName ) ) + // InternalStatemachine.g:1276:5: ( ruleQualifiedName ) { - // InternalStatemachine.g:1360:5: ( ruleQualifiedName ) - // InternalStatemachine.g:1361:6: ruleQualifiedName + // InternalStatemachine.g:1276:5: ( ruleQualifiedName ) + // InternalStatemachine.g:1277:6: ruleQualifiedName { if ( state.backtracking==0 ) { @@ -3869,7 +3651,7 @@ else if ( (LA24_0==RULE_ID) ) { newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_1_0()); } - pushFollow(FOLLOW_30); + pushFollow(FOLLOW_29); ruleQualifiedName(); state._fsp--; @@ -3889,20 +3671,20 @@ else if ( (LA24_0==RULE_ID) ) { } break; case 3 : - // InternalStatemachine.g:1376:4: ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) + // InternalStatemachine.g:1292:4: ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) { - // InternalStatemachine.g:1376:4: ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) - // InternalStatemachine.g:1377:5: (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) + // InternalStatemachine.g:1292:4: ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) + // InternalStatemachine.g:1293:5: (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) { - // InternalStatemachine.g:1377:5: (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) - // InternalStatemachine.g:1378:6: lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard + // InternalStatemachine.g:1293:5: (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) + // InternalStatemachine.g:1294:6: lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_2_0()); } - pushFollow(FOLLOW_30); + pushFollow(FOLLOW_29); lv_importedNamespace_7_0=ruleQualifiedNameWithWildcard(); state._fsp--; @@ -3932,18 +3714,18 @@ else if ( (LA24_0==RULE_ID) ) { } - // InternalStatemachine.g:1396:3: (otherlv_8= ';' )? - int alt26=2; - int LA26_0 = input.LA(1); + // InternalStatemachine.g:1312:3: (otherlv_8= ';' )? + int alt25=2; + int LA25_0 = input.LA(1); - if ( (LA26_0==34) ) { - alt26=1; + if ( (LA25_0==33) ) { + alt25=1; } - switch (alt26) { + switch (alt25) { case 1 : - // InternalStatemachine.g:1397:4: otherlv_8= ';' + // InternalStatemachine.g:1313:4: otherlv_8= ';' { - otherlv_8=(Token)match(input,34,FOLLOW_2); if (state.failed) return current; + otherlv_8=(Token)match(input,33,FOLLOW_2); if (state.failed) return current; if ( state.backtracking==0 ) { newLeafNode(otherlv_8, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2()); @@ -3980,7 +3762,7 @@ else if ( (LA24_0==RULE_ID) ) { // $ANTLR start "entryRuleQualifiedNameInStaticImport" - // InternalStatemachine.g:1406:1: entryRuleQualifiedNameInStaticImport returns [String current=null] : iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ; + // InternalStatemachine.g:1322:1: entryRuleQualifiedNameInStaticImport returns [String current=null] : iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ; public final String entryRuleQualifiedNameInStaticImport() throws RecognitionException { String current = null; @@ -3988,8 +3770,8 @@ public final String entryRuleQualifiedNameInStaticImport() throws RecognitionExc try { - // InternalStatemachine.g:1406:67: (iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ) - // InternalStatemachine.g:1407:2: iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF + // InternalStatemachine.g:1322:67: (iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ) + // InternalStatemachine.g:1323:2: iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getQualifiedNameInStaticImportRule()); @@ -4020,7 +3802,7 @@ public final String entryRuleQualifiedNameInStaticImport() throws RecognitionExc // $ANTLR start "ruleQualifiedNameInStaticImport" - // InternalStatemachine.g:1413:1: ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID kw= '.' )+ ; + // InternalStatemachine.g:1329:1: ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID kw= '.' )+ ; public final AntlrDatatypeRuleToken ruleQualifiedNameInStaticImport() throws RecognitionException { AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); @@ -4032,37 +3814,37 @@ public final AntlrDatatypeRuleToken ruleQualifiedNameInStaticImport() throws Rec enterRule(); try { - // InternalStatemachine.g:1419:2: ( (this_ValidID_0= ruleValidID kw= '.' )+ ) - // InternalStatemachine.g:1420:2: (this_ValidID_0= ruleValidID kw= '.' )+ + // InternalStatemachine.g:1335:2: ( (this_ValidID_0= ruleValidID kw= '.' )+ ) + // InternalStatemachine.g:1336:2: (this_ValidID_0= ruleValidID kw= '.' )+ { - // InternalStatemachine.g:1420:2: (this_ValidID_0= ruleValidID kw= '.' )+ - int cnt27=0; - loop27: + // InternalStatemachine.g:1336:2: (this_ValidID_0= ruleValidID kw= '.' )+ + int cnt26=0; + loop26: do { - int alt27=2; - int LA27_0 = input.LA(1); + int alt26=2; + int LA26_0 = input.LA(1); - if ( (LA27_0==RULE_ID) ) { - int LA27_2 = input.LA(2); + if ( (LA26_0==RULE_ID) ) { + int LA26_2 = input.LA(2); - if ( (LA27_2==25) ) { - alt27=1; + if ( (LA26_2==24) ) { + alt26=1; } } - switch (alt27) { + switch (alt26) { case 1 : - // InternalStatemachine.g:1421:3: this_ValidID_0= ruleValidID kw= '.' + // InternalStatemachine.g:1337:3: this_ValidID_0= ruleValidID kw= '.' { if ( state.backtracking==0 ) { newCompositeNode(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); } - pushFollow(FOLLOW_25); + pushFollow(FOLLOW_24); this_ValidID_0=ruleValidID(); state._fsp--; @@ -4077,7 +3859,7 @@ public final AntlrDatatypeRuleToken ruleQualifiedNameInStaticImport() throws Rec afterParserOrEnumRuleCall(); } - kw=(Token)match(input,25,FOLLOW_31); if (state.failed) return current; + kw=(Token)match(input,24,FOLLOW_30); if (state.failed) return current; if ( state.backtracking==0 ) { current.merge(kw); @@ -4089,13 +3871,13 @@ public final AntlrDatatypeRuleToken ruleQualifiedNameInStaticImport() throws Rec break; default : - if ( cnt27 >= 1 ) break loop27; + if ( cnt26 >= 1 ) break loop26; if (state.backtracking>0) {state.failed=true; return current;} EarlyExitException eee = - new EarlyExitException(27, input); + new EarlyExitException(26, input); throw eee; } - cnt27++; + cnt26++; } while (true); @@ -4120,14 +3902,14 @@ public final AntlrDatatypeRuleToken ruleQualifiedNameInStaticImport() throws Rec // $ANTLR start synpred1_InternalStatemachine public final void synpred1_InternalStatemachine_fragment() throws RecognitionException { - // InternalStatemachine.g:478:5: ( ( () ruleArrayBrackets ) ) - // InternalStatemachine.g:478:6: ( () ruleArrayBrackets ) + // InternalStatemachine.g:394:5: ( ( () ruleArrayBrackets ) ) + // InternalStatemachine.g:394:6: ( () ruleArrayBrackets ) { - // InternalStatemachine.g:478:6: ( () ruleArrayBrackets ) - // InternalStatemachine.g:479:6: () ruleArrayBrackets + // InternalStatemachine.g:394:6: ( () ruleArrayBrackets ) + // InternalStatemachine.g:395:6: () ruleArrayBrackets { - // InternalStatemachine.g:479:6: () - // InternalStatemachine.g:480:6: + // InternalStatemachine.g:395:6: () + // InternalStatemachine.g:396:6: { } @@ -4146,10 +3928,10 @@ public final void synpred1_InternalStatemachine_fragment() throws RecognitionExc // $ANTLR start synpred2_InternalStatemachine public final void synpred2_InternalStatemachine_fragment() throws RecognitionException { - // InternalStatemachine.g:675:5: ( '<' ) - // InternalStatemachine.g:675:6: '<' + // InternalStatemachine.g:591:5: ( '<' ) + // InternalStatemachine.g:591:6: '<' { - match(input,23,FOLLOW_2); if (state.failed) return ; + match(input,22,FOLLOW_2); if (state.failed) return ; } } @@ -4157,18 +3939,18 @@ public final void synpred2_InternalStatemachine_fragment() throws RecognitionExc // $ANTLR start synpred3_InternalStatemachine public final void synpred3_InternalStatemachine_fragment() throws RecognitionException { - // InternalStatemachine.g:731:6: ( ( () '.' ) ) - // InternalStatemachine.g:731:7: ( () '.' ) + // InternalStatemachine.g:647:6: ( ( () '.' ) ) + // InternalStatemachine.g:647:7: ( () '.' ) { - // InternalStatemachine.g:731:7: ( () '.' ) - // InternalStatemachine.g:732:7: () '.' + // InternalStatemachine.g:647:7: ( () '.' ) + // InternalStatemachine.g:648:7: () '.' { - // InternalStatemachine.g:732:7: () - // InternalStatemachine.g:733:7: + // InternalStatemachine.g:648:7: () + // InternalStatemachine.g:649:7: { } - match(input,25,FOLLOW_2); if (state.failed) return ; + match(input,24,FOLLOW_2); if (state.failed) return ; } @@ -4179,10 +3961,10 @@ public final void synpred3_InternalStatemachine_fragment() throws RecognitionExc // $ANTLR start synpred4_InternalStatemachine public final void synpred4_InternalStatemachine_fragment() throws RecognitionException { - // InternalStatemachine.g:769:7: ( '<' ) - // InternalStatemachine.g:769:8: '<' + // InternalStatemachine.g:685:7: ( '<' ) + // InternalStatemachine.g:685:8: '<' { - match(input,23,FOLLOW_2); if (state.failed) return ; + match(input,22,FOLLOW_2); if (state.failed) return ; } } @@ -4248,18 +4030,18 @@ public final boolean synpred1_InternalStatemachine() { } - protected DFA25 dfa25 = new DFA25(this); + protected DFA24 dfa24 = new DFA24(this); static final String dfa_1s = "\7\uffff"; static final String dfa_2s = "\2\uffff\1\4\2\uffff\1\4\1\uffff"; - static final String dfa_3s = "\1\4\1\uffff\1\31\1\4\1\uffff\1\31\1\uffff"; - static final String dfa_4s = "\1\40\1\uffff\1\42\1\36\1\uffff\1\42\1\uffff"; + static final String dfa_3s = "\1\4\1\uffff\1\30\1\4\1\uffff\1\30\1\uffff"; + static final String dfa_4s = "\1\37\1\uffff\1\41\1\35\1\uffff\1\41\1\uffff"; static final String dfa_5s = "\1\uffff\1\1\2\uffff\1\2\1\uffff\1\3"; static final String dfa_6s = "\7\uffff}>"; static final String[] dfa_7s = { - "\1\2\33\uffff\1\1", + "\1\2\32\uffff\1\1", "", "\1\3\10\uffff\1\4", - "\1\5\31\uffff\1\6", + "\1\5\30\uffff\1\6", "", "\1\3\10\uffff\1\4", "" @@ -4273,11 +4055,11 @@ public final boolean synpred1_InternalStatemachine() { static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s); static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s); - class DFA25 extends DFA { + class DFA24 extends DFA { - public DFA25(BaseRecognizer recognizer) { + public DFA24(BaseRecognizer recognizer) { this.recognizer = recognizer; - this.decisionNumber = 25; + this.decisionNumber = 24; this.eot = dfa_1; this.eof = dfa_2; this.min = dfa_3; @@ -4287,7 +4069,7 @@ public DFA25(BaseRecognizer recognizer) { this.transition = dfa_7; } public String getDescription() { - return "1275:3: ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) )"; + return "1191:3: ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_4_0= '*' ) ) | ( (lv_memberName_5_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) )"; } } @@ -4296,32 +4078,31 @@ public String getDescription() { public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000810L}); - public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000019002L}); - public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000018002L}); - public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000010002L}); - public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000006000L}); - public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000010800L}); + public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000009002L}); + public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000008002L}); + public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000006000L}); + public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000008800L}); + public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000010000L}); public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000020000L}); - public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000040002L}); - public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000700010L}); - public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000220000L}); - public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000500010L}); - public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000800002L}); - public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000004500010L}); - public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000001020000L}); - public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000002000002L}); - public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000002800002L}); - public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000028000002L}); - public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000010000002L}); - public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000002000000L}); - public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000040000000L}); + public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000020002L}); + public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000380010L}); + public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000110000L}); + public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000280010L}); + public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000400002L}); + public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000002280010L}); + public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000810000L}); + public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000001000002L}); + public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000001400002L}); + public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000014000002L}); + public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000008000002L}); + public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000020000000L}); + public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000080000010L}); public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000100000010L}); - public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000200000010L}); - public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000040000010L}); - public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000400000002L}); - public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000012L}); + public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000020000010L}); + public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000200000002L}); + public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000000000012L}); } \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/serializer/StatemachineSemanticSequencer.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/serializer/StatemachineSemanticSequencer.java index 232fee10c..2d05af81d 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/serializer/StatemachineSemanticSequencer.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/serializer/StatemachineSemanticSequencer.java @@ -6,7 +6,6 @@ import com.google.inject.Inject; import de.cognicrypt.order.editor.services.StatemachineGrammarAccess; import de.cognicrypt.order.editor.statemachine.Event; -import de.cognicrypt.order.editor.statemachine.FinalState; import de.cognicrypt.order.editor.statemachine.State; import de.cognicrypt.order.editor.statemachine.Statemachine; import de.cognicrypt.order.editor.statemachine.StatemachinePackage; @@ -51,9 +50,6 @@ public void sequence(ISerializationContext context, EObject semanticObject) { case StatemachinePackage.EVENT: sequence_Event(context, (Event) semanticObject); return; - case StatemachinePackage.FINAL_STATE: - sequence_FinalState(context, (FinalState) semanticObject); - return; case StatemachinePackage.STATE: sequence_State(context, (State) semanticObject); return; @@ -133,36 +129,15 @@ else if (epackage == XtypePackage.eINSTANCE) * Event returns Event * * Constraint: - * (name=ID code=ID) + * name=ID */ protected void sequence_Event(ISerializationContext context, Event semanticObject) { if (errorAcceptor != null) { if (transientValues.isValueTransient(semanticObject, StatemachinePackage.Literals.EVENT__NAME) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, StatemachinePackage.Literals.EVENT__NAME)); - if (transientValues.isValueTransient(semanticObject, StatemachinePackage.Literals.EVENT__CODE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, StatemachinePackage.Literals.EVENT__CODE)); - } - SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0_0(), semanticObject.getName()); - feeder.accept(grammarAccess.getEventAccess().getCodeIDTerminalRuleCall_1_0(), semanticObject.getCode()); - feeder.finish(); - } - - - /** - * Contexts: - * FinalState returns FinalState - * - * Constraint: - * name=ID - */ - protected void sequence_FinalState(ISerializationContext context, FinalState semanticObject) { - if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, StatemachinePackage.Literals.FINAL_STATE__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, StatemachinePackage.Literals.FINAL_STATE__NAME)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getFinalStateAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName()); + feeder.accept(grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0(), semanticObject.getName()); feeder.finish(); } @@ -184,7 +159,7 @@ protected void sequence_State(ISerializationContext context, State semanticObjec * Statemachine returns Statemachine * * Constraint: - * (events+=Event* states+=State* finalstates+=FinalState* transitions+=Transition*) + * (events+=Event* states+=State* transitions+=Transition*) */ protected void sequence_Statemachine(ISerializationContext context, Statemachine semanticObject) { genericSequencer.createSequence(context, semanticObject); diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/services/StatemachineGrammarAccess.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/services/StatemachineGrammarAccess.java index 7278884c7..6679a8f95 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/services/StatemachineGrammarAccess.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/services/StatemachineGrammarAccess.java @@ -35,10 +35,8 @@ public class StatemachineElements extends AbstractParserRuleElementFinder { private final Keyword cEndKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2); private final Assignment cStatesAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cStatesStateParserRuleCall_2_0 = (RuleCall)cStatesAssignment_2.eContents().get(0); - private final Assignment cFinalstatesAssignment_3 = (Assignment)cGroup.eContents().get(3); - private final RuleCall cFinalstatesFinalStateParserRuleCall_3_0 = (RuleCall)cFinalstatesAssignment_3.eContents().get(0); - private final Assignment cTransitionsAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cTransitionsTransitionParserRuleCall_4_0 = (RuleCall)cTransitionsAssignment_4.eContents().get(0); + private final Assignment cTransitionsAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cTransitionsTransitionParserRuleCall_3_0 = (RuleCall)cTransitionsAssignment_3.eContents().get(0); //Statemachine : // {Statemachine} @@ -46,7 +44,6 @@ public class StatemachineElements extends AbstractParserRuleElementFinder { // events+=Event+ // 'end')? // states+=State* - // finalstates+=FinalState* // transitions+=Transition* //; @Override public ParserRule getRule() { return rule; } @@ -56,7 +53,6 @@ public class StatemachineElements extends AbstractParserRuleElementFinder { // events+=Event+ //'end')? //states+=State* - //finalstates+=FinalState* //transitions+=Transition* public Group getGroup() { return cGroup; } @@ -86,45 +82,27 @@ public class StatemachineElements extends AbstractParserRuleElementFinder { //State public RuleCall getStatesStateParserRuleCall_2_0() { return cStatesStateParserRuleCall_2_0; } - //finalstates+=FinalState* - public Assignment getFinalstatesAssignment_3() { return cFinalstatesAssignment_3; } - - //FinalState - public RuleCall getFinalstatesFinalStateParserRuleCall_3_0() { return cFinalstatesFinalStateParserRuleCall_3_0; } - //transitions+=Transition* - public Assignment getTransitionsAssignment_4() { return cTransitionsAssignment_4; } + public Assignment getTransitionsAssignment_3() { return cTransitionsAssignment_3; } //Transition - public RuleCall getTransitionsTransitionParserRuleCall_4_0() { return cTransitionsTransitionParserRuleCall_4_0; } + public RuleCall getTransitionsTransitionParserRuleCall_3_0() { return cTransitionsTransitionParserRuleCall_3_0; } } public class EventElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.cognicrypt.order.editor.Statemachine.Event"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0); - private final RuleCall cNameIDTerminalRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0); - private final Assignment cCodeAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cCodeIDTerminalRuleCall_1_0 = (RuleCall)cCodeAssignment_1.eContents().get(0); + private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0); //Event: - // name=ID code=ID + // name=ID //; @Override public ParserRule getRule() { return rule; } - //name=ID code=ID - public Group getGroup() { return cGroup; } - //name=ID - public Assignment getNameAssignment_0() { return cNameAssignment_0; } + public Assignment getNameAssignment() { return cNameAssignment; } //ID - public RuleCall getNameIDTerminalRuleCall_0_0() { return cNameIDTerminalRuleCall_0_0; } - - //code=ID - public Assignment getCodeAssignment_1() { return cCodeAssignment_1; } - - //ID - public RuleCall getCodeIDTerminalRuleCall_1_0() { return cCodeIDTerminalRuleCall_1_0; } + public RuleCall getNameIDTerminalRuleCall_0() { return cNameIDTerminalRuleCall_0; } } public class StateElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.cognicrypt.order.editor.Statemachine.State"); @@ -182,36 +160,6 @@ public class StateElements extends AbstractParserRuleElementFinder { //'end' public Keyword getEndKeyword_4() { return cEndKeyword_4; } } - public class FinalStateElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.cognicrypt.order.editor.Statemachine.FinalState"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cFinalstateKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); - private final Keyword cEndKeyword_2 = (Keyword)cGroup.eContents().get(2); - - //FinalState: - // 'finalstate' name=ID - // 'end' - //; - @Override public ParserRule getRule() { return rule; } - - //'finalstate' name=ID - //'end' - public Group getGroup() { return cGroup; } - - //'finalstate' - public Keyword getFinalstateKeyword_0() { return cFinalstateKeyword_0; } - - //name=ID - public Assignment getNameAssignment_1() { return cNameAssignment_1; } - - //ID - public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } - - //'end' - public Keyword getEndKeyword_2() { return cEndKeyword_2; } - } public class TransitionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.cognicrypt.order.editor.Statemachine.Transition"); private final Group cGroup = (Group)rule.eContents().get(1); @@ -293,7 +241,6 @@ public class TransitionElements extends AbstractParserRuleElementFinder { private final StatemachineElements pStatemachine; private final EventElements pEvent; private final StateElements pState; - private final FinalStateElements pFinalState; private final TransitionElements pTransition; private final Grammar grammar; @@ -308,7 +255,6 @@ public StatemachineGrammarAccess(GrammarProvider grammarProvider, this.pStatemachine = new StatemachineElements(); this.pEvent = new EventElements(); this.pState = new StateElements(); - this.pFinalState = new FinalStateElements(); this.pTransition = new TransitionElements(); } @@ -345,7 +291,6 @@ public XtypeGrammarAccess getXtypeGrammarAccess() { // events+=Event+ // 'end')? // states+=State* - // finalstates+=FinalState* // transitions+=Transition* //; public StatemachineElements getStatemachineAccess() { @@ -357,7 +302,7 @@ public ParserRule getStatemachineRule() { } //Event: - // name=ID code=ID + // name=ID //; public EventElements getEventAccess() { return pEvent; @@ -380,18 +325,6 @@ public ParserRule getStateRule() { return getStateAccess().getRule(); } - //FinalState: - // 'finalstate' name=ID - // 'end' - //; - public FinalStateElements getFinalStateAccess() { - return pFinalState; - } - - public ParserRule getFinalStateRule() { - return getFinalStateAccess().getRule(); - } - //Transition: // 'transition' name=ID // fromState=[State] ',' event=[Event] ',' endState=[State] diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Event.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Event.java index ad2a6c349..20d3d1333 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Event.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Event.java @@ -15,7 +15,6 @@ *

*
    *
  • {@link de.cognicrypt.order.editor.statemachine.Event#getName Name}
  • - *
  • {@link de.cognicrypt.order.editor.statemachine.Event#getCode Code}
  • *
* * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getEvent() @@ -46,26 +45,4 @@ public interface Event extends EObject */ void setName(String value); - /** - * Returns the value of the 'Code' attribute. - * - * - * @return the value of the 'Code' attribute. - * @see #setCode(String) - * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getEvent_Code() - * @model - * @generated - */ - String getCode(); - - /** - * Sets the value of the '{@link de.cognicrypt.order.editor.statemachine.Event#getCode Code}' attribute. - * - * - * @param value the new value of the 'Code' attribute. - * @see #getCode() - * @generated - */ - void setCode(String value); - } // Event diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/FinalState.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/FinalState.java deleted file mode 100644 index fb0c0af75..000000000 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/FinalState.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * generated by Xtext 2.25.0 - */ -package de.cognicrypt.order.editor.statemachine; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Final State'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link de.cognicrypt.order.editor.statemachine.FinalState#getName Name}
  • - *
- * - * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getFinalState() - * @model - * @generated - */ -public interface FinalState extends EObject -{ - /** - * Returns the value of the 'Name' attribute. - * - * - * @return the value of the 'Name' attribute. - * @see #setName(String) - * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getFinalState_Name() - * @model - * @generated - */ - String getName(); - - /** - * Sets the value of the '{@link de.cognicrypt.order.editor.statemachine.FinalState#getName Name}' attribute. - * - * - * @param value the new value of the 'Name' attribute. - * @see #getName() - * @generated - */ - void setName(String value); - -} // FinalState diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java index 7108ec754..ca52c195e 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/Statemachine.java @@ -18,7 +18,6 @@ *
    *
  • {@link de.cognicrypt.order.editor.statemachine.Statemachine#getEvents Events}
  • *
  • {@link de.cognicrypt.order.editor.statemachine.Statemachine#getStates States}
  • - *
  • {@link de.cognicrypt.order.editor.statemachine.Statemachine#getFinalstates Finalstates}
  • *
  • {@link de.cognicrypt.order.editor.statemachine.Statemachine#getTransitions Transitions}
  • *
* @@ -52,18 +51,6 @@ public interface Statemachine extends EObject */ EList getStates(); - /** - * Returns the value of the 'Finalstates' containment reference list. - * The list contents are of type {@link de.cognicrypt.order.editor.statemachine.FinalState}. - * - * - * @return the value of the 'Finalstates' containment reference list. - * @see de.cognicrypt.order.editor.statemachine.StatemachinePackage#getStatemachine_Finalstates() - * @model containment="true" - * @generated - */ - EList getFinalstates(); - /** * Returns the value of the 'Transitions' containment reference list. * The list contents are of type {@link de.cognicrypt.order.editor.statemachine.Transition}. diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachineFactory.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachineFactory.java index 23a91efea..7398dbb47 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachineFactory.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachineFactory.java @@ -50,15 +50,6 @@ public interface StatemachineFactory extends EFactory */ State createState(); - /** - * Returns a new object of class 'Final State'. - * - * - * @return a new object of class 'Final State'. - * @generated - */ - FinalState createFinalState(); - /** * Returns a new object of class 'Transition'. * diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachinePackage.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachinePackage.java index d449251b4..b4a41e44a 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachinePackage.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/StatemachinePackage.java @@ -85,15 +85,6 @@ public interface StatemachinePackage extends EPackage */ int STATEMACHINE__STATES = 1; - /** - * The feature id for the 'Finalstates' containment reference list. - * - * - * @generated - * @ordered - */ - int STATEMACHINE__FINALSTATES = 2; - /** * The feature id for the 'Transitions' containment reference list. * @@ -101,7 +92,7 @@ public interface StatemachinePackage extends EPackage * @generated * @ordered */ - int STATEMACHINE__TRANSITIONS = 3; + int STATEMACHINE__TRANSITIONS = 2; /** * The number of structural features of the 'Statemachine' class. @@ -110,7 +101,7 @@ public interface StatemachinePackage extends EPackage * @generated * @ordered */ - int STATEMACHINE_FEATURE_COUNT = 4; + int STATEMACHINE_FEATURE_COUNT = 3; /** * The meta object id for the '{@link de.cognicrypt.order.editor.statemachine.impl.EventImpl Event}' class. @@ -131,15 +122,6 @@ public interface StatemachinePackage extends EPackage */ int EVENT__NAME = 0; - /** - * The feature id for the 'Code' attribute. - * - * - * @generated - * @ordered - */ - int EVENT__CODE = 1; - /** * The number of structural features of the 'Event' class. * @@ -147,7 +129,7 @@ public interface StatemachinePackage extends EPackage * @generated * @ordered */ - int EVENT_FEATURE_COUNT = 2; + int EVENT_FEATURE_COUNT = 1; /** * The meta object id for the '{@link de.cognicrypt.order.editor.statemachine.impl.StateImpl State}' class. @@ -195,34 +177,6 @@ public interface StatemachinePackage extends EPackage */ int STATE_FEATURE_COUNT = 3; - /** - * The meta object id for the '{@link de.cognicrypt.order.editor.statemachine.impl.FinalStateImpl Final State}' class. - * - * - * @see de.cognicrypt.order.editor.statemachine.impl.FinalStateImpl - * @see de.cognicrypt.order.editor.statemachine.impl.StatemachinePackageImpl#getFinalState() - * @generated - */ - int FINAL_STATE = 3; - - /** - * The feature id for the 'Name' attribute. - * - * - * @generated - * @ordered - */ - int FINAL_STATE__NAME = 0; - - /** - * The number of structural features of the 'Final State' class. - * - * - * @generated - * @ordered - */ - int FINAL_STATE_FEATURE_COUNT = 1; - /** * The meta object id for the '{@link de.cognicrypt.order.editor.statemachine.impl.TransitionImpl Transition}' class. * @@ -231,7 +185,7 @@ public interface StatemachinePackage extends EPackage * @see de.cognicrypt.order.editor.statemachine.impl.StatemachinePackageImpl#getTransition() * @generated */ - int TRANSITION = 4; + int TRANSITION = 3; /** * The feature id for the 'Name' attribute. @@ -311,17 +265,6 @@ public interface StatemachinePackage extends EPackage */ EReference getStatemachine_States(); - /** - * Returns the meta object for the containment reference list '{@link de.cognicrypt.order.editor.statemachine.Statemachine#getFinalstates Finalstates}'. - * - * - * @return the meta object for the containment reference list 'Finalstates'. - * @see de.cognicrypt.order.editor.statemachine.Statemachine#getFinalstates() - * @see #getStatemachine() - * @generated - */ - EReference getStatemachine_Finalstates(); - /** * Returns the meta object for the containment reference list '{@link de.cognicrypt.order.editor.statemachine.Statemachine#getTransitions Transitions}'. * @@ -354,17 +297,6 @@ public interface StatemachinePackage extends EPackage */ EAttribute getEvent_Name(); - /** - * Returns the meta object for the attribute '{@link de.cognicrypt.order.editor.statemachine.Event#getCode Code}'. - * - * - * @return the meta object for the attribute 'Code'. - * @see de.cognicrypt.order.editor.statemachine.Event#getCode() - * @see #getEvent() - * @generated - */ - EAttribute getEvent_Code(); - /** * Returns the meta object for class '{@link de.cognicrypt.order.editor.statemachine.State State}'. * @@ -408,27 +340,6 @@ public interface StatemachinePackage extends EPackage */ EReference getState_Transitions(); - /** - * Returns the meta object for class '{@link de.cognicrypt.order.editor.statemachine.FinalState Final State}'. - * - * - * @return the meta object for class 'Final State'. - * @see de.cognicrypt.order.editor.statemachine.FinalState - * @generated - */ - EClass getFinalState(); - - /** - * Returns the meta object for the attribute '{@link de.cognicrypt.order.editor.statemachine.FinalState#getName Name}'. - * - * - * @return the meta object for the attribute 'Name'. - * @see de.cognicrypt.order.editor.statemachine.FinalState#getName() - * @see #getFinalState() - * @generated - */ - EAttribute getFinalState_Name(); - /** * Returns the meta object for class '{@link de.cognicrypt.order.editor.statemachine.Transition Transition}'. * @@ -532,14 +443,6 @@ interface Literals */ EReference STATEMACHINE__STATES = eINSTANCE.getStatemachine_States(); - /** - * The meta object literal for the 'Finalstates' containment reference list feature. - * - * - * @generated - */ - EReference STATEMACHINE__FINALSTATES = eINSTANCE.getStatemachine_Finalstates(); - /** * The meta object literal for the 'Transitions' containment reference list feature. * @@ -566,14 +469,6 @@ interface Literals */ EAttribute EVENT__NAME = eINSTANCE.getEvent_Name(); - /** - * The meta object literal for the 'Code' attribute feature. - * - * - * @generated - */ - EAttribute EVENT__CODE = eINSTANCE.getEvent_Code(); - /** * The meta object literal for the '{@link de.cognicrypt.order.editor.statemachine.impl.StateImpl State}' class. * @@ -608,24 +503,6 @@ interface Literals */ EReference STATE__TRANSITIONS = eINSTANCE.getState_Transitions(); - /** - * The meta object literal for the '{@link de.cognicrypt.order.editor.statemachine.impl.FinalStateImpl Final State}' class. - * - * - * @see de.cognicrypt.order.editor.statemachine.impl.FinalStateImpl - * @see de.cognicrypt.order.editor.statemachine.impl.StatemachinePackageImpl#getFinalState() - * @generated - */ - EClass FINAL_STATE = eINSTANCE.getFinalState(); - - /** - * The meta object literal for the 'Name' attribute feature. - * - * - * @generated - */ - EAttribute FINAL_STATE__NAME = eINSTANCE.getFinalState_Name(); - /** * The meta object literal for the '{@link de.cognicrypt.order.editor.statemachine.impl.TransitionImpl Transition}' class. * diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/EventImpl.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/EventImpl.java index eb3b838a5..3ce6e3f40 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/EventImpl.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/EventImpl.java @@ -22,7 +22,6 @@ *

*
    *
  • {@link de.cognicrypt.order.editor.statemachine.impl.EventImpl#getName Name}
  • - *
  • {@link de.cognicrypt.order.editor.statemachine.impl.EventImpl#getCode Code}
  • *
* * @generated @@ -49,26 +48,6 @@ public class EventImpl extends MinimalEObjectImpl.Container implements Event */ protected String name = NAME_EDEFAULT; - /** - * The default value of the '{@link #getCode() Code}' attribute. - * - * - * @see #getCode() - * @generated - * @ordered - */ - protected static final String CODE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getCode() Code}' attribute. - * - * - * @see #getCode() - * @generated - * @ordered - */ - protected String code = CODE_EDEFAULT; - /** * * @@ -115,31 +94,6 @@ public void setName(String newName) eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.EVENT__NAME, oldName, name)); } - /** - * - * - * @generated - */ - @Override - public String getCode() - { - return code; - } - - /** - * - * - * @generated - */ - @Override - public void setCode(String newCode) - { - String oldCode = code; - code = newCode; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.EVENT__CODE, oldCode, code)); - } - /** * * @@ -152,8 +106,6 @@ public Object eGet(int featureID, boolean resolve, boolean coreType) { case StatemachinePackage.EVENT__NAME: return getName(); - case StatemachinePackage.EVENT__CODE: - return getCode(); } return super.eGet(featureID, resolve, coreType); } @@ -171,9 +123,6 @@ public void eSet(int featureID, Object newValue) case StatemachinePackage.EVENT__NAME: setName((String)newValue); return; - case StatemachinePackage.EVENT__CODE: - setCode((String)newValue); - return; } super.eSet(featureID, newValue); } @@ -191,9 +140,6 @@ public void eUnset(int featureID) case StatemachinePackage.EVENT__NAME: setName(NAME_EDEFAULT); return; - case StatemachinePackage.EVENT__CODE: - setCode(CODE_EDEFAULT); - return; } super.eUnset(featureID); } @@ -210,8 +156,6 @@ public boolean eIsSet(int featureID) { case StatemachinePackage.EVENT__NAME: return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - case StatemachinePackage.EVENT__CODE: - return CODE_EDEFAULT == null ? code != null : !CODE_EDEFAULT.equals(code); } return super.eIsSet(featureID); } @@ -229,8 +173,6 @@ public String toString() StringBuilder result = new StringBuilder(super.toString()); result.append(" (name: "); result.append(name); - result.append(", code: "); - result.append(code); result.append(')'); return result.toString(); } diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/FinalStateImpl.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/FinalStateImpl.java deleted file mode 100644 index 7ae08183c..000000000 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/FinalStateImpl.java +++ /dev/null @@ -1,180 +0,0 @@ -/** - * generated by Xtext 2.25.0 - */ -package de.cognicrypt.order.editor.statemachine.impl; - -import de.cognicrypt.order.editor.statemachine.FinalState; -import de.cognicrypt.order.editor.statemachine.StatemachinePackage; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -/** - * - * An implementation of the model object 'Final State'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link de.cognicrypt.order.editor.statemachine.impl.FinalStateImpl#getName Name}
  • - *
- * - * @generated - */ -public class FinalStateImpl extends MinimalEObjectImpl.Container implements FinalState -{ - /** - * The default value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected static final String NAME_EDEFAULT = null; - - /** - * The cached value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected String name = NAME_EDEFAULT; - - /** - * - * - * @generated - */ - protected FinalStateImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return StatemachinePackage.Literals.FINAL_STATE; - } - - /** - * - * - * @generated - */ - @Override - public String getName() - { - return name; - } - - /** - * - * - * @generated - */ - @Override - public void setName(String newName) - { - String oldName = name; - name = newName; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.FINAL_STATE__NAME, oldName, name)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case StatemachinePackage.FINAL_STATE__NAME: - return getName(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case StatemachinePackage.FINAL_STATE__NAME: - setName((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case StatemachinePackage.FINAL_STATE__NAME: - setName(NAME_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case StatemachinePackage.FINAL_STATE__NAME: - return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuilder result = new StringBuilder(super.toString()); - result.append(" (name: "); - result.append(name); - result.append(')'); - return result.toString(); - } - -} //FinalStateImpl diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineFactoryImpl.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineFactoryImpl.java index 6f504d456..7cfbed492 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineFactoryImpl.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineFactoryImpl.java @@ -68,7 +68,6 @@ public EObject create(EClass eClass) case StatemachinePackage.STATEMACHINE: return createStatemachine(); case StatemachinePackage.EVENT: return createEvent(); case StatemachinePackage.STATE: return createState(); - case StatemachinePackage.FINAL_STATE: return createFinalState(); case StatemachinePackage.TRANSITION: return createTransition(); default: throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); @@ -111,18 +110,6 @@ public State createState() return state; } - /** - * - * - * @generated - */ - @Override - public FinalState createFinalState() - { - FinalStateImpl finalState = new FinalStateImpl(); - return finalState; - } - /** * * diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineImpl.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineImpl.java index 5604bd171..95f1bf593 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineImpl.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachineImpl.java @@ -4,7 +4,6 @@ package de.cognicrypt.order.editor.statemachine.impl; import de.cognicrypt.order.editor.statemachine.Event; -import de.cognicrypt.order.editor.statemachine.FinalState; import de.cognicrypt.order.editor.statemachine.State; import de.cognicrypt.order.editor.statemachine.Statemachine; import de.cognicrypt.order.editor.statemachine.StatemachinePackage; @@ -34,7 +33,6 @@ *
    *
  • {@link de.cognicrypt.order.editor.statemachine.impl.StatemachineImpl#getEvents Events}
  • *
  • {@link de.cognicrypt.order.editor.statemachine.impl.StatemachineImpl#getStates States}
  • - *
  • {@link de.cognicrypt.order.editor.statemachine.impl.StatemachineImpl#getFinalstates Finalstates}
  • *
  • {@link de.cognicrypt.order.editor.statemachine.impl.StatemachineImpl#getTransitions Transitions}
  • *
* @@ -62,16 +60,6 @@ public class StatemachineImpl extends MinimalEObjectImpl.Container implements St */ protected EList states; - /** - * The cached value of the '{@link #getFinalstates() Finalstates}' containment reference list. - * - * - * @see #getFinalstates() - * @generated - * @ordered - */ - protected EList finalstates; - /** * The cached value of the '{@link #getTransitions() Transitions}' containment reference list. * @@ -133,21 +121,6 @@ public EList getStates() return states; } - /** - * - * - * @generated - */ - @Override - public EList getFinalstates() - { - if (finalstates == null) - { - finalstates = new EObjectContainmentEList(FinalState.class, this, StatemachinePackage.STATEMACHINE__FINALSTATES); - } - return finalstates; - } - /** * * @@ -177,8 +150,6 @@ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, return ((InternalEList)getEvents()).basicRemove(otherEnd, msgs); case StatemachinePackage.STATEMACHINE__STATES: return ((InternalEList)getStates()).basicRemove(otherEnd, msgs); - case StatemachinePackage.STATEMACHINE__FINALSTATES: - return ((InternalEList)getFinalstates()).basicRemove(otherEnd, msgs); case StatemachinePackage.STATEMACHINE__TRANSITIONS: return ((InternalEList)getTransitions()).basicRemove(otherEnd, msgs); } @@ -199,8 +170,6 @@ public Object eGet(int featureID, boolean resolve, boolean coreType) return getEvents(); case StatemachinePackage.STATEMACHINE__STATES: return getStates(); - case StatemachinePackage.STATEMACHINE__FINALSTATES: - return getFinalstates(); case StatemachinePackage.STATEMACHINE__TRANSITIONS: return getTransitions(); } @@ -226,10 +195,6 @@ public void eSet(int featureID, Object newValue) getStates().clear(); getStates().addAll((Collection)newValue); return; - case StatemachinePackage.STATEMACHINE__FINALSTATES: - getFinalstates().clear(); - getFinalstates().addAll((Collection)newValue); - return; case StatemachinePackage.STATEMACHINE__TRANSITIONS: getTransitions().clear(); getTransitions().addAll((Collection)newValue); @@ -254,9 +219,6 @@ public void eUnset(int featureID) case StatemachinePackage.STATEMACHINE__STATES: getStates().clear(); return; - case StatemachinePackage.STATEMACHINE__FINALSTATES: - getFinalstates().clear(); - return; case StatemachinePackage.STATEMACHINE__TRANSITIONS: getTransitions().clear(); return; @@ -278,8 +240,6 @@ public boolean eIsSet(int featureID) return events != null && !events.isEmpty(); case StatemachinePackage.STATEMACHINE__STATES: return states != null && !states.isEmpty(); - case StatemachinePackage.STATEMACHINE__FINALSTATES: - return finalstates != null && !finalstates.isEmpty(); case StatemachinePackage.STATEMACHINE__TRANSITIONS: return transitions != null && !transitions.isEmpty(); } diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachinePackageImpl.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachinePackageImpl.java index f29397e6f..daa5eae66 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachinePackageImpl.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/impl/StatemachinePackageImpl.java @@ -4,7 +4,6 @@ package de.cognicrypt.order.editor.statemachine.impl; import de.cognicrypt.order.editor.statemachine.Event; -import de.cognicrypt.order.editor.statemachine.FinalState; import de.cognicrypt.order.editor.statemachine.State; import de.cognicrypt.order.editor.statemachine.Statemachine; import de.cognicrypt.order.editor.statemachine.StatemachineFactory; @@ -47,13 +46,6 @@ public class StatemachinePackageImpl extends EPackageImpl implements Statemachin */ private EClass stateEClass = null; - /** - * - * - * @generated - */ - private EClass finalStateEClass = null; - /** * * @@ -157,17 +149,6 @@ public EReference getStatemachine_States() return (EReference)statemachineEClass.getEStructuralFeatures().get(1); } - /** - * - * - * @generated - */ - @Override - public EReference getStatemachine_Finalstates() - { - return (EReference)statemachineEClass.getEStructuralFeatures().get(2); - } - /** * * @@ -176,7 +157,7 @@ public EReference getStatemachine_Finalstates() @Override public EReference getStatemachine_Transitions() { - return (EReference)statemachineEClass.getEStructuralFeatures().get(3); + return (EReference)statemachineEClass.getEStructuralFeatures().get(2); } /** @@ -201,17 +182,6 @@ public EAttribute getEvent_Name() return (EAttribute)eventEClass.getEStructuralFeatures().get(0); } - /** - * - * - * @generated - */ - @Override - public EAttribute getEvent_Code() - { - return (EAttribute)eventEClass.getEStructuralFeatures().get(1); - } - /** * * @@ -256,28 +226,6 @@ public EReference getState_Transitions() return (EReference)stateEClass.getEStructuralFeatures().get(2); } - /** - * - * - * @generated - */ - @Override - public EClass getFinalState() - { - return finalStateEClass; - } - - /** - * - * - * @generated - */ - @Override - public EAttribute getFinalState_Name() - { - return (EAttribute)finalStateEClass.getEStructuralFeatures().get(0); - } - /** * * @@ -367,21 +315,16 @@ public void createPackageContents() statemachineEClass = createEClass(STATEMACHINE); createEReference(statemachineEClass, STATEMACHINE__EVENTS); createEReference(statemachineEClass, STATEMACHINE__STATES); - createEReference(statemachineEClass, STATEMACHINE__FINALSTATES); createEReference(statemachineEClass, STATEMACHINE__TRANSITIONS); eventEClass = createEClass(EVENT); createEAttribute(eventEClass, EVENT__NAME); - createEAttribute(eventEClass, EVENT__CODE); stateEClass = createEClass(STATE); createEAttribute(stateEClass, STATE__NAME); createEAttribute(stateEClass, STATE__IS_FINAL); createEReference(stateEClass, STATE__TRANSITIONS); - finalStateEClass = createEClass(FINAL_STATE); - createEAttribute(finalStateEClass, FINAL_STATE__NAME); - transitionEClass = createEClass(TRANSITION); createEAttribute(transitionEClass, TRANSITION__NAME); createEReference(transitionEClass, TRANSITION__FROM_STATE); @@ -423,21 +366,16 @@ public void initializePackageContents() initEClass(statemachineEClass, Statemachine.class, "Statemachine", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getStatemachine_Events(), this.getEvent(), null, "events", null, 0, -1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getStatemachine_States(), this.getState(), null, "states", null, 0, -1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getStatemachine_Finalstates(), this.getFinalState(), null, "finalstates", null, 0, -1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getStatemachine_Transitions(), this.getTransition(), null, "transitions", null, 0, -1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(eventEClass, Event.class, "Event", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getEvent_Name(), ecorePackage.getEString(), "name", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getEvent_Code(), ecorePackage.getEString(), "code", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(stateEClass, State.class, "State", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getState_Name(), ecorePackage.getEString(), "name", null, 0, 1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getState_IsFinal(), ecorePackage.getEBoolean(), "isFinal", null, 0, 1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getState_Transitions(), this.getTransition(), null, "transitions", null, 0, -1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(finalStateEClass, FinalState.class, "FinalState", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getFinalState_Name(), ecorePackage.getEString(), "name", null, 0, 1, FinalState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(transitionEClass, Transition.class, "Transition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getTransition_Name(), ecorePackage.getEString(), "name", null, 0, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getTransition_FromState(), this.getState(), null, "fromState", null, 0, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineAdapterFactory.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineAdapterFactory.java index 03ce76382..819905b71 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineAdapterFactory.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineAdapterFactory.java @@ -91,11 +91,6 @@ public Adapter caseState(State object) return createStateAdapter(); } @Override - public Adapter caseFinalState(FinalState object) - { - return createFinalStateAdapter(); - } - @Override public Adapter caseTransition(Transition object) { return createTransitionAdapter(); @@ -167,21 +162,6 @@ public Adapter createStateAdapter() return null; } - /** - * Creates a new adapter for an object of class '{@link de.cognicrypt.order.editor.statemachine.FinalState Final State}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see de.cognicrypt.order.editor.statemachine.FinalState - * @generated - */ - public Adapter createFinalStateAdapter() - { - return null; - } - /** * Creates a new adapter for an object of class '{@link de.cognicrypt.order.editor.statemachine.Transition Transition}'. * diff --git a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineSwitch.java b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineSwitch.java index abaed3468..8b8f75357 100644 --- a/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineSwitch.java +++ b/plugins/de.cognicrypt.order.editor/src-gen/de/cognicrypt/order/editor/statemachine/util/StatemachineSwitch.java @@ -94,13 +94,6 @@ protected T doSwitch(int classifierID, EObject theEObject) if (result == null) result = defaultCase(theEObject); return result; } - case StatemachinePackage.FINAL_STATE: - { - FinalState finalState = (FinalState)theEObject; - T result = caseFinalState(finalState); - if (result == null) result = defaultCase(theEObject); - return result; - } case StatemachinePackage.TRANSITION: { Transition transition = (Transition)theEObject; @@ -160,22 +153,6 @@ public T caseState(State object) return null; } - /** - * Returns the result of interpreting the object as an instance of 'Final State'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Final State'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseFinalState(FinalState object) - { - return null; - } - /** * Returns the result of interpreting the object as an instance of 'Transition'. * diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext index daa58335a..2aef3dd80 100644 --- a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/Statemachine.xtext @@ -8,12 +8,11 @@ Statemachine : events+=Event+ 'end')? states+=State* - finalstates+=FinalState* transitions+=Transition* ; Event: - name=ID code=ID + name=ID ; State: @@ -22,11 +21,6 @@ State: 'end' ; -FinalState: - 'finalstate' name=ID - 'end' -; - Transition: 'transition' name=ID fromState=[State] ',' event=[Event] ',' endState=[State] diff --git a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java index 5fcc30a4c..dcfa1ba56 100644 --- a/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java +++ b/plugins/de.cognicrypt.order.editor/src/de/cognicrypt/order/editor/parser/StatemachineParser.java @@ -42,7 +42,6 @@ import de.darmstadt.tu.crossing.crySL.SuperType; import de.cognicrypt.order.editor.statemachine.Event; import de.cognicrypt.order.editor.statemachine.State; -import de.cognicrypt.order.editor.statemachine.FinalState; import de.cognicrypt.order.editor.statemachine.Transition; import de.cognicrypt.order.editor.statemachine.StateMachineGraph; import de.cognicrypt.order.editor.statemachine.StateMachineGraphBuilder; @@ -95,12 +94,10 @@ public static void generateStatemachineXtextResource(EObject self, String ruleNa Statemachine statemachine = StatemachineFactory.eINSTANCE.createStatemachine(); State state = null; - FinalState finalstate = null; Event event = null; //de.darmstadt.tu.crossing.statemachine.Transition transition = null; Transition transition = null; HashMap stateNodeMap = new HashMap(); - HashMap finalstateNodeMap = new HashMap(); SuperType ev = null; int counter = 0; @@ -118,14 +115,6 @@ public static void generateStatemachineXtextResource(EObject self, String ruleNa statemachine.getStates().add((de.cognicrypt.order.editor.statemachine.State) state); counter++; stateNodeMap.put(s, state); - - if(s.getAccepting().equals(true)) { - finalstate = (FinalState) StatemachineFactory.eINSTANCE.createFinalState(); - finalstate.setName("f" + s.getName()); - //do not actually want to add a new node, but change the border of the current stateNode - statemachine.getFinalstates().add(finalstate); - finalstateNodeMap.put(s, finalstate); - } } //process transition edges for states and transitions @@ -136,11 +125,9 @@ public static void generateStatemachineXtextResource(EObject self, String ruleNa // check for duplicate events to avoid same naming for different edges (causes serialization error) if(sameEvent(transitionEdges, transitionEdges.get(i))) { event.setName(((SuperType) ev).getName() + i); - event.setCode(((SuperType) ev).getName() + i); } else { event.setName(((SuperType) ev).getName()); - event.setCode(((SuperType) ev).getName()); } statemachine.getEvents().add((de.cognicrypt.order.editor.statemachine.Event) event); } From 750e22a7ae9f8aa075bd0f1ffdbc551ce40b9227 Mon Sep 17 00:00:00 2001 From: Anemone Date: Fri, 15 Oct 2021 11:43:21 +0200 Subject: [PATCH 10/18] Move Sirius project files, remove buggy parts --- .../my.project.design/META-INF/MANIFEST.MF | 17 - .../description/project.odesign | 26 - .../my.project.design/plugin.properties | 3 - .../my.project.design/plugin.xml | 10 - .../src/my/project/design/Activator.java | 68 - .../src/my/project/design/Services.java | 17 - .../representations.aird | 1307 --------------- .../order/statemachine/design/Services.java | 102 -- .../representations.aird | 8 - .../output/AEADParameters.statemachine | 1 - .../output/AESEngine.statemachine | 1 - .../output/AeadFactory.statemachine | 1 - .../output/AeadKeyTemplates.statemachine | 1 - .../output/AeadPrimitive.statemachine | 1 - .../AlgorithmParameterGenerator.statemachine | 1 - .../output/AlgorithmParameters.statemachine | 1 - .../AsymmetricCipherKeyPair.statemachine | 1 - .../output/BufferedBlockCipher.statemachine | 1 - .../output/CBCBlockCipher.statemachine | 1 - ...ertPathTrustManagerParameters.statemachine | 1 - .../output/CertificateFactory.statemachine | 1 - .../output/Cipher.statemachine | 1 - .../output/CipherInputStream.statemachine | 1 - .../output/CipherOutputStream.statemachine | 1 - .../output/Cookie.statemachine | 1 - .../output/DHGenParameterSpec.statemachine | 1 - .../output/DHParameterSpec.statemachine | 1 - .../output/DSAGenParameterSpec.statemachine | 1 - .../output/DSAParameterSpec.statemachine | 1 - .../output/DeterministicAead.statemachine | 1 - .../DeterministicAeadFactory.statemachine | 1 - ...DeterministicAeadKeyTemplates.statemachine | 1 - .../output/DigestInputStream.statemachine | 1 - .../output/DigestOutputStream.statemachine | 1 - .../output/ECDomainParameters.statemachine | 1 - .../output/ECElGamalDecryptor.statemachine | 1 - .../output/ECElGamalEncryptor.statemachine | 1 - .../output/ECFixedTransform.statemachine | 1 - .../ECKeyGenerationParameters.statemachine | 1 - .../output/ECKeyPairGenerator.statemachine | 1 - .../output/ECKeyParameters.statemachine | 1 - .../ECNewPublicKeyTransform.statemachine | 1 - .../ECNewRandomnessTransform.statemachine | 1 - .../output/ECPair.statemachine | 1 - .../ECPrivateKeyParameters.statemachine | 1 - .../output/ECPublicKeyParameters.statemachine | 1 - .../output/GCMBlockCipher.statemachine | 1 - .../output/GCMParameterSpec.statemachine | 1 - .../output/HMACParameterSpec.statemachine | 1 - .../output/HMac.statemachine | 1 - .../output/HybridDecrypt.statemachine | 1 - .../output/HybridDecryptFactory.statemachine | 1 - .../output/HybridEncrypt.statemachine | 1 - .../output/HybridEncryptFactory.statemachine | 1 - .../output/HybridKeyTemplates.statemachine | 1 - .../output/IvParameterSpec.statemachine | 1 - .../output/Key.statemachine | 1 - .../output/KeyAgreement.statemachine | 1 - .../output/KeyFactory.statemachine | 1 - .../output/KeyGenerator.statemachine | 1 - .../output/KeyManagerFactory.statemachine | 1 - .../output/KeyPair.statemachine | 1 - .../output/KeyPairGenerator.statemachine | 1 - .../output/KeyParameter.statemachine | 1 - .../output/KeyStore.statemachine | 1 - .../KeyStoreBuilderParameters.statemachine | 1 - .../output/KeyTemplate.statemachine | 1 - .../output/KeysetHandle.statemachine | 1 - .../output/Mac.statemachine | 1 - .../output/MacFactory.statemachine | 1 - .../output/MacKeyTemplates.statemachine | 1 - .../output/MacPrimitive.statemachine | 1 - .../output/MessageDigest.statemachine | 1 - .../output/PBEKeySpec.statemachine | 1 - .../output/PBEParameterSpec.statemachine | 1 - .../output/PKIXBuilderParameters.statemachine | 1 - .../output/PKIXParameters.statemachine | 1 - .../PaddedBufferedBlockCipher.statemachine | 1 - .../output/ParametersWithIV.statemachine | 1 - .../output/ParametersWithRandom.statemachine | 1 - .../output/PublicKeySign.statemachine | 1 - .../output/PublicKeySignFactory.statemachine | 1 - .../output/PublicKeyVerify.statemachine | 1 - .../PublicKeyVerifyFactory.statemachine | 1 - .../output/RSADigestSigner.statemachine | 1 - .../output/RSAEngine.statemachine | 1 - .../RSAKeyGenParameterSpec.statemachine | 1 - .../RSAKeyGenerationParameters.statemachine | 1 - .../output/RSAKeyPairGenerator.statemachine | 1 - .../output/RSAKeyParameters.statemachine | 1 - .../RSAPrivateCrtKeyParameters.statemachine | 1 - .../output/SHA256Digest.statemachine | 1 - .../output/SSLContext.statemachine | 1 - .../output/SSLEngine.statemachine | 1 - .../output/SSLParameters.statemachine | 1 - .../output/SecretKey.statemachine | 1 - .../output/SecretKeyFactory.statemachine | 1 - .../output/SecretKeySpec.statemachine | 1 - .../output/SecureRandom.statemachine | 1 - .../output/Signature.statemachine | 1 - .../output/SignatureKeyTemplates.statemachine | 1 - .../output/StreamingAead.statemachine | 1 - .../output/StreamingAeadFactory.statemachine | 1 - .../StreamingAeadKeyTemplates.statemachine | 1 - .../output/TrustAnchor.statemachine | 1 - .../output/TrustManagerFactory.statemachine | 1 - .../sirius/.project | 11 + .../order.statemachine.design/.classpath | 0 .../order.statemachine.design/.project | 0 .../META-INF/MANIFEST.MF | 0 .../build.properties | 0 .../description/statemachine.odesign | 18 - .../plugin.properties | 0 .../order.statemachine.design/plugin.xml | 0 .../order/statemachine/design/Activator.java | 0 .../order/statemachine/design/Services.java | 36 + .../order.statemachine.modeling/.project | 0 .../representations.aird | 1432 +++++++++++++++++ .../order/editor/generator/.gitignore | 3 + 119 files changed, 1482 insertions(+), 1673 deletions(-) delete mode 100644 plugins/de.cognicrypt.order.editor.sirius/my.project.design/META-INF/MANIFEST.MF delete mode 100644 plugins/de.cognicrypt.order.editor.sirius/my.project.design/description/project.odesign delete mode 100644 plugins/de.cognicrypt.order.editor.sirius/my.project.design/plugin.properties delete mode 100644 plugins/de.cognicrypt.order.editor.sirius/my.project.design/plugin.xml delete mode 100644 plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Activator.java delete mode 100644 plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Services.java delete mode 100644 plugins/de.cognicrypt.order.editor.sirius/my.project.order.diagram.modeling/representations.aird delete mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java delete mode 100644 plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird delete mode 100644 plugins/de.cognicrypt.order.editor/output/AEADParameters.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/AESEngine.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/AeadFactory.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/AeadKeyTemplates.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/AeadPrimitive.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/AlgorithmParameterGenerator.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/AlgorithmParameters.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/AsymmetricCipherKeyPair.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/BufferedBlockCipher.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/CBCBlockCipher.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/CertPathTrustManagerParameters.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/CertificateFactory.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/Cipher.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/CipherInputStream.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/CipherOutputStream.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/Cookie.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/DHGenParameterSpec.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/DHParameterSpec.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/DSAGenParameterSpec.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/DSAParameterSpec.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/DeterministicAead.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/DeterministicAeadFactory.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/DeterministicAeadKeyTemplates.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/DigestInputStream.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/DigestOutputStream.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/ECDomainParameters.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/ECElGamalDecryptor.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/ECElGamalEncryptor.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/ECFixedTransform.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/ECKeyGenerationParameters.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/ECKeyPairGenerator.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/ECKeyParameters.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/ECNewPublicKeyTransform.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/ECNewRandomnessTransform.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/ECPair.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/ECPrivateKeyParameters.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/ECPublicKeyParameters.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/GCMBlockCipher.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/GCMParameterSpec.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/HMACParameterSpec.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/HMac.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/HybridDecrypt.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/HybridDecryptFactory.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/HybridEncrypt.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/HybridEncryptFactory.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/HybridKeyTemplates.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/IvParameterSpec.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/Key.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/KeyAgreement.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/KeyFactory.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/KeyGenerator.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/KeyManagerFactory.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/KeyPair.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/KeyPairGenerator.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/KeyParameter.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/KeyStore.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/KeyStoreBuilderParameters.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/KeyTemplate.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/KeysetHandle.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/Mac.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/MacFactory.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/MacKeyTemplates.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/MacPrimitive.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/MessageDigest.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/PBEKeySpec.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/PBEParameterSpec.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/PKIXBuilderParameters.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/PKIXParameters.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/PaddedBufferedBlockCipher.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/ParametersWithIV.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/ParametersWithRandom.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/PublicKeySign.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/PublicKeySignFactory.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/PublicKeyVerify.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/PublicKeyVerifyFactory.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/RSADigestSigner.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/RSAEngine.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/RSAKeyGenParameterSpec.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/RSAKeyGenerationParameters.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/RSAKeyPairGenerator.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/RSAKeyParameters.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/RSAPrivateCrtKeyParameters.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/SHA256Digest.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/SSLContext.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/SSLEngine.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/SSLParameters.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/SecretKey.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/SecretKeyFactory.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/SecretKeySpec.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/SecureRandom.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/Signature.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/SignatureKeyTemplates.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/StreamingAead.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/StreamingAeadFactory.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/StreamingAeadKeyTemplates.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/TrustAnchor.statemachine delete mode 100644 plugins/de.cognicrypt.order.editor/output/TrustManagerFactory.statemachine create mode 100644 plugins/de.cognicrypt.order.editor/sirius/.project rename plugins/{de.cognicrypt.order.editor.sirius => de.cognicrypt.order.editor/sirius}/order.statemachine.design/.classpath (100%) rename plugins/{de.cognicrypt.order.editor.sirius => de.cognicrypt.order.editor/sirius}/order.statemachine.design/.project (100%) rename plugins/{de.cognicrypt.order.editor.sirius => de.cognicrypt.order.editor/sirius}/order.statemachine.design/META-INF/MANIFEST.MF (100%) rename plugins/{de.cognicrypt.order.editor.sirius => de.cognicrypt.order.editor/sirius}/order.statemachine.design/build.properties (100%) rename plugins/{de.cognicrypt.order.editor.sirius => de.cognicrypt.order.editor/sirius}/order.statemachine.design/description/statemachine.odesign (74%) rename plugins/{de.cognicrypt.order.editor.sirius => de.cognicrypt.order.editor/sirius}/order.statemachine.design/plugin.properties (100%) rename plugins/{de.cognicrypt.order.editor.sirius => de.cognicrypt.order.editor/sirius}/order.statemachine.design/plugin.xml (100%) rename plugins/{de.cognicrypt.order.editor.sirius => de.cognicrypt.order.editor/sirius}/order.statemachine.design/src/order/statemachine/design/Activator.java (100%) create mode 100644 plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/src/order/statemachine/design/Services.java rename plugins/{de.cognicrypt.order.editor.sirius => de.cognicrypt.order.editor/sirius}/order.statemachine.modeling/.project (100%) create mode 100644 plugins/de.cognicrypt.order.editor/sirius/order.statemachine.modeling/representations.aird create mode 100644 plugins/de.cognicrypt.order.editor/xtend-gen/de/cognicrypt/order/editor/generator/.gitignore diff --git a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/META-INF/MANIFEST.MF b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/META-INF/MANIFEST.MF deleted file mode 100644 index aff35221e..000000000 --- a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/META-INF/MANIFEST.MF +++ /dev/null @@ -1,17 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-SymbolicName: my.project.design;singleton:=true -Bundle-Version: 1.0.0.qualifier -Bundle-Activator: my.project.design.Activator -Bundle-Localization: plugin -Require-Bundle: org.eclipse.ui, - org.eclipse.core.runtime, - org.eclipse.core.resources, - org.eclipse.sirius, - org.eclipse.sirius.common.acceleo.aql, - de.cognicrypt.tu.crossing.statemachine.editor;bundle-version="1.0.0" -Bundle-ActivationPolicy: lazy -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Bundle-Vendor: %providerName -Automatic-Module-Name: my.project.design diff --git a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/description/project.odesign b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/description/project.odesign deleted file mode 100644 index b6c7aa840..000000000 --- a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/description/project.odesign +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/plugin.properties b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/plugin.properties deleted file mode 100644 index 27dfa1031..000000000 --- a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/plugin.properties +++ /dev/null @@ -1,3 +0,0 @@ -pluginName = my.project.design -providerName = Eclipse Modeling Project -viewpointName = MyViewpoint diff --git a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/plugin.xml b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/plugin.xml deleted file mode 100644 index d6fa17bca..000000000 --- a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/plugin.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Activator.java b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Activator.java deleted file mode 100644 index babfa2bcf..000000000 --- a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Activator.java +++ /dev/null @@ -1,68 +0,0 @@ -package my.project.design; -de.cognicrypt.order.editor\sirius -package de.cognicrypt.order.editor; - -import java.util.HashSet; -import java.util.Set; - -import org.eclipse.sirius.business.api.componentization.ViewpointRegistry; -import org.eclipse.sirius.viewpoint.description.Viewpoint; -import org.eclipse.ui.plugin.AbstractUIPlugin; -import org.osgi.framework.BundleContext; - -/** - * The activator class controls the plug-in life cycle - */ -public class Activator extends AbstractUIPlugin { - // The plug-in ID - public static final String PLUGIN_ID = "my.project.design"; - - // The shared instance - private static Activator plugin; - - private static Set viewpoints; - - /** - * The constructor - */ - public Activator() { - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) - */ - public void start(BundleContext context) throws Exception { - super.start(context); - plugin = this; - viewpoints = new HashSet(); - viewpoints.addAll(ViewpointRegistry.getInstance().registerFromPlugin(PLUGIN_ID + "/description/project.odesign")); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) - */ - public void stop(BundleContext context) throws Exception { - plugin = null; - if (viewpoints != null) { - for (final Viewpoint viewpoint: viewpoints) { - ViewpointRegistry.getInstance().disposeFromPlugin(viewpoint); - } - viewpoints.clear(); - viewpoints = null; - } - super.stop(context); - } - - /** - * Returns the shared instance - * - * @return the shared instance - */ - public static Activator getDefault() { - return plugin; - } -} diff --git a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Services.java b/plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Services.java deleted file mode 100644 index 9412c2ab7..000000000 --- a/plugins/de.cognicrypt.order.editor.sirius/my.project.design/src/my/project/design/Services.java +++ /dev/null @@ -1,17 +0,0 @@ -package de.cognicrypt.order.editor; - -import org.eclipse.emf.ecore.EObject; - -/** - * The services class used by VSM. - */ -public class Services { - - /** - * See http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.sirius.doc%2Fdoc%2Findex.html&cp=24 for documentation on how to write service methods. - */ - public EObject myService(EObject self, String arg) { - // TODO Auto-generated code - return self; - } -} diff --git a/plugins/de.cognicrypt.order.editor.sirius/my.project.order.diagram.modeling/representations.aird b/plugins/de.cognicrypt.order.editor.sirius/my.project.order.diagram.modeling/representations.aird deleted file mode 100644 index 847b21a5d..000000000 --- a/plugins/de.cognicrypt.order.editor.sirius/my.project.order.diagram.modeling/representations.aird +++ /dev/null @@ -1,1307 +0,0 @@ - - - - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.diagram.order/output/Cookie.statemachine - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.diagram.order/output/HMACParameterSpec.statemachine - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.diagram.order/output/KeyManagerFactory.statemachine - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.diagram.order/output/DHParameterSpec.statemachine - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.diagram.order/output/IvParameterSpec.statemachine - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.diagram.order/output/MessageDigest.statemachine - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AeadFactory.statemachine - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/Cookie.statemachine - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AlgorithmParameterGenerator.statemachine - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/BufferedBlockCipher.statemachine - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - - - diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java deleted file mode 100644 index f888cf097..000000000 --- a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Services.java +++ /dev/null @@ -1,102 +0,0 @@ -package order.statemachine.design; - -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EReference; -import org.eclipse.emf.ecore.EStructuralFeature; - -import de.cognicrypt.order.editor.statemachine.Event; -import de.cognicrypt.order.editor.statemachine.State; - -/** - * The services class used by VSM. - */ -public class Services { - - /** - * See http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.sirius.doc%2Fdoc%2Findex.html&cp=24 for documentation on how to write service methods. - */ - public EObject myService(EObject self, String arg) { - // TODO Auto-generated code - return self; - } - - public int changeBorderFinalNode(EObject self) { - - if(self instanceof State) { - State s = (State) self; - boolean finalNode = s.isIsFinal(); - if(finalNode) { - return 5; - } - } - - return 1; - } - - // JavaService for a simple String output: - public String nameService(EObject self) { - // TODO Auto-generated code - - return "t"; - } - - public String createEventName(EObject self) { - - System.out.println("self: " + self); // TransitionImpl - System.out.println("self.ecrossreferences: " + self.eCrossReferences()); // source and target states - System.out.println("self.econtainingfeature: " + self.eContainingFeature()); // EReferenceImpl with variable name transitions - EStructuralFeature se = self.eContainingFeature(); - // Execution stops here - Event e = null; // kein Sinn - System.out.println("eGet " + e.eGet(se)); - e.eSet(se, e); - System.out.println("eGet after " + e.eGet(se)); - - - - return "enew"; - } - - // JavaService debugging for the event creation: - public Event createEvent(EObject self) { - // TODO Auto-generated code - - System.out.println("Hello event2"); - System.out.println(self); - - //self.eSet(type name = new type();Event); - Event e = null; - if(self.eAllContents().hasNext()) { - System.out.println(self.eAllContents().next()); - } - else { - System.out.println("else"); - } - System.out.println("eAllContents " + self.eAllContents()); //eAllContents is empty - System.out.println("econtainingFeature " + self.eContainingFeature()); - System.out.println("econtainmentFeature " + self.eContainmentFeature()); - System.out.println("econtainer " + self.eContainer()); - /*for(Object i:self.eAllContents()) { - System.out.println("loop index: " + i) - }*/ - - System.out.println("eallattr " + self.eClass().getEAllAttributes()); - System.out.println("feature count " + self.eClass().getFeatureCount()); - System.out.println("eallref " + self.eClass().getEAllReferences()); - System.out.println("eallstructfeature " + self.eClass().getEAllStructuralFeatures()); - - //gets the event object - EReference eventref = self.eClass().getEAllReferences().get(1); - System.out.println("eventref " + eventref); - eventref.setName("new"); - System.out.println("eventref " + eventref); - System.out.println("eventref get " + eventref.eGet(eventref)); //returns true - self.eSet(eventref, "ds"); - System.out.println("klapp"); - - System.out.println("Hello event"); - - return e; - } - -} diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird b/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird deleted file mode 100644 index 2a66fbf81..000000000 --- a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/representations.aird +++ /dev/null @@ -1,8 +0,0 @@ - - - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AEADParameters.statemachine - - - - diff --git a/plugins/de.cognicrypt.order.editor/output/AEADParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/AEADParameters.statemachine deleted file mode 100644 index 1d35c7c84..000000000 --- a/plugins/de.cognicrypt.order.editor/output/AEADParameters.statemachine +++ /dev/null @@ -1 +0,0 @@ -events CONS end state s0 true end state sinit false end transition t0 sinit , CONS , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/AESEngine.statemachine b/plugins/de.cognicrypt.order.editor/output/AESEngine.statemachine deleted file mode 100644 index c51ba93b3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/AESEngine.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c end state s0 true end state sinit false end transition t0 sinit , c , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/AeadFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/AeadFactory.statemachine deleted file mode 100644 index bd29bdef3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/AeadFactory.statemachine +++ /dev/null @@ -1 +0,0 @@ -events gp end state s0 true end state sinit false end transition t0 sinit , gp , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/AeadKeyTemplates.statemachine b/plugins/de.cognicrypt.order.editor/output/AeadKeyTemplates.statemachine deleted file mode 100644 index a74df4471..000000000 --- a/plugins/de.cognicrypt.order.editor/output/AeadKeyTemplates.statemachine +++ /dev/null @@ -1 +0,0 @@ -events CreateKeyTemplates0 CreateKeyTemplates1 end state s0 true end state sinit false end transition t0 sinit , CreateKeyTemplates0 , s0 end transition t1 sinit , CreateKeyTemplates1 , sinit end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/AeadPrimitive.statemachine b/plugins/de.cognicrypt.order.editor/output/AeadPrimitive.statemachine deleted file mode 100644 index 7d80b232c..000000000 --- a/plugins/de.cognicrypt.order.editor/output/AeadPrimitive.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Mode0 Mode1 end state s0 true end state sinit true end transition t0 sinit , Mode0 , s0 end transition t1 s0 , Mode1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/AlgorithmParameterGenerator.statemachine b/plugins/de.cognicrypt.order.editor/output/AlgorithmParameterGenerator.statemachine deleted file mode 100644 index 66af4a0f8..000000000 --- a/plugins/de.cognicrypt.order.editor/output/AlgorithmParameterGenerator.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Gets Inits Gen end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , Inits , s1 end transition t2 s1 , Gen , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/AlgorithmParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/AlgorithmParameters.statemachine deleted file mode 100644 index 3926a82f6..000000000 --- a/plugins/de.cognicrypt.order.editor/output/AlgorithmParameters.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Gets Inits Encoded end state s2 true end state s1 true end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , Inits , s1 end transition t2 s1 , Encoded , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/AsymmetricCipherKeyPair.statemachine b/plugins/de.cognicrypt.order.editor/output/AsymmetricCipherKeyPair.statemachine deleted file mode 100644 index aaf395296..000000000 --- a/plugins/de.cognicrypt.order.editor/output/AsymmetricCipherKeyPair.statemachine +++ /dev/null @@ -1 +0,0 @@ -events co end state s0 true end state sinit false end transition t0 sinit , co , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/BufferedBlockCipher.statemachine b/plugins/de.cognicrypt.order.editor/output/BufferedBlockCipher.statemachine deleted file mode 100644 index 360214e91..000000000 --- a/plugins/de.cognicrypt.order.editor/output/BufferedBlockCipher.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons Inits1 Procs DOFINALS Inits4 end state s2 false end state s1 false end state s0 false end state sinit false end state s3 true end transition t0 sinit , Cons , s0 end transition t1 s0 , Inits1 , s1 end transition t2 s1 , Procs , s2 end transition t3 s2 , DOFINALS , s3 end transition t4 s3 , Inits4 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/CBCBlockCipher.statemachine b/plugins/de.cognicrypt.order.editor/output/CBCBlockCipher.statemachine deleted file mode 100644 index c51ba93b3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/CBCBlockCipher.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c end state s0 true end state sinit false end transition t0 sinit , c , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/CertPathTrustManagerParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/CertPathTrustManagerParameters.statemachine deleted file mode 100644 index 0dbe94905..000000000 --- a/plugins/de.cognicrypt.order.editor/output/CertPathTrustManagerParameters.statemachine +++ /dev/null @@ -1 +0,0 @@ -events C end state s0 true end state sinit false end transition t0 sinit , C , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/CertificateFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/CertificateFactory.statemachine deleted file mode 100644 index 9739473a5..000000000 --- a/plugins/de.cognicrypt.order.editor/output/CertificateFactory.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Gets GenCert1 GenCertPath2 GenCRL GenCert4 GenCertPath5 end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , GenCert1 , s1 end transition t2 s0 , GenCertPath2 , s1 end transition t3 s1 , GenCRL , s2 end transition t4 s2 , GenCert4 , s1 end transition t5 s2 , GenCertPath5 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/Cipher.statemachine b/plugins/de.cognicrypt.order.editor/output/Cipher.statemachine deleted file mode 100644 index 70743d4ea..000000000 --- a/plugins/de.cognicrypt.order.editor/output/Cipher.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Gets Inits1 Inits2 w3 w4 FINWOU updates6 updates7 DOFINALS end state s2 true end state s1 false end state s0 false end state sinit false end state s4 false end state s3 true end transition t0 sinit , Gets , s0 end transition t1 s0 , Inits1 , s1 end transition t2 s1 , Inits2 , s1 end transition t3 s1 , w3 , s2 end transition t4 s2 , w4 , s2 end transition t5 s1 , FINWOU , s3 end transition t6 s1 , updates6 , s4 end transition t7 s4 , updates7 , s4 end transition t8 s4 , DOFINALS , s3 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/CipherInputStream.statemachine b/plugins/de.cognicrypt.order.editor/output/CipherInputStream.statemachine deleted file mode 100644 index a6481c640..000000000 --- a/plugins/de.cognicrypt.order.editor/output/CipherInputStream.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Constructs Reads1 Reads2 c end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Constructs , s0 end transition t1 s0 , Reads1 , s1 end transition t2 s1 , Reads2 , s1 end transition t3 s1 , c , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/CipherOutputStream.statemachine b/plugins/de.cognicrypt.order.editor/output/CipherOutputStream.statemachine deleted file mode 100644 index d36c4c566..000000000 --- a/plugins/de.cognicrypt.order.editor/output/CipherOutputStream.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Constructs Writes1 Writes2 c end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Constructs , s0 end transition t1 s0 , Writes1 , s1 end transition t2 s1 , Writes2 , s1 end transition t3 s1 , c , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/Cookie.statemachine b/plugins/de.cognicrypt.order.editor/output/Cookie.statemachine deleted file mode 100644 index 9f2576767..000000000 --- a/plugins/de.cognicrypt.order.editor/output/Cookie.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c sc end state s1 true end state s0 false end state sinit false end transition t0 sinit , c , s0 end transition t1 s0 , sc , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/DHGenParameterSpec.statemachine b/plugins/de.cognicrypt.order.editor/output/DHGenParameterSpec.statemachine deleted file mode 100644 index 5257247b4..000000000 --- a/plugins/de.cognicrypt.order.editor/output/DHGenParameterSpec.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c1 end state s0 true end state sinit false end transition t0 sinit , c1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/DHParameterSpec.statemachine b/plugins/de.cognicrypt.order.editor/output/DHParameterSpec.statemachine deleted file mode 100644 index 7a35430e3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/DHParameterSpec.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/DSAGenParameterSpec.statemachine b/plugins/de.cognicrypt.order.editor/output/DSAGenParameterSpec.statemachine deleted file mode 100644 index 7a35430e3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/DSAGenParameterSpec.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/DSAParameterSpec.statemachine b/plugins/de.cognicrypt.order.editor/output/DSAParameterSpec.statemachine deleted file mode 100644 index 5257247b4..000000000 --- a/plugins/de.cognicrypt.order.editor/output/DSAParameterSpec.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c1 end state s0 true end state sinit false end transition t0 sinit , c1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/DeterministicAead.statemachine b/plugins/de.cognicrypt.order.editor/output/DeterministicAead.statemachine deleted file mode 100644 index 7d80b232c..000000000 --- a/plugins/de.cognicrypt.order.editor/output/DeterministicAead.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Mode0 Mode1 end state s0 true end state sinit true end transition t0 sinit , Mode0 , s0 end transition t1 s0 , Mode1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/DeterministicAeadFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/DeterministicAeadFactory.statemachine deleted file mode 100644 index bd29bdef3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/DeterministicAeadFactory.statemachine +++ /dev/null @@ -1 +0,0 @@ -events gp end state s0 true end state sinit false end transition t0 sinit , gp , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/DeterministicAeadKeyTemplates.statemachine b/plugins/de.cognicrypt.order.editor/output/DeterministicAeadKeyTemplates.statemachine deleted file mode 100644 index 64fb2187f..000000000 --- a/plugins/de.cognicrypt.order.editor/output/DeterministicAeadKeyTemplates.statemachine +++ /dev/null @@ -1 +0,0 @@ -events aes256_siv_evt0 aes256_siv_evt1 end state s0 true end state sinit true end transition t0 sinit , aes256_siv_evt0 , s0 end transition t1 s0 , aes256_siv_evt1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/DigestInputStream.statemachine b/plugins/de.cognicrypt.order.editor/output/DigestInputStream.statemachine deleted file mode 100644 index 9578bdb0f..000000000 --- a/plugins/de.cognicrypt.order.editor/output/DigestInputStream.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c Reads1 Reads2 end state s1 true end state s0 false end state sinit false end transition t0 sinit , c , s0 end transition t1 s0 , Reads1 , s1 end transition t2 s1 , Reads2 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/DigestOutputStream.statemachine b/plugins/de.cognicrypt.order.editor/output/DigestOutputStream.statemachine deleted file mode 100644 index f6b8583db..000000000 --- a/plugins/de.cognicrypt.order.editor/output/DigestOutputStream.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c Writes1 Writes2 end state s1 true end state s0 false end state sinit false end transition t0 sinit , c , s0 end transition t1 s0 , Writes1 , s1 end transition t2 s1 , Writes2 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECDomainParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/ECDomainParameters.statemachine deleted file mode 100644 index 7a35430e3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/ECDomainParameters.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECElGamalDecryptor.statemachine b/plugins/de.cognicrypt.order.editor/output/ECElGamalDecryptor.statemachine deleted file mode 100644 index 83cff9555..000000000 --- a/plugins/de.cognicrypt.order.editor/output/ECElGamalDecryptor.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons Inits1 Decrypts2 Decrypts3 Inits4 end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Cons , s0 end transition t1 s0 , Inits1 , s1 end transition t2 s1 , Decrypts2 , s2 end transition t3 s2 , Decrypts3 , s2 end transition t4 s2 , Inits4 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECElGamalEncryptor.statemachine b/plugins/de.cognicrypt.order.editor/output/ECElGamalEncryptor.statemachine deleted file mode 100644 index 0fc671a22..000000000 --- a/plugins/de.cognicrypt.order.editor/output/ECElGamalEncryptor.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons Inits1 Encrypts2 Encrypts3 Inits4 end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Cons , s0 end transition t1 s0 , Inits1 , s1 end transition t2 s1 , Encrypts2 , s2 end transition t3 s2 , Encrypts3 , s2 end transition t4 s2 , Inits4 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECFixedTransform.statemachine b/plugins/de.cognicrypt.order.editor/output/ECFixedTransform.statemachine deleted file mode 100644 index 865995007..000000000 --- a/plugins/de.cognicrypt.order.editor/output/ECFixedTransform.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons Inits Transforms2 Transforms3 end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Cons , s0 end transition t1 s0 , Inits , s1 end transition t2 s1 , Transforms2 , s2 end transition t3 s2 , Transforms3 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECKeyGenerationParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/ECKeyGenerationParameters.statemachine deleted file mode 100644 index 7a35430e3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/ECKeyGenerationParameters.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECKeyPairGenerator.statemachine b/plugins/de.cognicrypt.order.editor/output/ECKeyPairGenerator.statemachine deleted file mode 100644 index 663772307..000000000 --- a/plugins/de.cognicrypt.order.editor/output/ECKeyPairGenerator.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c i g end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , c , s0 end transition t1 s0 , i , s1 end transition t2 s1 , g , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECKeyParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/ECKeyParameters.statemachine deleted file mode 100644 index 7a35430e3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/ECKeyParameters.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECNewPublicKeyTransform.statemachine b/plugins/de.cognicrypt.order.editor/output/ECNewPublicKeyTransform.statemachine deleted file mode 100644 index 865995007..000000000 --- a/plugins/de.cognicrypt.order.editor/output/ECNewPublicKeyTransform.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons Inits Transforms2 Transforms3 end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Cons , s0 end transition t1 s0 , Inits , s1 end transition t2 s1 , Transforms2 , s2 end transition t3 s2 , Transforms3 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECNewRandomnessTransform.statemachine b/plugins/de.cognicrypt.order.editor/output/ECNewRandomnessTransform.statemachine deleted file mode 100644 index 865995007..000000000 --- a/plugins/de.cognicrypt.order.editor/output/ECNewRandomnessTransform.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons Inits Transforms2 Transforms3 end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Cons , s0 end transition t1 s0 , Inits , s1 end transition t2 s1 , Transforms2 , s2 end transition t3 s2 , Transforms3 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECPair.statemachine b/plugins/de.cognicrypt.order.editor/output/ECPair.statemachine deleted file mode 100644 index 7a35430e3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/ECPair.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECPrivateKeyParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/ECPrivateKeyParameters.statemachine deleted file mode 100644 index 7a35430e3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/ECPrivateKeyParameters.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ECPublicKeyParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/ECPublicKeyParameters.statemachine deleted file mode 100644 index 7a35430e3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/ECPublicKeyParameters.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/GCMBlockCipher.statemachine b/plugins/de.cognicrypt.order.editor/output/GCMBlockCipher.statemachine deleted file mode 100644 index 157f4e4ff..000000000 --- a/plugins/de.cognicrypt.order.editor/output/GCMBlockCipher.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons init process2 process3 doFinal end state s2 false end state s1 false end state s0 false end state sinit false end state s3 true end transition t0 sinit , Cons , s0 end transition t1 s0 , init , s1 end transition t2 s1 , process2 , s2 end transition t3 s2 , process3 , s2 end transition t4 s2 , doFinal , s3 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/GCMParameterSpec.statemachine b/plugins/de.cognicrypt.order.editor/output/GCMParameterSpec.statemachine deleted file mode 100644 index 7a35430e3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/GCMParameterSpec.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/HMACParameterSpec.statemachine b/plugins/de.cognicrypt.order.editor/output/HMACParameterSpec.statemachine deleted file mode 100644 index 5257247b4..000000000 --- a/plugins/de.cognicrypt.order.editor/output/HMACParameterSpec.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c1 end state s0 true end state sinit false end transition t0 sinit , c1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/HMac.statemachine b/plugins/de.cognicrypt.order.editor/output/HMac.statemachine deleted file mode 100644 index b96724261..000000000 --- a/plugins/de.cognicrypt.order.editor/output/HMac.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons Init1 Updates2 Updates3 Finals Init5 end state s2 false end state s1 false end state s0 false end state sinit false end state s3 true end transition t0 sinit , Cons , s0 end transition t1 s0 , Init1 , s1 end transition t2 s1 , Updates2 , s2 end transition t3 s2 , Updates3 , s2 end transition t4 s2 , Finals , s3 end transition t5 s3 , Init5 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/HybridDecrypt.statemachine b/plugins/de.cognicrypt.order.editor/output/HybridDecrypt.statemachine deleted file mode 100644 index de2c4d582..000000000 --- a/plugins/de.cognicrypt.order.editor/output/HybridDecrypt.statemachine +++ /dev/null @@ -1 +0,0 @@ -events dec0 dec1 end state s0 true end state sinit true end transition t0 sinit , dec0 , s0 end transition t1 s0 , dec1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/HybridDecryptFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/HybridDecryptFactory.statemachine deleted file mode 100644 index bd29bdef3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/HybridDecryptFactory.statemachine +++ /dev/null @@ -1 +0,0 @@ -events gp end state s0 true end state sinit false end transition t0 sinit , gp , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/HybridEncrypt.statemachine b/plugins/de.cognicrypt.order.editor/output/HybridEncrypt.statemachine deleted file mode 100644 index 2efc0c2aa..000000000 --- a/plugins/de.cognicrypt.order.editor/output/HybridEncrypt.statemachine +++ /dev/null @@ -1 +0,0 @@ -events enc0 enc1 end state s0 true end state sinit true end transition t0 sinit , enc0 , s0 end transition t1 s0 , enc1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/HybridEncryptFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/HybridEncryptFactory.statemachine deleted file mode 100644 index bd29bdef3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/HybridEncryptFactory.statemachine +++ /dev/null @@ -1 +0,0 @@ -events gp end state s0 true end state sinit false end transition t0 sinit , gp , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/HybridKeyTemplates.statemachine b/plugins/de.cognicrypt.order.editor/output/HybridKeyTemplates.statemachine deleted file mode 100644 index 31889e648..000000000 --- a/plugins/de.cognicrypt.order.editor/output/HybridKeyTemplates.statemachine +++ /dev/null @@ -1 +0,0 @@ -events CreateKeyTemplates0 CreateKeyTemplates1 end state s0 true end state sinit true end transition t0 sinit , CreateKeyTemplates0 , s0 end transition t1 s0 , CreateKeyTemplates1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/IvParameterSpec.statemachine b/plugins/de.cognicrypt.order.editor/output/IvParameterSpec.statemachine deleted file mode 100644 index 7a35430e3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/IvParameterSpec.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/Key.statemachine b/plugins/de.cognicrypt.order.editor/output/Key.statemachine deleted file mode 100644 index 1e91dc632..000000000 --- a/plugins/de.cognicrypt.order.editor/output/Key.statemachine +++ /dev/null @@ -1 +0,0 @@ -events ge0 ge1 end state s0 true end state sinit true end transition t0 sinit , ge0 , s0 end transition t1 s0 , ge1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyAgreement.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyAgreement.statemachine deleted file mode 100644 index f86f9a293..000000000 --- a/plugins/de.cognicrypt.order.editor/output/KeyAgreement.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Gets Inits dp GenSecret end state s2 false end state s1 false end state s0 false end state sinit false end state s3 true end transition t0 sinit , Gets , s0 end transition t1 s0 , Inits , s1 end transition t2 s1 , dp , s2 end transition t3 s2 , GenSecret , s3 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyFactory.statemachine deleted file mode 100644 index 303600f64..000000000 --- a/plugins/de.cognicrypt.order.editor/output/KeyFactory.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Gets Gens end state s1 true end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , Gens , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyGenerator.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyGenerator.statemachine deleted file mode 100644 index e89bac6d5..000000000 --- a/plugins/de.cognicrypt.order.editor/output/KeyGenerator.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Gets Inits gk2 gk3 end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , Inits , s1 end transition t2 s1 , gk2 , s2 end transition t3 s0 , gk3 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyManagerFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyManagerFactory.statemachine deleted file mode 100644 index de0691439..000000000 --- a/plugins/de.cognicrypt.order.editor/output/KeyManagerFactory.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Gets Init gkm end state s2 true end state s1 true end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , Init , s1 end transition t2 s1 , gkm , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyPair.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyPair.statemachine deleted file mode 100644 index 9839212d1..000000000 --- a/plugins/de.cognicrypt.order.editor/output/KeyPair.statemachine +++ /dev/null @@ -1 +0,0 @@ -events co pu1 pu2 pr3 pr4 pr5 pu6 pu7 pr8 end state s2 true end state s1 true end state s0 true end state sinit true end transition t0 sinit , co , s0 end transition t1 s0 , pu1 , s1 end transition t2 s1 , pu2 , s1 end transition t3 s1 , pr3 , s2 end transition t4 s2 , pr4 , s2 end transition t5 s0 , pr5 , s2 end transition t6 s2 , pu6 , s1 end transition t7 sinit , pu7 , s1 end transition t8 sinit , pr8 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyPairGenerator.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyPairGenerator.statemachine deleted file mode 100644 index ed1edef57..000000000 --- a/plugins/de.cognicrypt.order.editor/output/KeyPairGenerator.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Gets Inits Generators end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , Inits , s1 end transition t2 s1 , Generators , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyParameter.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyParameter.statemachine deleted file mode 100644 index 7a35430e3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/KeyParameter.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyStore.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyStore.statemachine deleted file mode 100644 index 3764dcedb..000000000 --- a/plugins/de.cognicrypt.order.editor/output/KeyStore.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Gets Loads gE2 gk3 gk4 sE5 Stores gE7 gk8 sE9 end state s2 false end state s1 true end state s0 false end state sinit false end state s4 false end state s3 true end transition t0 sinit , Gets , s0 end transition t1 s0 , Loads , s1 end transition t2 s1 , gE2 , s2 end transition t3 s2 , gk3 , s3 end transition t4 s1 , gk4 , s3 end transition t5 s1 , sE5 , s4 end transition t6 s4 , Stores , s3 end transition t7 s3 , gE7 , s2 end transition t8 s3 , gk8 , s3 end transition t9 s3 , sE9 , s4 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyStoreBuilderParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyStoreBuilderParameters.statemachine deleted file mode 100644 index 0dbe94905..000000000 --- a/plugins/de.cognicrypt.order.editor/output/KeyStoreBuilderParameters.statemachine +++ /dev/null @@ -1 +0,0 @@ -events C end state s0 true end state sinit false end transition t0 sinit , C , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeyTemplate.statemachine b/plugins/de.cognicrypt.order.editor/output/KeyTemplate.statemachine deleted file mode 100644 index b041745d0..000000000 --- a/plugins/de.cognicrypt.order.editor/output/KeyTemplate.statemachine +++ /dev/null @@ -1 +0,0 @@ -events evt0 evt1 end state s0 true end state sinit true end transition t0 sinit , evt0 , s0 end transition t1 s0 , evt1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/KeysetHandle.statemachine b/plugins/de.cognicrypt.order.editor/output/KeysetHandle.statemachine deleted file mode 100644 index 8fa2debe0..000000000 --- a/plugins/de.cognicrypt.order.editor/output/KeysetHandle.statemachine +++ /dev/null @@ -1 +0,0 @@ -events gen_evt read_evt gen_public_evt export_evt3 export_evt4 end state s2 true end state s1 true end state s0 true end state sinit false end transition t0 sinit , gen_evt , s0 end transition t1 sinit , read_evt , s0 end transition t2 s0 , gen_public_evt , s1 end transition t3 s1 , export_evt3 , s2 end transition t4 s0 , export_evt4 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/Mac.statemachine b/plugins/de.cognicrypt.order.editor/output/Mac.statemachine deleted file mode 100644 index 6ac8396e6..000000000 --- a/plugins/de.cognicrypt.order.editor/output/Mac.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Gets Inits Finals2 Updates3 Updates4 Finals5 end state s2 true end state s1 false end state s0 false end state sinit false end state s3 false end transition t0 sinit , Gets , s0 end transition t1 s0 , Inits , s1 end transition t2 s1 , Finals2 , s2 end transition t3 s1 , Updates3 , s3 end transition t4 s3 , Updates4 , s3 end transition t5 s3 , Finals5 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/MacFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/MacFactory.statemachine deleted file mode 100644 index bd29bdef3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/MacFactory.statemachine +++ /dev/null @@ -1 +0,0 @@ -events gp end state s0 true end state sinit false end transition t0 sinit , gp , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/MacKeyTemplates.statemachine b/plugins/de.cognicrypt.order.editor/output/MacKeyTemplates.statemachine deleted file mode 100644 index 86803b439..000000000 --- a/plugins/de.cognicrypt.order.editor/output/MacKeyTemplates.statemachine +++ /dev/null @@ -1 +0,0 @@ -events hmac_sha256_evt end state s0 true end state sinit false end transition t0 sinit , hmac_sha256_evt , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/MacPrimitive.statemachine b/plugins/de.cognicrypt.order.editor/output/MacPrimitive.statemachine deleted file mode 100644 index 7d80b232c..000000000 --- a/plugins/de.cognicrypt.order.editor/output/MacPrimitive.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Mode0 Mode1 end state s0 true end state sinit true end transition t0 sinit , Mode0 , s0 end transition t1 s0 , Mode1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/MessageDigest.statemachine b/plugins/de.cognicrypt.order.editor/output/MessageDigest.statemachine deleted file mode 100644 index 025a21dde..000000000 --- a/plugins/de.cognicrypt.order.editor/output/MessageDigest.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Gets DWOU1 Updates2 Updates3 Digests DWOU5 Updates6 end state s2 false end state s1 true end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , DWOU1 , s1 end transition t2 s0 , Updates2 , s2 end transition t3 s2 , Updates3 , s2 end transition t4 s2 , Digests , s1 end transition t5 s1 , DWOU5 , s1 end transition t6 s1 , Updates6 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/PBEKeySpec.statemachine b/plugins/de.cognicrypt.order.editor/output/PBEKeySpec.statemachine deleted file mode 100644 index 0bb07424e..000000000 --- a/plugins/de.cognicrypt.order.editor/output/PBEKeySpec.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c1 cP end state s1 true end state s0 false end state sinit false end transition t0 sinit , c1 , s0 end transition t1 s0 , cP , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/PBEParameterSpec.statemachine b/plugins/de.cognicrypt.order.editor/output/PBEParameterSpec.statemachine deleted file mode 100644 index 7a35430e3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/PBEParameterSpec.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/PKIXBuilderParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/PKIXBuilderParameters.statemachine deleted file mode 100644 index 9cca1f340..000000000 --- a/plugins/de.cognicrypt.order.editor/output/PKIXBuilderParameters.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c1 c2 end state s0 true end state sinit false end transition t0 sinit , c1 , s0 end transition t1 sinit , c2 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/PKIXParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/PKIXParameters.statemachine deleted file mode 100644 index 5257247b4..000000000 --- a/plugins/de.cognicrypt.order.editor/output/PKIXParameters.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c1 end state s0 true end state sinit false end transition t0 sinit , c1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/PaddedBufferedBlockCipher.statemachine b/plugins/de.cognicrypt.order.editor/output/PaddedBufferedBlockCipher.statemachine deleted file mode 100644 index 360214e91..000000000 --- a/plugins/de.cognicrypt.order.editor/output/PaddedBufferedBlockCipher.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons Inits1 Procs DOFINALS Inits4 end state s2 false end state s1 false end state s0 false end state sinit false end state s3 true end transition t0 sinit , Cons , s0 end transition t1 s0 , Inits1 , s1 end transition t2 s1 , Procs , s2 end transition t3 s2 , DOFINALS , s3 end transition t4 s3 , Inits4 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ParametersWithIV.statemachine b/plugins/de.cognicrypt.order.editor/output/ParametersWithIV.statemachine deleted file mode 100644 index 7a35430e3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/ParametersWithIV.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/ParametersWithRandom.statemachine b/plugins/de.cognicrypt.order.editor/output/ParametersWithRandom.statemachine deleted file mode 100644 index 7a35430e3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/ParametersWithRandom.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/PublicKeySign.statemachine b/plugins/de.cognicrypt.order.editor/output/PublicKeySign.statemachine deleted file mode 100644 index d5b861f4a..000000000 --- a/plugins/de.cognicrypt.order.editor/output/PublicKeySign.statemachine +++ /dev/null @@ -1 +0,0 @@ -events sign_evt0 sign_evt1 end state s0 true end state sinit false end transition t0 sinit , sign_evt0 , s0 end transition t1 sinit , sign_evt1 , sinit end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/PublicKeySignFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/PublicKeySignFactory.statemachine deleted file mode 100644 index 0ea6c285c..000000000 --- a/plugins/de.cognicrypt.order.editor/output/PublicKeySignFactory.statemachine +++ /dev/null @@ -1 +0,0 @@ -events gp0 gp1 end state s0 true end state sinit false end transition t0 sinit , gp0 , s0 end transition t1 sinit , gp1 , sinit end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/PublicKeyVerify.statemachine b/plugins/de.cognicrypt.order.editor/output/PublicKeyVerify.statemachine deleted file mode 100644 index 7b24553cb..000000000 --- a/plugins/de.cognicrypt.order.editor/output/PublicKeyVerify.statemachine +++ /dev/null @@ -1 +0,0 @@ -events verify_evt0 verify_evt1 end state s0 true end state sinit false end transition t0 sinit , verify_evt0 , s0 end transition t1 sinit , verify_evt1 , sinit end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/PublicKeyVerifyFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/PublicKeyVerifyFactory.statemachine deleted file mode 100644 index 0ea6c285c..000000000 --- a/plugins/de.cognicrypt.order.editor/output/PublicKeyVerifyFactory.statemachine +++ /dev/null @@ -1 +0,0 @@ -events gp0 gp1 end state s0 true end state sinit false end transition t0 sinit , gp0 , s0 end transition t1 sinit , gp1 , sinit end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/RSADigestSigner.statemachine b/plugins/de.cognicrypt.order.editor/output/RSADigestSigner.statemachine deleted file mode 100644 index 2b1c302e7..000000000 --- a/plugins/de.cognicrypt.order.editor/output/RSADigestSigner.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c1 Inits1 Updates2 Updates3 Signs c2 Inits6 Updates7 Updates8 Verify end state s7 true end state s2 false end state s1 false end state s0 false end state sinit false end state s6 false end state s5 false end state s4 false end state s3 true end transition t0 sinit , c1 , s0 end transition t1 s0 , Inits1 , s1 end transition t2 s1 , Updates2 , s2 end transition t3 s2 , Updates3 , s2 end transition t4 s2 , Signs , s3 end transition t5 sinit , c2 , s4 end transition t6 s4 , Inits6 , s5 end transition t7 s5 , Updates7 , s6 end transition t8 s6 , Updates8 , s6 end transition t9 s6 , Verify , s7 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/RSAEngine.statemachine b/plugins/de.cognicrypt.order.editor/output/RSAEngine.statemachine deleted file mode 100644 index 64180be26..000000000 --- a/plugins/de.cognicrypt.order.editor/output/RSAEngine.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c i1 p i3 end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , c , s0 end transition t1 s0 , i1 , s1 end transition t2 s1 , p , s2 end transition t3 s2 , i3 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/RSAKeyGenParameterSpec.statemachine b/plugins/de.cognicrypt.order.editor/output/RSAKeyGenParameterSpec.statemachine deleted file mode 100644 index 5257247b4..000000000 --- a/plugins/de.cognicrypt.order.editor/output/RSAKeyGenParameterSpec.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c1 end state s0 true end state sinit false end transition t0 sinit , c1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/RSAKeyGenerationParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/RSAKeyGenerationParameters.statemachine deleted file mode 100644 index c51ba93b3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/RSAKeyGenerationParameters.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c end state s0 true end state sinit false end transition t0 sinit , c , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/RSAKeyPairGenerator.statemachine b/plugins/de.cognicrypt.order.editor/output/RSAKeyPairGenerator.statemachine deleted file mode 100644 index 1cef7136b..000000000 --- a/plugins/de.cognicrypt.order.editor/output/RSAKeyPairGenerator.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c i1 g i3 end state s2 true end state s1 false end state s0 false end state sinit false end transition t0 sinit , c , s0 end transition t1 s0 , i1 , s1 end transition t2 s1 , g , s2 end transition t3 s2 , i3 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/RSAKeyParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/RSAKeyParameters.statemachine deleted file mode 100644 index c51ba93b3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/RSAKeyParameters.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c end state s0 true end state sinit false end transition t0 sinit , c , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/RSAPrivateCrtKeyParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/RSAPrivateCrtKeyParameters.statemachine deleted file mode 100644 index c51ba93b3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/RSAPrivateCrtKeyParameters.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c end state s0 true end state sinit false end transition t0 sinit , c , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/SHA256Digest.statemachine b/plugins/de.cognicrypt.order.editor/output/SHA256Digest.statemachine deleted file mode 100644 index 8b7b69b52..000000000 --- a/plugins/de.cognicrypt.order.editor/output/SHA256Digest.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons Updates1 Updates2 Finals Updates4 end state s2 true end state s1 false end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end transition t1 s0 , Updates1 , s1 end transition t2 s1 , Updates2 , s1 end transition t3 s1 , Finals , s2 end transition t4 s2 , Updates4 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/SSLContext.statemachine b/plugins/de.cognicrypt.order.editor/output/SSLContext.statemachine deleted file mode 100644 index 9baec8e6f..000000000 --- a/plugins/de.cognicrypt.order.editor/output/SSLContext.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Gets Init Engine end state s2 true end state s1 true end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , Init , s1 end transition t2 s1 , Engine , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/SSLEngine.statemachine b/plugins/de.cognicrypt.order.editor/output/SSLEngine.statemachine deleted file mode 100644 index 356db597b..000000000 --- a/plugins/de.cognicrypt.order.editor/output/SSLEngine.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Con ec1 ep2 ep3 ec4 end state s2 true end state s1 false end state s0 false end state sinit false end state s3 false end transition t0 sinit , Con , s0 end transition t1 s0 , ec1 , s1 end transition t2 s1 , ep2 , s2 end transition t3 s0 , ep3 , s3 end transition t4 s3 , ec4 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/SSLParameters.statemachine b/plugins/de.cognicrypt.order.editor/output/SSLParameters.statemachine deleted file mode 100644 index 5ddaf0651..000000000 --- a/plugins/de.cognicrypt.order.editor/output/SSLParameters.statemachine +++ /dev/null @@ -1 +0,0 @@ -events C1 CS1 PR2 PR3 CS4 C2 PR6 C3 end state s2 true end state s1 false end state s0 false end state sinit false end state s4 false end state s3 false end transition t0 sinit , C1 , s0 end transition t1 s0 , CS1 , s1 end transition t2 s1 , PR2 , s2 end transition t3 s0 , PR3 , s3 end transition t4 s3 , CS4 , s2 end transition t5 sinit , C2 , s4 end transition t6 s4 , PR6 , s2 end transition t7 sinit , C3 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/SecretKey.statemachine b/plugins/de.cognicrypt.order.editor/output/SecretKey.statemachine deleted file mode 100644 index de8017943..000000000 --- a/plugins/de.cognicrypt.order.editor/output/SecretKey.statemachine +++ /dev/null @@ -1 +0,0 @@ -events ge0 ge1 d2 d3 end state s1 true end state s0 true end state sinit true end transition t0 sinit , ge0 , s0 end transition t1 s0 , ge1 , s0 end transition t2 s0 , d2 , s1 end transition t3 sinit , d3 , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/SecretKeyFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/SecretKeyFactory.statemachine deleted file mode 100644 index 303600f64..000000000 --- a/plugins/de.cognicrypt.order.editor/output/SecretKeyFactory.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Gets Gens end state s1 true end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , Gens , s1 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/SecretKeySpec.statemachine b/plugins/de.cognicrypt.order.editor/output/SecretKeySpec.statemachine deleted file mode 100644 index 7a35430e3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/SecretKeySpec.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Cons end state s0 true end state sinit false end transition t0 sinit , Cons , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/SecureRandom.statemachine b/plugins/de.cognicrypt.order.editor/output/SecureRandom.statemachine deleted file mode 100644 index 5ec1f430b..000000000 --- a/plugins/de.cognicrypt.order.editor/output/SecureRandom.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Ins Seeds Ends2 Ends3 Ends4 end state s2 true end state s1 true end state s0 true end state sinit false end transition t0 sinit , Ins , s0 end transition t1 s0 , Seeds , s1 end transition t2 s1 , Ends2 , s2 end transition t3 s2 , Ends3 , s2 end transition t4 s0 , Ends4 , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/Signature.statemachine b/plugins/de.cognicrypt.order.editor/output/Signature.statemachine deleted file mode 100644 index eb6773f28..000000000 --- a/plugins/de.cognicrypt.order.editor/output/Signature.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Gets InitSigns1 InitSigns2 Updates3 Updates4 Signs5 Signs6 Updates7 InitVerifies8 InitVerifies9 Updates10 Updates11 Verifies12 Verifies13 Verifies14 Updates15 end state s2 false end state s1 false end state s0 false end state sinit false end state s6 true end state s5 false end state s4 false end state s3 true end transition t0 sinit , Gets , s0 end transition t1 s0 , InitSigns1 , s1 end transition t2 s1 , InitSigns2 , s1 end transition t3 s1 , Updates3 , s2 end transition t4 s2 , Updates4 , s2 end transition t5 s2 , Signs5 , s3 end transition t6 s3 , Signs6 , s3 end transition t7 s3 , Updates7 , s2 end transition t8 s0 , InitVerifies8 , s4 end transition t9 s4 , InitVerifies9 , s4 end transition t10 s4 , Updates10 , s5 end transition t11 s5 , Updates11 , s5 end transition t12 s5 , Verifies12 , s6 end transition t13 s6 , Verifies13 , s6 end transition t14 s4 , Verifies14 , s6 end transition t15 s6 , Updates15 , s5 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/SignatureKeyTemplates.statemachine b/plugins/de.cognicrypt.order.editor/output/SignatureKeyTemplates.statemachine deleted file mode 100644 index e80b59a84..000000000 --- a/plugins/de.cognicrypt.order.editor/output/SignatureKeyTemplates.statemachine +++ /dev/null @@ -1 +0,0 @@ -events ecdsa_evt end state s0 true end state sinit false end transition t0 sinit , ecdsa_evt , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/StreamingAead.statemachine b/plugins/de.cognicrypt.order.editor/output/StreamingAead.statemachine deleted file mode 100644 index ad0b54bd4..000000000 --- a/plugins/de.cognicrypt.order.editor/output/StreamingAead.statemachine +++ /dev/null @@ -1 +0,0 @@ -events create_writable_channel_evt create_readable_channel_evt end state s0 true end state sinit false end transition t0 sinit , create_writable_channel_evt , s0 end transition t1 sinit , create_readable_channel_evt , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/StreamingAeadFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/StreamingAeadFactory.statemachine deleted file mode 100644 index bd29bdef3..000000000 --- a/plugins/de.cognicrypt.order.editor/output/StreamingAeadFactory.statemachine +++ /dev/null @@ -1 +0,0 @@ -events gp end state s0 true end state sinit false end transition t0 sinit , gp , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/StreamingAeadKeyTemplates.statemachine b/plugins/de.cognicrypt.order.editor/output/StreamingAeadKeyTemplates.statemachine deleted file mode 100644 index 31889e648..000000000 --- a/plugins/de.cognicrypt.order.editor/output/StreamingAeadKeyTemplates.statemachine +++ /dev/null @@ -1 +0,0 @@ -events CreateKeyTemplates0 CreateKeyTemplates1 end state s0 true end state sinit true end transition t0 sinit , CreateKeyTemplates0 , s0 end transition t1 s0 , CreateKeyTemplates1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/TrustAnchor.statemachine b/plugins/de.cognicrypt.order.editor/output/TrustAnchor.statemachine deleted file mode 100644 index d9e1aa7f0..000000000 --- a/plugins/de.cognicrypt.order.editor/output/TrustAnchor.statemachine +++ /dev/null @@ -1 +0,0 @@ -events c1 c2 c3 end state s0 true end state sinit false end transition t0 sinit , c1 , s0 end transition t1 sinit , c2 , s0 end transition t2 sinit , c3 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/output/TrustManagerFactory.statemachine b/plugins/de.cognicrypt.order.editor/output/TrustManagerFactory.statemachine deleted file mode 100644 index a8193acd6..000000000 --- a/plugins/de.cognicrypt.order.editor/output/TrustManagerFactory.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Gets Init gtm end state s2 true end state s1 true end state s0 false end state sinit false end transition t0 sinit , Gets , s0 end transition t1 s0 , Init , s1 end transition t2 s1 , gtm , s2 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/sirius/.project b/plugins/de.cognicrypt.order.editor/sirius/.project new file mode 100644 index 000000000..3d2c5b909 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/sirius/.project @@ -0,0 +1,11 @@ + + + de.cognicrypt.order.editor.sirius + + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/.classpath b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/.classpath similarity index 100% rename from plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/.classpath rename to plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/.classpath diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/.project b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/.project similarity index 100% rename from plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/.project rename to plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/.project diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/META-INF/MANIFEST.MF b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/META-INF/MANIFEST.MF similarity index 100% rename from plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/META-INF/MANIFEST.MF rename to plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/META-INF/MANIFEST.MF diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/build.properties b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/build.properties similarity index 100% rename from plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/build.properties rename to plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/build.properties diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/description/statemachine.odesign b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/description/statemachine.odesign similarity index 74% rename from plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/description/statemachine.odesign rename to plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/description/statemachine.odesign index c79fff387..d5e4d3a55 100644 --- a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/description/statemachine.odesign +++ b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/description/statemachine.odesign @@ -31,24 +31,6 @@ - - - - - - - - - - - - - - - - - - diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.properties b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/plugin.properties similarity index 100% rename from plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.properties rename to plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/plugin.properties diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.xml b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/plugin.xml similarity index 100% rename from plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/plugin.xml rename to plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/plugin.xml diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Activator.java b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/src/order/statemachine/design/Activator.java similarity index 100% rename from plugins/de.cognicrypt.order.editor.sirius/order.statemachine.design/src/order/statemachine/design/Activator.java rename to plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/src/order/statemachine/design/Activator.java diff --git a/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/src/order/statemachine/design/Services.java b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/src/order/statemachine/design/Services.java new file mode 100644 index 000000000..9374c52de --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/src/order/statemachine/design/Services.java @@ -0,0 +1,36 @@ +package order.statemachine.design; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EStructuralFeature; + +import de.cognicrypt.order.editor.statemachine.Event; +import de.cognicrypt.order.editor.statemachine.State; + +/** + * The services class used by VSM. + */ +public class Services { + + /** + * See http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.sirius.doc%2Fdoc%2Findex.html&cp=24 for documentation on how to write service methods. + */ + public EObject myService(EObject self, String arg) { + // TODO Auto-generated code + return self; + } + + public int changeBorderFinalNode(EObject self) { + + if(self instanceof State) { + State s = (State) self; + boolean finalNode = s.isIsFinal(); + if(finalNode) { + return 5; + } + } + + return 1; + } + +} diff --git a/plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/.project b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.modeling/.project similarity index 100% rename from plugins/de.cognicrypt.order.editor.sirius/order.statemachine.modeling/.project rename to plugins/de.cognicrypt.order.editor/sirius/order.statemachine.modeling/.project diff --git a/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.modeling/representations.aird b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.modeling/representations.aird new file mode 100644 index 000000000..cb579378f --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.modeling/representations.aird @@ -0,0 +1,1432 @@ + + + + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/CBCBlockCipher.statemachine + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AESEngine.statemachine + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AeadFactory.statemachine + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/ECElGamalDecryptor.statemachine + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AlgorithmParameters.statemachine + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/de.cognicrypt.order.editor/xtend-gen/de/cognicrypt/order/editor/generator/.gitignore b/plugins/de.cognicrypt.order.editor/xtend-gen/de/cognicrypt/order/editor/generator/.gitignore new file mode 100644 index 000000000..d68d8ef39 --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/xtend-gen/de/cognicrypt/order/editor/generator/.gitignore @@ -0,0 +1,3 @@ +/.StatemachineGenerator.java._trace +/.StatemachineGenerator.xtendbin +/StatemachineGenerator.java From 5b0aa45a40abadd6d26c0a32da771e91c610c4f6 Mon Sep 17 00:00:00 2001 From: Anemone Date: Fri, 15 Oct 2021 12:06:22 +0200 Subject: [PATCH 11/18] Replace local reference to metamodel by platform URI --- .../output/AeadPrimitive.statemachine | 1 + .../description/statemachine.odesign | 2 +- .../representations.aird | 426 +++++++++++++++++- 3 files changed, 427 insertions(+), 2 deletions(-) create mode 100644 plugins/de.cognicrypt.order.editor/output/AeadPrimitive.statemachine diff --git a/plugins/de.cognicrypt.order.editor/output/AeadPrimitive.statemachine b/plugins/de.cognicrypt.order.editor/output/AeadPrimitive.statemachine new file mode 100644 index 000000000..7d80b232c --- /dev/null +++ b/plugins/de.cognicrypt.order.editor/output/AeadPrimitive.statemachine @@ -0,0 +1 @@ +events Mode0 Mode1 end state s0 true end state sinit true end transition t0 sinit , Mode0 , s0 end transition t1 s0 , Mode1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/description/statemachine.odesign b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/description/statemachine.odesign index d5e4d3a55..00b769503 100644 --- a/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/description/statemachine.odesign +++ b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/description/statemachine.odesign @@ -2,7 +2,7 @@ - + diff --git a/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.modeling/representations.aird b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.modeling/representations.aird index 96ac269c6..0d75a50ce 100644 --- a/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.modeling/representations.aird +++ b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.modeling/representations.aird @@ -1,1856 +1,8 @@ - - - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/CBCBlockCipher.statemachine - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AESEngine.statemachine - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AeadFactory.statemachine - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/ECElGamalDecryptor.statemachine - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AlgorithmParameters.statemachine - file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AeadPrimitive.statemachine - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - KEEP_LOCATION - KEEP_SIZE - KEEP_RATIO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore + file:/C:/Users/T440s/git/CogniCrypt/plugins/de.cognicrypt.order.editor/output/AEADParameters.statemachine + + + + From edf18c9a6caf05de1a941ae14e78eb7cc5c69f60 Mon Sep 17 00:00:00 2001 From: Anemone Date: Fri, 22 Oct 2021 10:42:21 +0200 Subject: [PATCH 14/18] Adjust grammar for event containment reference, add edge creation tool. Signed-off-by: Anemone --- .../model/generated/Statemachine.ecore | 11 +- .../model/generated/Statemachine.genmodel | 9 +- .../output/AeadPrimitive.statemachine | 1 - .../description/statemachine.odesign | 20 +- .../order/statemachine/design/Services.java | 5 - .../representations.aird | 6 +- .../order/editor/Statemachine.xtextbin | Bin 4889 -> 4810 bytes .../antlr/internal/InternalStatemachine.g | 127 +- .../internal/InternalStatemachine.tokens | 48 +- .../internal/InternalStatemachineLexer.java | 383 ++-- .../internal/InternalStatemachineParser.java | 1569 ++++++++--------- .../StatemachineSemanticSequencer.java | 6 +- .../services/StatemachineGrammarAccess.java | 123 +- .../editor/statemachine/Statemachine.java | 13 - .../statemachine/StatemachineFactory.java | 18 +- .../statemachine/StatemachinePackage.java | 174 +- .../order/editor/statemachine/Transition.java | 10 +- .../impl/StatemachineFactoryImpl.java | 20 +- .../statemachine/impl/StatemachineImpl.java | 40 - .../impl/StatemachinePackageImpl.java | 81 +- .../statemachine/impl/TransitionImpl.java | 59 +- .../util/StatemachineAdapterFactory.java | 28 +- .../statemachine/util/StatemachineSwitch.java | 32 +- .../order/editor/Statemachine.xtext | 13 +- .../editor/parser/StatemachineParser.java | 1 - 25 files changed, 1276 insertions(+), 1521 deletions(-) delete mode 100644 plugins/de.cognicrypt.order.editor/output/AeadPrimitive.statemachine diff --git a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore index a0ccb03c7..19c1d1c6f 100644 --- a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore +++ b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.ecore @@ -3,16 +3,11 @@ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="statemachine" nsURI="http://www.cognicrypt.de/order/editor/Statemachine" nsPrefix="statemachine"> - - - - @@ -22,7 +17,11 @@ - + + + + diff --git a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel index 2a939c077..e636d1cb5 100644 --- a/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel +++ b/plugins/de.cognicrypt.order.editor/model/generated/Statemachine.genmodel @@ -7,13 +7,9 @@ - - - - @@ -22,8 +18,11 @@ - + + + + diff --git a/plugins/de.cognicrypt.order.editor/output/AeadPrimitive.statemachine b/plugins/de.cognicrypt.order.editor/output/AeadPrimitive.statemachine deleted file mode 100644 index 7d80b232c..000000000 --- a/plugins/de.cognicrypt.order.editor/output/AeadPrimitive.statemachine +++ /dev/null @@ -1 +0,0 @@ -events Mode0 Mode1 end state s0 true end state sinit true end transition t0 sinit , Mode0 , s0 end transition t1 s0 , Mode1 , s0 end \ No newline at end of file diff --git a/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/description/statemachine.odesign b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/description/statemachine.odesign index 4c489f237..87fd668da 100644 --- a/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/description/statemachine.odesign +++ b/plugins/de.cognicrypt.order.editor/sirius/order.statemachine.design/description/statemachine.odesign @@ -5,7 +5,7 @@ -