diff options
author | Matthew Davis | 2013-03-25 18:25:17 +0000 |
---|---|---|
committer | Matthew Davis | 2013-03-25 18:25:17 +0000 |
commit | f48aae78e8d537b97acf3c088ad70de783c2f47a (patch) | |
tree | 12f413790fe6ac0417ba7c7f540805d7123d4f7c | |
parent | c46b4eaab0a616ea40ddcb67748253764cdb25cd (diff) | |
download | org.eclipse.stem-f48aae78e8d537b97acf3c088ad70de783c2f47a.tar.gz org.eclipse.stem-f48aae78e8d537b97acf3c088ad70de783c2f47a.tar.xz org.eclipse.stem-f48aae78e8d537b97acf3c088ad70de783c2f47a.zip |
git-svn-id: http://dev.eclipse.org/svnroot/technology/org.eclipse.stem/trunk@3659 92a21009-5b66-0410-b83a-dc787c41c6e9
270 files changed, 44457 insertions, 278 deletions
diff --git a/modelgen/org.eclipse.stem.model.codegen/META-INF/MANIFEST.MF b/modelgen/org.eclipse.stem.model.codegen/META-INF/MANIFEST.MF index ed0d28357..1bf379e71 100644 --- a/modelgen/org.eclipse.stem.model.codegen/META-INF/MANIFEST.MF +++ b/modelgen/org.eclipse.stem.model.codegen/META-INF/MANIFEST.MF @@ -9,7 +9,10 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.core.resources, org.eclipse.emf.codegen, org.eclipse.emf.codegen.ecore, - org.eclipse.stem.model + org.eclipse.stem.model, + org.eclipse.xtext, + org.eclipse.stem.model.ctdl, + org.eclipse.stem.model.ctdl.functions Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Export-Package: org.eclipse.stem.model.codegen, diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/edit/BuildProperties_.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/edit/BuildProperties_.java index 7ae37781a..1fa5e0e3d 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/edit/BuildProperties_.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/edit/BuildProperties_.java @@ -1,7 +1,11 @@ package org.eclipse.emf.codegen.ecore.templates.edit; -import org.eclipse.emf.codegen.ecore.genmodel.*; -import java.util.*; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenRuntimePlatform; public class BuildProperties_ { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/edit/ItemProviderAdapterFactory_.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/edit/ItemProviderAdapterFactory_.java index d61883661..8456da464 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/edit/ItemProviderAdapterFactory_.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/edit/ItemProviderAdapterFactory_.java @@ -1,7 +1,18 @@ package org.eclipse.emf.codegen.ecore.templates.edit; -import java.util.*; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenClass; +import org.eclipse.emf.codegen.ecore.genmodel.GenClassifier; +import org.eclipse.emf.codegen.ecore.genmodel.GenDataType; +import org.eclipse.emf.codegen.ecore.genmodel.GenFeature; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.emf.codegen.ecore.genmodel.GenProviderKind; +import org.eclipse.emf.codegen.ecore.genmodel.GenRuntimePlatform; public class ItemProviderAdapterFactory_ { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/edit/ItemProvider_.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/edit/ItemProvider_.java index 34ff309f3..1ed48979d 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/edit/ItemProvider_.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/edit/ItemProvider_.java @@ -1,7 +1,16 @@ package org.eclipse.emf.codegen.ecore.templates.edit; -import java.util.*; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import java.util.Iterator; + +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenClass; +import org.eclipse.emf.codegen.ecore.genmodel.GenClassifier; +import org.eclipse.emf.codegen.ecore.genmodel.GenDataType; +import org.eclipse.emf.codegen.ecore.genmodel.GenFeature; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.emf.codegen.ecore.genmodel.GenPropertyKind; +import org.eclipse.emf.codegen.ecore.genmodel.GenRuntimeVersion; public class ItemProvider_ { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/edit/PluginProperties_.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/edit/PluginProperties_.java index 3c2a63f9d..09ebd3ff5 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/edit/PluginProperties_.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/edit/PluginProperties_.java @@ -1,7 +1,15 @@ package org.eclipse.emf.codegen.ecore.templates.edit; -import java.util.*; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import java.util.Iterator; + +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenClass; +import org.eclipse.emf.codegen.ecore.genmodel.GenEnum; +import org.eclipse.emf.codegen.ecore.genmodel.GenEnumLiteral; +import org.eclipse.emf.codegen.ecore.genmodel.GenFeature; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.emf.codegen.ecore.genmodel.GenRuntimePlatform; public class PluginProperties_ { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/ActionBarContributor_.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/ActionBarContributor_.java index cfcf8153d..a7df5185d 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/ActionBarContributor_.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/ActionBarContributor_.java @@ -1,6 +1,9 @@ package org.eclipse.emf.codegen.ecore.templates.editor; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenJDKLevel; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; public class ActionBarContributor_ { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/Editor_.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/Editor_.java index a22fe8495..bee58d793 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/Editor_.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/Editor_.java @@ -1,7 +1,12 @@ package org.eclipse.emf.codegen.ecore.templates.editor; -import java.util.*; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import java.util.Iterator; + +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenJDKLevel; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.emf.codegen.ecore.genmodel.GenRuntimeVersion; public class Editor_ { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/ModelWizard_.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/ModelWizard_.java index d1bd0b242..df8b41770 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/ModelWizard_.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/ModelWizard_.java @@ -1,6 +1,9 @@ package org.eclipse.emf.codegen.ecore.templates.editor; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenJDKLevel; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; public class ModelWizard_ { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PluginProperties_.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PluginProperties_.java index 95170e577..b43df4923 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PluginProperties_.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PluginProperties_.java @@ -1,7 +1,11 @@ package org.eclipse.emf.codegen.ecore.templates.editor; -import java.util.*; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import java.util.Iterator; + +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.emf.codegen.ecore.genmodel.GenRuntimePlatform; public class PluginProperties_ { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/Plugin_.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/Plugin_.java index 51a046468..aa084dfea 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/Plugin_.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/Plugin_.java @@ -1,7 +1,10 @@ package org.eclipse.emf.codegen.ecore.templates.editor; -import java.util.*; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import java.util.Iterator; + +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenRuntimePlatform; public class Plugin_ { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PropertyEditor.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PropertyEditor.java index 475a2bfff..2b266300d 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PropertyEditor.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PropertyEditor.java @@ -1,7 +1,11 @@ package org.eclipse.emf.codegen.ecore.templates.editor; -import org.eclipse.stem.model.codegen.*; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenClass; +import org.eclipse.emf.codegen.ecore.genmodel.GenFeature; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.stem.model.codegen.STEMGenClass; public class PropertyEditor { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PropertyEditorAdapter.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PropertyEditorAdapter.java index 68d7309c8..0ca7fd755 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PropertyEditorAdapter.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PropertyEditorAdapter.java @@ -1,7 +1,10 @@ package org.eclipse.emf.codegen.ecore.templates.editor; -import org.eclipse.stem.model.codegen.*; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenClass; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.stem.model.codegen.STEMGenClass; public class PropertyEditorAdapter { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PropertyEditorAdapterFactory.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PropertyEditorAdapterFactory.java index d282a5a58..c48edffdf 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PropertyEditorAdapterFactory.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PropertyEditorAdapterFactory.java @@ -1,7 +1,10 @@ package org.eclipse.emf.codegen.ecore.templates.editor; -import org.eclipse.stem.model.codegen.*; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.stem.model.codegen.STEMGenClass; +import org.eclipse.stem.model.codegen.STEMGenPackage; public class PropertyEditorAdapterFactory { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PropertyStringProviderAdapterFactory.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PropertyStringProviderAdapterFactory.java index 551a2ceb1..14992ba94 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PropertyStringProviderAdapterFactory.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/PropertyStringProviderAdapterFactory.java @@ -1,7 +1,10 @@ package org.eclipse.emf.codegen.ecore.templates.editor; -import org.eclipse.stem.model.codegen.*; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.stem.model.codegen.STEMGenClass; +import org.eclipse.stem.model.codegen.STEMGenPackage; public class PropertyStringProviderAdapterFactory { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/RelativeValueProviderAdapterFactory.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/RelativeValueProviderAdapterFactory.java index 26ba62832..d7535883a 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/RelativeValueProviderAdapterFactory.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/RelativeValueProviderAdapterFactory.java @@ -1,7 +1,10 @@ package org.eclipse.emf.codegen.ecore.templates.editor; -import org.eclipse.stem.model.codegen.*; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.stem.model.codegen.STEMGenClass; +import org.eclipse.stem.model.codegen.STEMGenPackage; public class RelativeValueProviderAdapterFactory { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/WizardMessages.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/WizardMessages.java index d64260811..c3e63d756 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/WizardMessages.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/WizardMessages.java @@ -1,7 +1,8 @@ package org.eclipse.emf.codegen.ecore.templates.editor; -import org.eclipse.stem.model.codegen.*; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.stem.model.codegen.STEMGenPackage; public class WizardMessages { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/WizardMessagesProperties.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/WizardMessagesProperties.java index 1af9a36a0..0c8c013fc 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/WizardMessagesProperties.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/editor/WizardMessagesProperties.java @@ -1,7 +1,11 @@ package org.eclipse.emf.codegen.ecore.templates.editor; -import org.eclipse.stem.model.codegen.*; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenClass; +import org.eclipse.emf.codegen.ecore.genmodel.GenFeature; +import org.eclipse.stem.model.codegen.STEMGenClass; +import org.eclipse.stem.model.codegen.STEMGenFeature; +import org.eclipse.stem.model.codegen.STEMGenPackage; public class WizardMessagesProperties { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/AdapterFactoryClass_.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/AdapterFactoryClass_.java index dd4baf637..7eb7338f1 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/AdapterFactoryClass_.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/AdapterFactoryClass_.java @@ -1,7 +1,11 @@ package org.eclipse.emf.codegen.ecore.templates.model; -import java.util.*; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import java.util.Iterator; + +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenClass; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; public class AdapterFactoryClass_ { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/Class_.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/Class_.java index cc14d0a2c..00b14e3cd 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/Class_.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/Class_.java @@ -1,9 +1,22 @@ package org.eclipse.emf.codegen.ecore.templates.model; -import java.util.*; -import org.eclipse.stem.model.codegen.*; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.StringTokenizer; + +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenClass; +import org.eclipse.emf.codegen.ecore.genmodel.GenDelegationKind; +import org.eclipse.emf.codegen.ecore.genmodel.GenFeature; +import org.eclipse.emf.codegen.ecore.genmodel.GenJDKLevel; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenOperation; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.emf.codegen.ecore.genmodel.GenParameter; +import org.eclipse.emf.codegen.ecore.genmodel.GenRuntimePlatform; import org.eclipse.emf.codegen.util.CodeGenUtil; +import org.eclipse.stem.model.codegen.STEMGenClass; public class Class_ { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/FactoryClass_.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/FactoryClass_.java index 415368509..e5ca3d5cf 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/FactoryClass_.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/FactoryClass_.java @@ -1,7 +1,15 @@ package org.eclipse.emf.codegen.ecore.templates.model; -import java.util.*; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import java.util.Iterator; + +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenClass; +import org.eclipse.emf.codegen.ecore.genmodel.GenDataType; +import org.eclipse.emf.codegen.ecore.genmodel.GenEnum; +import org.eclipse.emf.codegen.ecore.genmodel.GenJDKLevel; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.emf.codegen.ecore.genmodel.GenRuntimeVersion; public class FactoryClass_ { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/PackageClass_.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/PackageClass_.java index c0b7354e1..92dc90a29 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/PackageClass_.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/PackageClass_.java @@ -1,10 +1,34 @@ package org.eclipse.emf.codegen.ecore.templates.model; -import java.util.*; -import org.eclipse.emf.ecore.*; -import org.eclipse.emf.ecore.util.EcoreUtil; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.ListIterator; +import java.util.Map; +import java.util.StringTokenizer; + +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenClass; +import org.eclipse.emf.codegen.ecore.genmodel.GenClassifier; +import org.eclipse.emf.codegen.ecore.genmodel.GenDataType; +import org.eclipse.emf.codegen.ecore.genmodel.GenEnum; +import org.eclipse.emf.codegen.ecore.genmodel.GenEnumLiteral; +import org.eclipse.emf.codegen.ecore.genmodel.GenFeature; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenOperation; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.emf.codegen.ecore.genmodel.GenParameter; +import org.eclipse.emf.codegen.ecore.genmodel.GenRuntimePlatform; +import org.eclipse.emf.codegen.ecore.genmodel.GenTypeParameter; import org.eclipse.emf.codegen.ecore.genmodel.impl.Literals; +import org.eclipse.emf.ecore.EAnnotation; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EGenericType; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.ETypeParameter; +import org.eclipse.emf.ecore.util.EcoreUtil; public class PackageClass_ { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/PluginProperties_.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/PluginProperties_.java index 7a03a8e81..5e06362c0 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/PluginProperties_.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/PluginProperties_.java @@ -1,6 +1,8 @@ package org.eclipse.emf.codegen.ecore.templates.model; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; public class PluginProperties_ { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/SwitchClass_.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/SwitchClass_.java index af9485ea8..d97c6cdcc 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/SwitchClass_.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/emf/codegen/ecore/templates/model/SwitchClass_.java @@ -1,7 +1,16 @@ package org.eclipse.emf.codegen.ecore.templates.model; -import java.util.*; -import org.eclipse.emf.codegen.ecore.genmodel.*; +import java.util.HashSet; +import java.util.Set; + +import org.eclipse.emf.codegen.ecore.genmodel.GenBase; +import org.eclipse.emf.codegen.ecore.genmodel.GenClass; +import org.eclipse.emf.codegen.ecore.genmodel.GenEnum; +import org.eclipse.emf.codegen.ecore.genmodel.GenJDKLevel; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.emf.codegen.ecore.genmodel.GenRuntimeVersion; +import org.eclipse.emf.codegen.ecore.genmodel.GenTypeParameter; public class SwitchClass_ { diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/CodeGenConstants.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/CodeGenConstants.java index bc7d7a645..315e0bf79 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/CodeGenConstants.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/CodeGenConstants.java @@ -89,6 +89,9 @@ public interface CodeGenConstants { public static final String GENERATOR_MARKER_ANNOTATION_SOURCE = "http:///org/eclipse/stem/modelgen/generated"; public static final String GENERATOR_MARKER_ANNOTATION_VERSION_KEY = "version"; + public static final String METAMODEL_URI_ANNOTATION_SOURCE = "http:///org/eclipse/stem/modelgen/metamodel"; + + public static final String AUTHOR_DETAILS_ANNOTATION_SOURCE = "http:///org/eclipse/stem/modelgen/author"; public static final String ADAPTERS_ANNOTATION_SOURCE = "http:///org/eclipse/stem/modelgen/model/adapters"; @@ -99,6 +102,9 @@ public interface CodeGenConstants { public static final String MESSAGES_ANNOTATION_SOURCE = "http:///org/eclipse/stem/modelgen/modelparam/messages"; public static final String CONSTRAINT_ANNOTATION_SOURCE = "http:///org/eclipse/stem/modelgen/modelparam/constraints"; + public static final String TRANSITIONS_ANNOTATION_SOURCE = "http:///org/eclipse/stem/modelgen/model/transitions"; + + public static final String PROPERTY_EDITOR_CLASS_KEY = "propertyEditorClass"; public static final String PROPERTY_EDITOR_SUPER_CLASS_KEY = "propertyEditorSuperClass"; diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/GeneratorUtils.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/GeneratorUtils.java index 639a34723..e6d648de2 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/GeneratorUtils.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/GeneratorUtils.java @@ -10,6 +10,8 @@ *******************************************************************************/ package org.eclipse.stem.model.codegen; +import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -18,16 +20,52 @@ import java.util.Map.Entry; import org.eclipse.emf.codegen.ecore.genmodel.GenClass; import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EAnnotation; +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.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.stem.model.codegen.descriptor.EClassDescriptor; import org.eclipse.stem.model.codegen.descriptor.JavaClassDescriptor; +import org.eclipse.stem.model.metamodel.Model; +import org.eclipse.stem.model.metamodel.Package; /** * Shared utilities for various common operations * to assist with model generation * */ -public class GeneratorUtils { +public class GeneratorUtils +{ + + public static Model getMetamodelModelForGenClass(GenClass genClass, Package metamodel) + { + for (Model model : metamodel.getModels()) { + if (genClass.getName().equals(model.getName())) { + return model; + } + } + return null; + } + + public static Package loadMetamodel(URI uri) throws IOException { + if (uri != null) { + ResourceSet resourceSet = new ResourceSetImpl(); + Resource resource = resourceSet.createResource(uri); + resource.load(null); + if (resource.getContents().size() > 0) { + EObject obj = resource.getContents().get(0); + EcoreUtil.resolveAll(obj); + + if (obj instanceof Package) { + return (Package) obj; + } + } + } + return null; + } /** * Converts a list of GenClasses to STEMGenClasses @@ -489,4 +527,12 @@ public class GeneratorUtils { } return valid; } + + public static void safeClose(InputStream is) { + try { + is.close(); + } catch (Throwable t) { + // do nothing + } + } }
\ No newline at end of file diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/STEMGenClass.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/STEMGenClass.java index 16de961b3..f10007773 100755 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/STEMGenClass.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/STEMGenClass.java @@ -11,8 +11,10 @@ package org.eclipse.stem.model.codegen; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import org.eclipse.emf.codegen.ecore.genmodel.GenClass; import org.eclipse.emf.codegen.ecore.genmodel.GenFeature; @@ -20,6 +22,11 @@ import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EAnnotation; import org.eclipse.stem.model.codegen.descriptor.ModelGeneratorDescriptor; +import org.eclipse.stem.model.metamodel.Model; +import org.eclipse.stem.model.metamodel.Package; +import org.eclipse.stem.model.metamodel.Transition; +import org.eclipse.stem.model.xtext.ExpressionMethodDefinition; +import org.eclipse.stem.model.xtext.ExpressionMethodGenerator; /** * Wrapper for GenClass. Provides STEM-specific methods for STEM's Model @@ -111,6 +118,28 @@ public class STEMGenClass { } return features; } + + public List<STEMGenFeature> getAllCompartmentFeatures() { + List<STEMGenFeature> features = new ArrayList<STEMGenFeature>(); + if (isIntegrationLabelValue()) { + if (genClass.getBaseGenClass() != null) { + features.addAll(STEMGenClass.get(genClass.getBaseGenClass()).getAllCompartmentFeatures()); + } + features.addAll(getSTEMGenFeatures()); + } + return features; + } + + public STEMGenFeature getSTEMGenFeatureForName(String name) + { + for (GenFeature genFeature : genClass.getDeclaredGenFeatures()) { + if (genFeature.getName().equals(name)) { + return STEMGenFeature.get(genFeature, genClass); + } + } + return null; + } + public List<String> getPrimitiveAccessorTypes() { return STEMGenFeature.getPrimitiveAccessorTypes(); @@ -395,4 +424,55 @@ public class STEMGenClass { { return GeneratorUtils.formatToCapWords(genClass.getName()); } + + public Model getMetamodelModel(Package metamodel) + { + if (isComputationalModel()) { + return GeneratorUtils.getMetamodelModelForGenClass(genClass, metamodel); + } + return null; + } + + public List<ExpressionMethodDefinition> getGeneratedExpressionMethods() + { + Package metamodel = getSTEMGenPackage().getMetamodel(); + ExpressionMethodGenerator gen = new ExpressionMethodGenerator(genClass); + List<ExpressionMethodDefinition> expressions = new ArrayList<ExpressionMethodDefinition>(); + + + Model model = getMetamodelModel(metamodel); + if (model != null) { + for (Transition t : model.getTransitions()) { + ExpressionMethodDefinition expression = gen.generateExpressionMethod(t); + if (expression != null) { + expressions.add(expression); + } + } + } + + return expressions; + } + + public Set<String> getGeneratorAffectedCompartments(List<ExpressionMethodDefinition> transitionExpressions) + { +// +// Map<String,GenClass> labelValues = getLabelValueGenClasses(); +// if (labelValues.size() < 1) { +// return compartments; +// } +// +// STEMGenClass labelValue = STEMGenClass.get(labelValues.values().iterator().next()); +// for (STEMGenFeature feature : labelValue.getAllCompartmentFeatures()) { +// System.out.println(feature.getGenFeature().getName()); +// } +// + Set<String> compartments = new HashSet<String>(); + for (ExpressionMethodDefinition expr : transitionExpressions) { + compartments.add(GeneratorUtils.formatToUpperCaseWordsNoSpaces( + expr.getTransition().getSource().getName())); + compartments.add(GeneratorUtils.formatToUpperCaseWordsNoSpaces( + expr.getTransition().getTarget().getName())); + } + return compartments; + } } diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/STEMGenModel.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/STEMGenModel.java index e44c1d055..61cec63df 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/STEMGenModel.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/STEMGenModel.java @@ -10,10 +10,15 @@ *******************************************************************************/ package org.eclipse.stem.model.codegen; -import java.util.List; +import java.io.IOException; +import java.util.HashSet; +import java.util.Set; import org.eclipse.emf.codegen.ecore.genmodel.GenModel; import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EAnnotation; +import org.eclipse.emf.ecore.EPackage; /** * Wrapper for GenModel. Provides STEM-specific methods for STEM's Model @@ -31,8 +36,8 @@ public class STEMGenModel { return new STEMGenModel(model); } - public List<String> getEditorRequiredPlugins() { - List<String> retVal = genModel.getEditorRequiredPlugins(); + public Set<String> getEditorRequiredPlugins() { + Set<String> retVal = new HashSet<String>(genModel.getEditorRequiredPlugins()); for (GenPackage genPackage : genModel.getUsedGenPackages()) { GenModel genModel = genPackage.getGenModel(); @@ -40,8 +45,34 @@ public class STEMGenModel { retVal.add(genModel.getEditorPluginID()); } } + + + for (GenPackage pkg : genModel.getGenPackages()) { + retVal.addAll(STEMGenPackage.get(pkg).getContributingPlugins()); + } + return retVal; } + + public org.eclipse.stem.model.metamodel.Package getMetamodel() + { + // get metamodel + + EPackage ePackage = genModel.getEcoreGenPackage().getEcorePackage(); + + EAnnotation annotation = ePackage.getEAnnotation(CodeGenConstants.METAMODEL_URI_ANNOTATION_SOURCE); + + if (annotation != null) { + String uri = annotation.getDetails().get("uri"); + try { + return GeneratorUtils.loadMetamodel(URI.createURI(uri)); + } catch (IOException ioe) { + ioe.printStackTrace(); + } + } + + return null; + } } diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/STEMGenPackage.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/STEMGenPackage.java index 927fde5b6..09d7c2d08 100644 --- a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/STEMGenPackage.java +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/codegen/STEMGenPackage.java @@ -10,12 +10,18 @@ *******************************************************************************/ package org.eclipse.stem.model.codegen; +import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Set; import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EAnnotation; +import org.eclipse.emf.ecore.EPackage; import org.eclipse.stem.model.codegen.descriptor.ModelGeneratorDescriptor; +import org.eclipse.stem.model.xtext.XtextUtils; /** * Wrapper for GenPackage. Provides STEM-specific methods for STEM's Model @@ -201,6 +207,31 @@ public class STEMGenPackage { } return types; } + + public org.eclipse.stem.model.metamodel.Package getMetamodel() + { + // get metamodel + + EPackage ePackage = pkg.getEcorePackage(); + + EAnnotation annotation = ePackage.getEAnnotation(CodeGenConstants.METAMODEL_URI_ANNOTATION_SOURCE); + + if (annotation != null) { + String uri = annotation.getDetails().get("uri"); + try { + return GeneratorUtils.loadMetamodel(URI.createURI(uri)); + } catch (IOException ioe) { + ioe.printStackTrace(); + } + } + + return null; + } + + public Set<String> getContributingPlugins() + { + return XtextUtils.getContributingPluginsForMetamodel(getMetamodel()); + } // public List<STEMGenClass> getClassesThatExtendByQualifiedName(String // className) diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/xtext/ExpressionMethodDefinition.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/xtext/ExpressionMethodDefinition.java new file mode 100644 index 000000000..cbe5e9d69 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/xtext/ExpressionMethodDefinition.java @@ -0,0 +1,43 @@ +package org.eclipse.stem.model.xtext; + +import org.eclipse.stem.model.codegen.GeneratorUtils; +import org.eclipse.stem.model.metamodel.Transition; + +public class ExpressionMethodDefinition +{ + private final Transition transition; + private final String methodBody; + + public ExpressionMethodDefinition(Transition transition, String methodBody) + { + this.transition = transition; + this.methodBody = methodBody; + } + + public Transition getTransition() + { + return transition; + } + + public String getMethodBody() + { + return methodBody; + } + + public String getMethodName() + { + return transition.getSource().getName() + "_" + transition.getTarget().getName(); + } + + public String getSourceAccessorName() + { + return GeneratorUtils.formatToUpperCaseWordsNoSpaces(transition.getSource().getName()); + } + + public String getTargetAccessorName() + { + return GeneratorUtils.formatToUpperCaseWordsNoSpaces(transition.getTarget().getName()); + } + + +} diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/xtext/ExpressionMethodGenerator.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/xtext/ExpressionMethodGenerator.java new file mode 100644 index 000000000..96838d156 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/xtext/ExpressionMethodGenerator.java @@ -0,0 +1,60 @@ +package org.eclipse.stem.model.xtext; + +import org.eclipse.emf.codegen.ecore.genmodel.GenClass; +import org.eclipse.stem.model.ctdl.generator.CTDLGenerator; +import org.eclipse.stem.model.metamodel.Transition; +import org.eclipse.xtext.generator.IGenerator; +import org.eclipse.xtext.generator.InMemoryFileSystemAccess; +import org.eclipse.xtext.resource.XtextResource; + +import com.google.inject.Guice; +import com.google.inject.Injector; + +public class ExpressionMethodGenerator +{ + private Injector injector; + + private IGenerator generator; + + private GenClass genClass; + + public ExpressionMethodGenerator(GenClass genClass) + { + this.genClass = genClass; + init(); + } + + private void init() + { + injector = Guice.createInjector(new org.eclipse.stem.model.ctdl.CTDLRuntimeModule()); + generator = injector.getInstance(IGenerator.class); + } + + private CTDLGenerator getExpressionMethodGenerator() + { + return (CTDLGenerator)generator; + } + + public ExpressionMethodDefinition generateExpressionMethod(Transition transition) + { + XtextResource r = XtextUtils.loadAndResolveXtextResourceForTransition(transition); + InMemoryFileSystemAccess fsa = new InMemoryFileSystemAccess(); + + CTDLGenerator gen = getExpressionMethodGenerator(); + gen.setGenModel(genClass.getGenModel()); + + try { + gen.doGenerate(r, fsa); + } catch (Throwable t0) { + t0.printStackTrace(); + } + + ExpressionMethodDefinition definition = null; + if (fsa.getFiles().size() > 0) { + String methodBody = fsa.getFiles().values().iterator().next().toString(); + definition = new ExpressionMethodDefinition(transition, methodBody); + } + + return definition; + } +} diff --git a/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/xtext/XtextUtils.java b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/xtext/XtextUtils.java new file mode 100644 index 000000000..94c135292 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.codegen/src/org/eclipse/stem/model/xtext/XtextUtils.java @@ -0,0 +1,111 @@ +package org.eclipse.stem.model.xtext; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.eclipse.emf.common.util.TreeIterator; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.stem.model.codegen.GeneratorUtils; +import org.eclipse.stem.model.ctdl.ContextSensitiveResourceWrapper; +import org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions; +import org.eclipse.stem.model.ctdl.ctdl.CtdlFactory; +import org.eclipse.stem.model.ctdl.ctdl.ExternalFunctionReference; +import org.eclipse.stem.model.ctdl.ctdl.FunctionCall; +import org.eclipse.stem.model.ctdl.ctdl.MetamodelResource; +import org.eclipse.stem.model.metamodel.Model; +import org.eclipse.stem.model.metamodel.Transition; +import org.eclipse.xtext.EcoreUtil2; +import org.eclipse.xtext.resource.XtextResource; +import org.eclipse.xtext.util.CancelIndicator; +import org.eclipse.xtext.util.StringInputStream; + +public class XtextUtils +{ + + public static Set<String> getContributingPluginsForMetamodel(org.eclipse.stem.model.metamodel.Package metamodel) + { + Set<String> plugins = new HashSet<String>(); + for (Model model : metamodel.getModels()) { + List<XtextResource> resources = getXtextResourcesForModel(model); + for (XtextResource resource : resources) { + plugins.addAll(getContributingPluginsForExpression(resource)); + } + } + return plugins; + } + + public static Set<String> getContributingPluginsForExpression(XtextResource resource) + { + Set<String> plugins = new HashSet<String>(); + TreeIterator<EObject> iter = resource.getAllContents(); + while (iter.hasNext()) { + EObject obj = iter.next(); + if (obj instanceof FunctionCall && ((FunctionCall) obj).getRef() instanceof ExternalFunctionReference) { + ExternalFunctionReference ref = (ExternalFunctionReference)((FunctionCall) obj).getRef(); + if (ref.getFunc() != null) { + plugins.add(ref.getFunc().getContributingPlugin()); + } + } + } + + return plugins; + } + + public static List<XtextResource> getXtextResourcesForModel(Model model) + { + List<XtextResource> resources = new ArrayList<XtextResource>(model.getTransitions().size()); + for (Transition transition : model.getTransitions()) { + XtextResource resource = loadAndResolveXtextResourceForTransition(transition); + if (resource != null) { + resources.add(resource); + } + } + return resources; + } + + public static XtextResource loadAndResolveXtextResourceForTransition(Transition transition) + { + ResourceSet resourceSet = new ResourceSetImpl(); + XtextResource resource = (XtextResource) resourceSet.createResource(URI.createURI("empty.sctd")); + InputStream is = new StringInputStream(transition.getExpression()); + + try { + resource.load(is, Collections.emptyMap()); + } catch (IOException e) { + e.printStackTrace(); + } finally { + GeneratorUtils.safeClose(is); + } + + if (resource instanceof ContextSensitiveResourceWrapper) { + ((ContextSensitiveResourceWrapper) resource).setTransition(transition); + } + + EcoreUtil2.resolveLazyCrossReferences(resource, new CancelIndicator() { + + @Override + public boolean isCanceled() { + // TODO Auto-generated method stub + return false; + } + }); + + if (resource.getContents().size() > 0 && + resource.getContents().get(0) instanceof CompartmentTransitionDefinitions) { + CompartmentTransitionDefinitions ctd = (CompartmentTransitionDefinitions)resource.getContents().get(0); + MetamodelResource mmrs = CtdlFactory.eINSTANCE.createMetamodelResource(); + mmrs.setTransition(transition); + mmrs.setModel(transition.getContainerModel()); + ctd.setMetamodel(mmrs); + } + return resource; + } +} diff --git a/modelgen/org.eclipse.stem.model.codegen/templates/editor/manifest.mfjet b/modelgen/org.eclipse.stem.model.codegen/templates/editor/manifest.mfjet index 1c90f52be..6eac8e132 100644 --- a/modelgen/org.eclipse.stem.model.codegen/templates/editor/manifest.mfjet +++ b/modelgen/org.eclipse.stem.model.codegen/templates/editor/manifest.mfjet @@ -21,7 +21,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: <%=genModel.getEditorPluginID()%>;singleton:=true Bundle-Version: 1.0.0.qualifier -Bundle-ClassPath: <%if (genModel.isRuntimeJar()) {%><%=genModel.getEditorPluginID()%>.jar<%}else{%>.<%}%> +Bundle-ClassPath: <%if (genModel.isRuntimeJar()) {%><%=genModel.getEditorPluginID()%>.jar<%}else{%>.,bin/<%}%> <%if (genModel.getRuntimePlatform() != GenRuntimePlatform.GWT) {%> Bundle-Activator: <%=genModel.getQualifiedEditorPluginClassName()%>$Implementation <%}%> diff --git a/modelgen/org.eclipse.stem.model.codegen/templates/model/Class.javajet b/modelgen/org.eclipse.stem.model.codegen/templates/model/Class.javajet index 882657572..0e4162896 100644 --- a/modelgen/org.eclipse.stem.model.codegen/templates/model/Class.javajet +++ b/modelgen/org.eclipse.stem.model.codegen/templates/model/Class.javajet @@ -2376,12 +2376,15 @@ if (index != -1) { head = typeName.substring(0, index); tail = typeName.substrin <% String defaultLabelImportedName = genModel.getImportedName(stemGenClass.getDefaultModelLabelType()); %> <% String defaultLabelValueImportedName = genModel.getImportedName(stemGenClass.getDefaultModelLabelValueType()); %> + +<% List<org.eclipse.stem.model.xtext.ExpressionMethodDefinition> generatedExpressionMethods = stemGenClass.getGeneratedExpressionMethods(); %> +<% Set<String> affectedCompartments = stemGenClass.getGeneratorAffectedCompartments(generatedExpressionMethods); %> + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - @SuppressWarnings("unused") @Override public void calculateDeltas(<%=stemTimeImportName%> time, double t, long timeDelta, <%=elistImportName%><<%=dynamicLabelImportName%>> labels) { @@ -2401,6 +2404,19 @@ if (index != -1) { head = typeName.substring(0, index); tail = typeName.substrin // Add code here to compute and set the delta (in deltaValue) from the current state (in currentDiseaseState) // ... + <% for (String compartment : affectedCompartments) { %> + double delta<%=compartment%> = 0.0; + <% } %> + + <% for (org.eclipse.stem.model.xtext.ExpressionMethodDefinition block : generatedExpressionMethods) { %> + double generated_<%= block.getMethodName() %> = <%= block.getMethodName() %>(t,timeDelta,time,currentDiseaseState,diseaseLabel.getNode()); + delta<%=block.getSourceAccessorName()%> -= generated_<%= block.getMethodName() %>; + delta<%=block.getTargetAccessorName()%> += generated_<%= block.getMethodName() %>; + + <%}%> + <% for (String compartment : affectedCompartments) { %> + deltaValue.set<%=compartment%>(delta<%=compartment%>); + <% } %> // If you need to take into account any interventions currently in place for the region, use this // code snippet as a sample: @@ -2413,11 +2429,24 @@ if (index != -1) { head = typeName.substring(0, index); tail = typeName.substrin // DO NOT REMOVE THIS LINE. It's critical to ensure disease deaths are being reported to // other models that depend on it. + deltaValue.scale(((double) timeDelta / (double) getTimePeriod())); computeAdditionalDeltasAndExchanges(diseaseLabel, time, t, timeDelta); } } // calculateDeltas + + // Generated expression methods + + <% for (org.eclipse.stem.model.xtext.ExpressionMethodDefinition block : generatedExpressionMethods) { %> + /** + * Method body for <%=block.getTransition().getSource().getName()%> -> <%=block.getTransition().getTarget().getName()%> + * @generated + */ + <%= block.getMethodBody() %> + + <%}%> + <%}%> <%// Set up disease-model specific code%> <%if ("DiseaseModel".equals(stemGenClass.getComputationalModelType())){%> diff --git a/modelgen/org.eclipse.stem.model.common/.classpath b/modelgen/org.eclipse.stem.model.common/.classpath new file mode 100644 index 000000000..ad32c83a7 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.common/.classpath @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/modelgen/org.eclipse.stem.model.common/.project b/modelgen/org.eclipse.stem.model.common/.project new file mode 100644 index 000000000..c701d8da9 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.common/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.stem.model.common</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff --git a/modelgen/org.eclipse.stem.model.common/.settings/org.eclipse.jdt.core.prefs b/modelgen/org.eclipse.stem.model.common/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..c537b6306 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.common/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/modelgen/org.eclipse.stem.model.common/META-INF/MANIFEST.MF b/modelgen/org.eclipse.stem.model.common/META-INF/MANIFEST.MF new file mode 100644 index 000000000..4d94eb855 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.common/META-INF/MANIFEST.MF @@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: STEM Model Generator Common +Bundle-SymbolicName: org.eclipse.stem.model.common;singleton:=true +Bundle-Version: 2.0.0.qualifier +Bundle-Activator: org.eclipse.stem.model.common.Activator +Bundle-Vendor: Eclipse.org +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.core.resources, + org.eclipse.ui +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-ActivationPolicy: lazy +Export-Package: org.eclipse.stem.model.common diff --git a/modelgen/org.eclipse.stem.model.common/build.properties b/modelgen/org.eclipse.stem.model.common/build.properties new file mode 100644 index 000000000..e9863e281 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.common/build.properties @@ -0,0 +1,5 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.xml diff --git a/modelgen/org.eclipse.stem.model.common/plugin.xml b/modelgen/org.eclipse.stem.model.common/plugin.xml new file mode 100644 index 000000000..d97117ab1 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.common/plugin.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.0"?> +<!-- +/******************************************************************************* + * Copyright (c) 2012 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +--> +<plugin> + + <extension + point="org.eclipse.ui.startup"> + <startup + class="org.eclipse.stem.model.common.Starter"> + </startup> + </extension> + + <extension + id="ModelProjectNature" + name="STEM Computational Model Project Nature" + point="org.eclipse.core.resources.natures"> + <runtime> + <run class="org.eclipse.stem.model.common.ModelProjectNature"/> + </runtime> + </extension> + +</plugin> diff --git a/modelgen/org.eclipse.stem.model.common/src/org/eclipse/stem/model/common/Activator.java b/modelgen/org.eclipse.stem.model.common/src/org/eclipse/stem/model/common/Activator.java new file mode 100644 index 000000000..f4960d503 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.common/src/org/eclipse/stem/model/common/Activator.java @@ -0,0 +1,54 @@ +package org.eclipse.stem.model.common; + +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Plugin; +import org.osgi.framework.BundleContext; + +public class Activator extends Plugin { + + private static BundleContext context; + + private static Activator plugin; + + static BundleContext getContext() { + return context; + } + + static Activator getPlugin() + { + return plugin; + } + + /** + * Logs a status message to the plug-in's logger + * @param status status message to log + */ + public static void log(IStatus status) + { + getPlugin().getLog().log(status); + } + + /* + * (non-Javadoc) + * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext bundleContext) throws Exception { + Activator.plugin = this; + Activator.context = bundleContext; + + ModelProjectBundleLoadHandler.getInstance().start(context); + } + + /* + * (non-Javadoc) + * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext bundleContext) throws Exception { + + ModelProjectBundleLoadHandler.getInstance().stop(); + + Activator.context = null; + Activator.plugin = null; + } + +} diff --git a/modelgen/org.eclipse.stem.model.common/src/org/eclipse/stem/model/common/ModelProjectBundleLoadHandler.java b/modelgen/org.eclipse.stem.model.common/src/org/eclipse/stem/model/common/ModelProjectBundleLoadHandler.java new file mode 100644 index 000000000..69c0d5107 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.common/src/org/eclipse/stem/model/common/ModelProjectBundleLoadHandler.java @@ -0,0 +1,280 @@ +package org.eclipse.stem.model.common; + + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +import org.eclipse.core.resources.IMarker; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IResourceChangeEvent; +import org.eclipse.core.resources.IResourceChangeListener; +import org.eclipse.core.resources.IResourceDelta; +import org.eclipse.core.resources.IResourceDeltaVisitor; +import org.eclipse.core.resources.IWorkspace; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.IJobChangeEvent; +import org.eclipse.core.runtime.jobs.IJobChangeListener; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.core.runtime.jobs.JobChangeAdapter; +import org.osgi.framework.Bundle; +import org.osgi.framework.BundleContext; +import org.osgi.framework.BundleException; + + +/** + * <p>Handles the automatic install/uninstall of workspace-based + * plug-in projects into the running OSGi container for use with the + * model generation tools.</p> + */ +final class ModelProjectBundleLoadHandler { + + private static final ModelProjectBundleLoadHandler INSTANCE = + new ModelProjectBundleLoadHandler(); + + private final List<IProject> changedProjects = + Collections.synchronizedList(new ArrayList<IProject>()); + + private final List<IProject> managedBundleProjects = new CopyOnWriteArrayList<IProject>(); + + private BundleContext bundleContext; + + private ModelProjectBundleLoadHandler() { + } + + static ModelProjectBundleLoadHandler getInstance() { + return INSTANCE; + } + + void start(BundleContext ctx) { + this.bundleContext = ctx; + ResourcesPlugin.getWorkspace().addResourceChangeListener( + resourceListener, + IResourceChangeEvent.PRE_CLOSE + | IResourceChangeEvent.PRE_DELETE + | IResourceChangeEvent.POST_CHANGE + | IResourceChangeEvent.POST_BUILD + | IResourceChangeEvent.PRE_BUILD); + Job.getJobManager().addJobChangeListener(jobListener); + loadProjects(); + } + + void stop() { + Job.getJobManager().removeJobChangeListener(jobListener); + ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceListener); + shutdownProjects(); + this.bundleContext = null; + } + + private void shutdownProjects() + { + for (IProject project : managedBundleProjects) { + if (ModelProjectUtils.isValidProject(project)) { + handleStopProject(project); + } + } + } + + private void loadProjects() { + IWorkspace ws = ResourcesPlugin.getWorkspace(); + for (IProject project : ws.getRoot().getProjects()) { + if (ModelProjectUtils.isValidProject(project)) { + handleUpdatedProject(project); + } + } + } + + + + private void installAndStartProjectBundle(IProject project) + { + if (!ModelProjectUtils.isValidProject(project)) { + return; + } + // TODO This needs to differentiate between bundles installed + // into the container when launched and those being installed and/or updated + // by this utility into the running container + Bundle bundle = getBundleForProject(project); + if (bundle != null) { + // Bundle already exists, determine what we should do instead. + // For now, we'll just update + updateBundle(bundle); + } else { + System.out.println("Installing bundle for " + project.getFullPath().toString()); + Bundle newBundle = null; + try { + newBundle = bundleContext.installBundle(project.getLocationURI().toString()); + newBundle.start(); + } catch (BundleException be) { + if (newBundle != null) { + stopAndUninstallBundle(newBundle); + } + + Activator.log(new Status(Status.ERROR, + project.getName(), + "Error installing project bundle into OSGi container", be)); + } + System.out.println(" ... bundle installed " + + project.getFullPath().toString()); + managedBundleProjects.add(project); + } + } + + + private void updateBundle(Bundle bundle) + { + try { + System.out.println("Updating bundle for " + + bundle.getLocation()); + bundle.update(); + System.out.println(" ... bundle updated for " + + bundle.getLocation()); + } catch (BundleException be) { + Activator.log(new Status(Status.ERROR, + bundle.getSymbolicName(), + "Error updating the installed bundle.", be)); + } + } + + private void stopAndUninstallBundle(final Bundle bundle) + { + try { + bundle.stop(); + } catch (BundleException e) { + e.printStackTrace(); + } + + try { + bundle.uninstall(); + } catch (BundleException e) { + e.printStackTrace(); + } + } + + private void handleUpdatedProject(IProject project) { + if (!ModelProjectUtils.isValidProject(project)) { + return; + } + + try { + int severity = project.findMaxProblemSeverity(IMarker.PROBLEM, + true, IResource.DEPTH_INFINITE); + if (severity >= IMarker.SEVERITY_ERROR) { + // Error building project. Should not take action to + // install or update when this occurs + Activator.log( + new Status(Status.WARNING, project.getName(), + "Error building project, cannot install", null)); + } else { + installAndStartProjectBundle(project); + } + } catch (CoreException ce) { + ce.printStackTrace(); + } + + } + + private void handleStopProject(IProject project) { + if (!ModelProjectUtils.isValidProject(project)) { + return; + } + + // TODO This needs to differentiate between bundles installed + // into the container when launched and those being installed and/or updated + // by this utility into the running container + Bundle bundle = getBundleForProject(project); + if (bundle != null) { + managedBundleProjects.remove(project); + System.out.println("Uninstalling bundle for " + + project.getFullPath().toString()); + stopAndUninstallBundle(bundle); + System.out.println(" ... bundle uninstalled for " + + project.getFullPath().toString()); + } + } + + private Bundle getBundleForProject(IProject project) + { + Bundle b = Platform.getBundle(project.getName()); + if (b != null) { + System.out.println("Bundle location:"+ b.getLocation()); + System.out.println("Project location:"+ project.getLocation().toString()); + return b; + } + return null; + } + + private final IResourceChangeListener resourceListener = new IResourceChangeListener() { + + @Override + public void resourceChanged(final IResourceChangeEvent event) { + + if ((event.getType() == IResourceChangeEvent.PRE_CLOSE + || event.getType() == IResourceChangeEvent.PRE_DELETE) + && event.getResource() instanceof IProject) { + + + handleStopProject((IProject) event.getResource()); + } else if (event.getType() == IResourceChangeEvent.POST_CHANGE) { + try { + if (event.getDelta() != null) { + event.getDelta().accept(new IResourceDeltaVisitor() { + + @Override + public boolean visit(IResourceDelta delta) + throws CoreException { + if (delta.getResource() instanceof IProject) { + IProject proj = (IProject) delta + .getResource(); + synchronized (changedProjects) { + if (!changedProjects.contains(proj)) { + changedProjects.add(proj); + } + } + return false; + } + + return true; + } + }); + } + } catch (CoreException ce) { + ce.printStackTrace(); + } + } + + } + + }; + + private final IJobChangeListener jobListener = new JobChangeAdapter() { + + @Override + public void done(IJobChangeEvent event) { + Job job = event.getJob(); + if (job.belongsTo(ResourcesPlugin.FAMILY_AUTO_BUILD) + || job.belongsTo(ResourcesPlugin.FAMILY_MANUAL_BUILD)) { + System.out.println("build completed..."); + synchronized (changedProjects) { + for (IProject project : changedProjects) { + handleUpdatedProject(project); + } + changedProjects.clear(); + } + } + } + + }; + + + + + + + +} diff --git a/modelgen/org.eclipse.stem.model.common/src/org/eclipse/stem/model/common/ModelProjectNature.java b/modelgen/org.eclipse.stem.model.common/src/org/eclipse/stem/model/common/ModelProjectNature.java new file mode 100644 index 000000000..5334b9283 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.common/src/org/eclipse/stem/model/common/ModelProjectNature.java @@ -0,0 +1,46 @@ +package org.eclipse.stem.model.common; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IProjectNature; +import org.eclipse.core.runtime.CoreException; + +public class ModelProjectNature implements IProjectNature +{ + public static final String ID = "org.eclipse.stem.model.common.ModelProjectNature"; + + private IProject project; + + @Override + public void configure() throws CoreException { + } + + @Override + public void deconfigure() throws CoreException { + } + + @Override + public IProject getProject() { + return project; + } + + @Override + public void setProject(IProject project) { + this.project = project; + } + + public static void addNature(final IProject project) throws CoreException + { + ModelProjectUtils.addProjectNature(project, ID); + } + + public static void removeNature(final IProject project) throws CoreException + { + ModelProjectUtils.removeProjectNature(project, ID); + } + + public static boolean hasNature(final IProject project) throws CoreException + { + return project.hasNature(ID); + } + +} diff --git a/modelgen/org.eclipse.stem.model.common/src/org/eclipse/stem/model/common/ModelProjectUtils.java b/modelgen/org.eclipse.stem.model.common/src/org/eclipse/stem/model/common/ModelProjectUtils.java new file mode 100644 index 000000000..ff4d0c30a --- /dev/null +++ b/modelgen/org.eclipse.stem.model.common/src/org/eclipse/stem/model/common/ModelProjectUtils.java @@ -0,0 +1,54 @@ +package org.eclipse.stem.model.common; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IProjectDescription; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.NullProgressMonitor; + +public class ModelProjectUtils +{ + private ModelProjectUtils() {} + + public static boolean isValidProject(final IProject project) + { + try { + return project.exists() && project.isOpen() + && project.hasNature("org.eclipse.pde.PluginNature") + && project.hasNature(ModelProjectNature.ID); + } catch (CoreException ce) { + // Ignore exception, does not matter for this context + } + return false; + } + + + public static void removeProjectNature(final IProject project, final String natureId) throws CoreException + { + if (project.exists() && project.hasNature(natureId)) { + IProjectDescription description = project.getDescription(); + + List<String> natures = new ArrayList<String>(); + natures.addAll(Arrays.asList(description.getNatureIds())); + natures.remove(natureId); + description.setNatureIds(natures.toArray(new String[natures.size()])); + project.setDescription(description, new NullProgressMonitor()); + } + } + + public static void addProjectNature(final IProject project, final String natureId) throws CoreException + { + if (project.exists() && !project.hasNature(natureId)) { + IProjectDescription description = project.getDescription(); + + List<String> natures = new ArrayList<String>(); + natures.addAll(Arrays.asList(description.getNatureIds())); + natures.add(natureId); + description.setNatureIds(natures.toArray(new String[natures.size()])); + project.setDescription(description, new NullProgressMonitor()); + } + } +} diff --git a/modelgen/org.eclipse.stem.model.common/src/org/eclipse/stem/model/common/Starter.java b/modelgen/org.eclipse.stem.model.common/src/org/eclipse/stem/model/common/Starter.java new file mode 100644 index 000000000..0239be53d --- /dev/null +++ b/modelgen/org.eclipse.stem.model.common/src/org/eclipse/stem/model/common/Starter.java @@ -0,0 +1,11 @@ +package org.eclipse.stem.model.common; + +import org.eclipse.ui.IStartup; + +public class Starter implements IStartup { + + @Override + public void earlyStartup() { + } + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/.classpath b/modelgen/org.eclipse.stem.model.ctdl.functions/.classpath new file mode 100644 index 000000000..ad32c83a7 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/.classpath @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/.project b/modelgen/org.eclipse.stem.model.ctdl.functions/.project new file mode 100644 index 000000000..41bd23e47 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/.project @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.stem.model.ctdl.functions</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + </natures> +</projectDescription> diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/.settings/org.eclipse.jdt.core.prefs b/modelgen/org.eclipse.stem.model.ctdl.functions/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..c537b6306 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/META-INF/MANIFEST.MF b/modelgen/org.eclipse.stem.model.ctdl.functions/META-INF/MANIFEST.MF new file mode 100644 index 000000000..d0bb3b35e --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/META-INF/MANIFEST.MF @@ -0,0 +1,14 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: STEM External Function Definition +Bundle-SymbolicName: org.eclipse.stem.model.ctdl.functions;singleton:=true +Bundle-Version: 2.0.0.qualifier +Bundle-Activator: org.eclipse.stem.model.ctdl.functions.Activator +Bundle-Vendor: Eclipse.org +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.emf.ecore, + org.eclipse.stem.core +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-ActivationPolicy: lazy +Export-Package: org.eclipse.stem.model.ctdl.functions, + org.eclipse.stem.model.ctdl.functions.util diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/build.properties b/modelgen/org.eclipse.stem.model.ctdl.functions/build.properties new file mode 100644 index 000000000..bc38bc0f0 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/build.properties @@ -0,0 +1,6 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.xml,\ + model/ diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/model/ExternalFunctions.ecore b/modelgen/org.eclipse.stem.model.ctdl.functions/model/ExternalFunctions.ecore new file mode 100644 index 000000000..9c655713b --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/model/ExternalFunctions.ecore @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="functions" nsURI="http:///org/eclipse/stem/model/ctdl/functions.ecore" + nsPrefix="org.eclipse.stem.model.ctdl.functions"> + <eClassifiers xsi:type="ecore:EClass" name="ExternalFunctionDefinition"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="class"> + <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"> + <eTypeArguments/> + </eGenericType> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="method" eType="#//Method" + transient="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="returnType" changeable="false" + volatile="true" transient="true" derived="true"> + <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"> + <eTypeArguments/> + </eGenericType> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="signature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + defaultValueLiteral=""/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="methodName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="contributingPlugin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="extPointDefinition" eType="#//IConfigurationElement" + transient="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="functionArguments" upperBound="-1" + eType="#//FunctionArgument" transient="true" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="javaMethodArguments" upperBound="-1" + eType="#//JavaMethodArgument" transient="true" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="FunctionArgument"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + transient="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + transient="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="JavaMethodArgument"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="mapsFrom" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + transient="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + transient="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="IConfigurationElement" instanceClassName="org.eclipse.core.runtime.IConfigurationElement" + serializable="false"/> + <eClassifiers xsi:type="ecore:EDataType" name="Method" instanceClassName="java.lang.reflect.Method" + serializable="false"/> + <eClassifiers xsi:type="ecore:EClass" name="SystemArgumentReference" eSuperTypes="#//JavaMethodArgument"> + <eStructuralFeatures xsi:type="ecore:EReference" name="ref" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="FunctionArgumentReference" eSuperTypes="#//JavaMethodArgument"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="argIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="ref" eType="#//FunctionArgument"/> + </eClassifiers> +</ecore:EPackage> diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/model/ExternalFunctions.genmodel b/modelgen/org.eclipse.stem.model.ctdl.functions/model/ExternalFunctions.genmodel new file mode 100644 index 000000000..ea74057ce --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/model/ExternalFunctions.genmodel @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" + xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.stem.model.ctdl.functions/src" editDirectory="/org.eclipse.stem.model.ctdl.functions/src" + editorDirectory="/org.eclipse.stem.model.ctdl.functions.ui/src" modelPluginID="org.eclipse.stem.model.ctdl.functions" + modelName="ExternalFunctions" importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0" + copyrightFields="false" editorPluginID="org.eclipse.stem.model.ctdl.functions.ui" + runtimeVersion="2.7"> + <foreignModel>ExternalFunctions.ecore</foreignModel> + <genPackages prefix="ExternalFunctions" basePackage="org.eclipse.stem.model.ctdl" + disposableProviderFactory="true" fileExtensions="extFunc" ecorePackage="ExternalFunctions.ecore#/"> + <genDataTypes ecoreDataType="ExternalFunctions.ecore#//IConfigurationElement"/> + <genDataTypes ecoreDataType="ExternalFunctions.ecore#//Method"/> + <genClasses ecoreClass="ExternalFunctions.ecore#//ExternalFunctionDefinition"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExternalFunctions.ecore#//ExternalFunctionDefinition/name"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExternalFunctions.ecore#//ExternalFunctionDefinition/class"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExternalFunctions.ecore#//ExternalFunctionDefinition/method"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExternalFunctions.ecore#//ExternalFunctionDefinition/returnType"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute ExternalFunctions.ecore#//ExternalFunctionDefinition/signature"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExternalFunctions.ecore#//ExternalFunctionDefinition/className"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExternalFunctions.ecore#//ExternalFunctionDefinition/methodName"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute ExternalFunctions.ecore#//ExternalFunctionDefinition/contributingPlugin"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExternalFunctions.ecore#//ExternalFunctionDefinition/extPointDefinition"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ExternalFunctions.ecore#//ExternalFunctionDefinition/functionArguments"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ExternalFunctions.ecore#//ExternalFunctionDefinition/javaMethodArguments"/> + </genClasses> + <genClasses ecoreClass="ExternalFunctions.ecore#//FunctionArgument"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExternalFunctions.ecore#//FunctionArgument/name"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExternalFunctions.ecore#//FunctionArgument/type"/> + </genClasses> + <genClasses ecoreClass="ExternalFunctions.ecore#//JavaMethodArgument"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExternalFunctions.ecore#//JavaMethodArgument/mapsFrom"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExternalFunctions.ecore#//JavaMethodArgument/type"/> + </genClasses> + <genClasses ecoreClass="ExternalFunctions.ecore#//SystemArgumentReference"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ExternalFunctions.ecore#//SystemArgumentReference/ref"/> + </genClasses> + <genClasses ecoreClass="ExternalFunctions.ecore#//FunctionArgumentReference"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExternalFunctions.ecore#//FunctionArgumentReference/argIndex"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ExternalFunctions.ecore#//FunctionArgumentReference/ref"/> + </genClasses> + </genPackages> +</genmodel:GenModel> diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/plugin.properties b/modelgen/org.eclipse.stem.model.ctdl.functions/plugin.properties new file mode 100644 index 000000000..6caf32d1e --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/plugin.properties @@ -0,0 +1,4 @@ +# + +pluginName = ExternalFunctions Model +providerName = www.example.org diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/plugin.xml b/modelgen/org.eclipse.stem.model.ctdl.functions/plugin.xml new file mode 100644 index 000000000..828e70ecd --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/plugin.xml @@ -0,0 +1,703 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.4"?> +<plugin> + <extension point="org.eclipse.emf.ecore.generated_package"> + <package + uri="http:///org/eclipse/stem/model/ctdl/functions.ecore" + class="org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage" + genModel="model/ExternalFunctions.genmodel"/> + </extension> + + + <extension-point id="functions" name="STEM External Functions" schema="schema/functions.exsd"/> + + <extension + point="org.eclipse.stem.model.ctdl.functions.functions"> + + <function + name="test1" + className="org.eclipse.stem.model.ctdl.functions.TestFunctions" + methodName="test1Method"> + <functionParams/> + <generatedParams> + <generatedParam name="node" mapsFrom="node" /> + </generatedParams> + </function> + + <function + name="test2" + className="org.eclipse.stem.model.ctdl.functions.TestFunctions" + methodName="test2Method"> + <functionParams> + <functionParam name="x" type="double" /> + </functionParams> + <generatedParams> + <generatedParam name="x" mapsFrom="x" /> + <generatedParam name="node" mapsFrom="node" /> + </generatedParams> + </function> + + + + + <!-- + public static double test1Method(Node n) + public static double test2Method(double x, Node n) + public static double test3Method(double x, STEMTime time, Node n) + public static double test4Method(STEMTime time, Node n, double x) + --> + <function + name="test3" + className="org.eclipse.stem.model.ctdl.functions.TestFunctions" + methodName="test3Method"> + <functionParams> + <functionParam name="x" type="double" /> + </functionParams> + <generatedParams> + <generatedParam name="x" mapsFrom="x" /> + <generatedParam name="time" mapsFrom="time" /> + <generatedParam name="node" mapsFrom="node" /> + </generatedParams> + </function> + + <function + name="test4" + className="org.eclipse.stem.model.ctdl.functions.TestFunctions" + methodName="test4Method"> + <functionParams> + <functionParam name="x" type="double" /> + </functionParams> + <generatedParams> + <generatedParam name="time" mapsFrom="time" /> + <generatedParam name="node" mapsFrom="node" /> + <generatedParam name="x" mapsFrom="x" /> + </generatedParams> + </function> + + <function + name="test5" + className="org.eclipse.stem.model.ctdl.functions.TestFunctions" + methodName="test5Method"> + <functionParams> + <functionParam name="x" type="double" /> + <functionParam name="y" type="java.lang.String" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="x" /> + <generatedParam mapsFrom="y" /> + </generatedParams> + </function> + + <function + name="test6" + className="org.eclipse.stem.model.ctdl.functions.TestFunctions" + methodName="test6Method"> + <functionParams> + <functionParam name="x" type="double" /> + <functionParam name="y" type="java.lang.String" /> + <functionParam name="z" type="boolean" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="x" /> + <generatedParam mapsFrom="y" /> + <generatedParam mapsFrom="z" /> + </generatedParams> + </function> + + <function + name="test7" + className="org.eclipse.stem.model.ctdl.functions.TestFunctions" + methodName="test7Method"> + <functionParams> + <functionParam name="x" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="x" /> + </generatedParams> + </function> + + <function + name="one" + className="org.eclipse.stem.model.ctdl.functions.TestFunctions" + methodName="one"> + <functionParams/> + <generatedParams/> + </function> + + <function + name="add" + className="org.eclipse.stem.model.ctdl.functions.TestFunctions" + methodName="add"> + <functionParams> + <functionParam name="x" type="double" /> + <functionParam name="y" type="double" /> + </functionParams> + <generatedParams> + <generatedParam name="x" mapsFrom="x" /> + <generatedParam name="y" mapsFrom="y" /> + </generatedParams> + </function> + + <function + name="subtract" + className="org.eclipse.stem.model.ctdl.functions.TestFunctions" + methodName="subtract"> + <functionParams> + <functionParam name="x" type="double" /> + <functionParam name="y" type="double" /> + </functionParams> + <generatedParams> + <generatedParam name="x" mapsFrom="x" /> + <generatedParam name="y" mapsFrom="y" /> + </generatedParams> + </function> + + <function + name="multiply" + className="org.eclipse.stem.model.ctdl.functions.TestFunctions" + methodName="multiply"> + <functionParams> + <functionParam name="x" type="double" /> + <functionParam name="y" type="double" /> + </functionParams> + <generatedParams> + <generatedParam name="x" mapsFrom="x" /> + <generatedParam name="y" mapsFrom="y" /> + </generatedParams> + </function> + + <function + name="divide" + className="org.eclipse.stem.model.ctdl.functions.TestFunctions" + methodName="divide"> + <functionParams> + <functionParam name="x" type="double" /> + <functionParam name="y" type="double" /> + </functionParams> + <generatedParams> + <generatedParam name="x" mapsFrom="x" /> + <generatedParam name="y" mapsFrom="y" /> + </generatedParams> + </function> + + <!-- java.lang.Math.abs(double) --> + <function + name="abs" + className="java.lang.Math" + methodName="abs"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.acos(double) --> + <function + name="acos" + className="java.lang.Math" + methodName="acos"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.asin(double) --> + <function + name="asin" + className="java.lang.Math" + methodName="asin"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.atan(double) --> + <function + name="atan" + className="java.lang.Math" + methodName="atan"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.atan2(double,double) --> + <function + name="atan2" + className="java.lang.Math" + methodName="atan2"> + <functionParams> + <functionParam name="y" type="double" /> + <functionParam name="x" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="y" /> + <generatedParam mapsFrom="x" /> + </generatedParams> + </function> + + <!-- java.lang.Math.cbrt(double) --> + <function + name="cbrt" + className="java.lang.Math" + methodName="cbrt"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.ceil(double) --> + <function + name="ceil" + className="java.lang.Math" + methodName="ceil"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.copySign(double,double) --> + <function + name="copySign" + className="java.lang.Math" + methodName="copySign"> + <functionParams> + <functionParam name="magnitude" type="double" /> + <functionParam name="sign" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="magnitude" /> + <generatedParam mapsFrom="sign" /> + </generatedParams> + </function> + + <!-- java.lang.Math.cos(double) --> + <function + name="cos" + className="java.lang.Math" + methodName="cos"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.cosh(double) --> + <function + name="cosh" + className="java.lang.Math" + methodName="cosh"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.exp(double) --> + <function + name="exp" + className="java.lang.Math" + methodName="exp"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.expm1(double) --> + <function + name="expm1" + className="java.lang.Math" + methodName="expm1"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.floor(double) --> + <function + name="floor" + className="java.lang.Math" + methodName="floor"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.getExponent(double) --> + <function + name="getExponent" + className="java.lang.Math" + methodName="getExponent"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.hypot(double,double) --> + <function + name="hypot" + className="java.lang.Math" + methodName="hypot"> + <functionParams> + <functionParam name="x" type="double" /> + <functionParam name="y" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="x" /> + <generatedParam mapsFrom="y" /> + </generatedParams> + </function> + + <!-- java.lang.Math.log(double) --> + <function + name="log" + className="java.lang.Math" + methodName="log"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.log10(double) --> + <function + name="log10" + className="java.lang.Math" + methodName="log10"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.log1p(double) --> + <function + name="log1p" + className="java.lang.Math" + methodName="log1p"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.max(double,double) --> + <function + name="max" + className="java.lang.Math" + methodName="max"> + <functionParams> + <functionParam name="a" type="double" /> + <functionParam name="b" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + <generatedParam mapsFrom="b" /> + </generatedParams> + </function> + + <!-- java.lang.Math.min(double,double) --> + <function + name="min" + className="java.lang.Math" + methodName="min"> + <functionParams> + <functionParam name="a" type="double" /> + <functionParam name="b" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + <generatedParam mapsFrom="b" /> + </generatedParams> + </function> + + <!-- java.lang.Math.nextAfter(double,double) --> + <function + name="nextAfter" + className="java.lang.Math" + methodName="nextAfter"> + <functionParams> + <functionParam name="start" type="double" /> + <functionParam name="direction" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="start" /> + <generatedParam mapsFrom="direction" /> + </generatedParams> + </function> + + <!-- java.lang.Math.nextUp(double) --> + <function + name="nextUp" + className="java.lang.Math" + methodName="nextUp"> + <functionParams> + <functionParam name="d" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="d" /> + </generatedParams> + </function> + + <!-- java.lang.Math.pow(double,double) --> + <function + name="pow" + className="java.lang.Math" + methodName="pow"> + <functionParams> + <functionParam name="a" type="double" /> + <functionParam name="b" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + <generatedParam mapsFrom="b" /> + </generatedParams> + </function> + + <!-- java.lang.Math.random() --> + <function + name="random" + className="java.lang.Math" + methodName="random"> + <functionParams/> + <generatedParams/> + </function> + + <!-- java.lang.Math.rint(double) --> + <function + name="rint" + className="java.lang.Math" + methodName="rint"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.round(double) --> + <function + name="round" + className="java.lang.Math" + methodName="round"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.scalb(double,int) --> + <function + name="scalb" + className="java.lang.Math" + methodName="scalb"> + <functionParams> + <functionParam name="x" type="double" /> + <functionParam name="scaleFactor" type="int" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="x" /> + <generatedParam mapsFrom="scaleFactor" /> + </generatedParams> + </function> + + <!-- java.lang.Math.signum(double) --> + <function + name="signum" + className="java.lang.Math" + methodName="signum"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.sin(double) --> + <function + name="sin" + className="java.lang.Math" + methodName="sin"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.sinh(double) --> + <function + name="sinh" + className="java.lang.Math" + methodName="sinh"> + <functionParams> + <functionParam name="x" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="x" /> + </generatedParams> + </function> + + <!-- java.lang.Math.sqrt(double) --> + <function + name="sqrt" + className="java.lang.Math" + methodName="sqrt"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.tan(double) --> + <function + name="tan" + className="java.lang.Math" + methodName="tan"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + + <!-- java.lang.Math.tanh(double) --> + <function + name="tanh" + className="java.lang.Math" + methodName="tanh"> + <functionParams> + <functionParam name="x" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="x" /> + </generatedParams> + </function> + + <!-- java.lang.Math.degrees(double) --> + <function + name="degrees" + className="java.lang.Math" + methodName="toDegrees"> + <functionParams> + <functionParam name="radians" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="radians" /> + </generatedParams> + </function> + + <!-- java.lang.Math.radians(double) --> + <function + name="radians" + className="java.lang.Math" + methodName="toRadians"> + <functionParams> + <functionParam name="degrees" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="degrees" /> + </generatedParams> + </function> + + <!-- java.lang.Math.ulp(double) --> + <function + name="ulp" + className="java.lang.Math" + methodName="ulp"> + <functionParams> + <functionParam name="a" type="double" /> + </functionParams> + <generatedParams> + <generatedParam mapsFrom="a" /> + </generatedParams> + </function> + +<!-- +acos(double) +asin(double) +atan(double) +atan2(double, double) +cbrt(double) +ceil(double) +copySign(double, double) +cos(double) +cosh(double) +exp(double) +expm1(double) +floor(double) +getExponent(double) +hypot(double, double) +log(double) +log10(double) +log1p(double) +max(double, double) +min(double, double) +nextAfter(double, double) +nextUp(double) +pow(double, double) +random() +rint(double) +round(double) +scalb(double, int) +signum(double) +sin(double) +sinh(double) +sqrt(double) +tan(double) +tanh(double) +toDegrees(double) +toRadians(double) +ulp(double) +--> + + </extension> + +</plugin> diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/schema/functions.exsd b/modelgen/org.eclipse.stem.model.ctdl.functions/schema/functions.exsd new file mode 100644 index 000000000..1d8d0af81 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/schema/functions.exsd @@ -0,0 +1,174 @@ +<?xml version='1.0' encoding='UTF-8'?> +<!-- Schema file written by PDE --> +<schema targetNamespace="org.eclipse.stem.model.ctdl.functions" xmlns="http://www.w3.org/2001/XMLSchema"> +<annotation> + <appinfo> + <meta.schema plugin="org.eclipse.stem.model.ctdl.functions" id="functions" name="STEM External Functions"/> + </appinfo> + <documentation> + [Enter description of this extension point.] + </documentation> + </annotation> + + <element name="extension"> + <annotation> + <appinfo> + <meta.element /> + </appinfo> + </annotation> + <complexType> + <sequence minOccurs="0" maxOccurs="unbounded"> + <element ref="function"/> + </sequence> + <attribute name="point" type="string" use="required"> + <annotation> + <documentation> + + </documentation> + </annotation> + </attribute> + <attribute name="id" type="string"> + <annotation> + <documentation> + + </documentation> + </annotation> + </attribute> + <attribute name="name" type="string"> + <annotation> + <documentation> + + </documentation> + <appinfo> + <meta.attribute translatable="true"/> + </appinfo> + </annotation> + </attribute> + </complexType> + </element> + + <element name="function"> + <complexType> + <sequence> + <element ref="functionParams"/> + <element ref="generatedParams"/> + </sequence> + <attribute name="className" type="string"> + <annotation> + <documentation> + + </documentation> + <appinfo> + <meta.attribute kind="java"/> + </appinfo> + </annotation> + </attribute> + <attribute name="methodName" type="string"> + <annotation> + <documentation> + + </documentation> + </annotation> + </attribute> + <attribute name="name" type="string"> + <annotation> + <documentation> + + </documentation> + </annotation> + </attribute> + </complexType> + </element> + + <element name="functionParams"> + <complexType> + <sequence minOccurs="0" maxOccurs="unbounded"> + <element ref="functionParam"/> + </sequence> + </complexType> + </element> + + <element name="generatedParams"> + <complexType> + <sequence minOccurs="0" maxOccurs="unbounded"> + <element ref="generatedParam"/> + </sequence> + </complexType> + </element> + + <element name="functionParam"> + <complexType> + <attribute name="name" type="string" use="required"> + <annotation> + <documentation> + + </documentation> + </annotation> + </attribute> + <attribute name="type" type="string" use="required"> + <annotation> + <documentation> + + </documentation> + </annotation> + </attribute> + </complexType> + </element> + + <element name="generatedParam"> + <complexType> + <attribute name="name" type="string"> + <annotation> + <documentation> + + </documentation> + </annotation> + </attribute> + <attribute name="mapsFrom" type="string"> + <annotation> + <documentation> + + </documentation> + </annotation> + </attribute> + </complexType> + </element> + + <annotation> + <appinfo> + <meta.section type="since"/> + </appinfo> + <documentation> + [Enter the first release in which this extension point appears.] + </documentation> + </annotation> + + <annotation> + <appinfo> + <meta.section type="examples"/> + </appinfo> + <documentation> + [Enter extension point usage example here.] + </documentation> + </annotation> + + <annotation> + <appinfo> + <meta.section type="apiinfo"/> + </appinfo> + <documentation> + [Enter API information here.] + </documentation> + </annotation> + + <annotation> + <appinfo> + <meta.section type="implementation"/> + </appinfo> + <documentation> + [Enter information about supplied implementation of this extension point.] + </documentation> + </annotation> + + +</schema> diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/Activator.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/Activator.java new file mode 100644 index 000000000..03d0bc54a --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/Activator.java @@ -0,0 +1,30 @@ +package org.eclipse.stem.model.ctdl.functions; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +public class Activator implements BundleActivator { + + private static BundleContext context; + + static BundleContext getContext() { + return context; + } + + /* + * (non-Javadoc) + * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext bundleContext) throws Exception { + Activator.context = bundleContext; + } + + /* + * (non-Javadoc) + * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext bundleContext) throws Exception { + Activator.context = null; + } + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/ExternalFunctionDefinition.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/ExternalFunctionDefinition.java new file mode 100644 index 000000000..e175c1c02 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/ExternalFunctionDefinition.java @@ -0,0 +1,272 @@ +/** + */ +package org.eclipse.stem.model.ctdl.functions; + +import java.lang.reflect.Method; + +import org.eclipse.core.runtime.IConfigurationElement; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>External Function Definition</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getClass_ <em>Class</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getMethod <em>Method</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getReturnType <em>Return Type</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getSignature <em>Signature</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getClassName <em>Class Name</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getMethodName <em>Method Name</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getContributingPlugin <em>Contributing Plugin</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getExtPointDefinition <em>Ext Point Definition</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getFunctionArguments <em>Function Arguments</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getJavaMethodArguments <em>Java Method Arguments</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getExternalFunctionDefinition() + * @model + * @generated + */ +public interface ExternalFunctionDefinition extends EObject { + /** + * Returns the value of the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Name</em>' attribute. + * @see #setName(String) + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getExternalFunctionDefinition_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getName <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Name</em>' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the '<em><b>Class</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Class</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Class</em>' attribute. + * @see #setClass(Class) + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getExternalFunctionDefinition_Class() + * @model + * @generated + */ + Class<?> getClass_(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getClass_ <em>Class</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Class</em>' attribute. + * @see #getClass_() + * @generated + */ + void setClass(Class<?> value); + + /** + * Returns the value of the '<em><b>Method</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Method</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Method</em>' attribute. + * @see #setMethod(Method) + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getExternalFunctionDefinition_Method() + * @model dataType="org.eclipse.stem.model.ctdl.functions.Method" transient="true" + * @generated + */ + Method getMethod(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getMethod <em>Method</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Method</em>' attribute. + * @see #getMethod() + * @generated + */ + void setMethod(Method value); + + /** + * Returns the value of the '<em><b>Return Type</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Return Type</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Return Type</em>' attribute. + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getExternalFunctionDefinition_ReturnType() + * @model transient="true" changeable="false" volatile="true" derived="true" + * @generated + */ + Class<?> getReturnType(); + + /** + * Returns the value of the '<em><b>Signature</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Signature</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Signature</em>' attribute. + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getExternalFunctionDefinition_Signature() + * @model transient="true" changeable="false" derived="true" + * @generated + */ + String getSignature(); + + /** + * Returns the value of the '<em><b>Class Name</b></em>' attribute. + * The default value is <code>""</code>. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Class Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Class Name</em>' attribute. + * @see #setClassName(String) + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getExternalFunctionDefinition_ClassName() + * @model default="" + * @generated + */ + String getClassName(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getClassName <em>Class Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Class Name</em>' attribute. + * @see #getClassName() + * @generated + */ + void setClassName(String value); + + /** + * Returns the value of the '<em><b>Method Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Method Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Method Name</em>' attribute. + * @see #setMethodName(String) + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getExternalFunctionDefinition_MethodName() + * @model + * @generated + */ + String getMethodName(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getMethodName <em>Method Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Method Name</em>' attribute. + * @see #getMethodName() + * @generated + */ + void setMethodName(String value); + + /** + * Returns the value of the '<em><b>Contributing Plugin</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Contributing Plugin</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Contributing Plugin</em>' attribute. + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getExternalFunctionDefinition_ContributingPlugin() + * @model transient="true" changeable="false" derived="true" + * @generated + */ + String getContributingPlugin(); + + /** + * Returns the value of the '<em><b>Ext Point Definition</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Ext Point Definition</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Ext Point Definition</em>' attribute. + * @see #setExtPointDefinition(IConfigurationElement) + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getExternalFunctionDefinition_ExtPointDefinition() + * @model dataType="org.eclipse.stem.model.ctdl.functions.IConfigurationElement" transient="true" + * @generated + */ + IConfigurationElement getExtPointDefinition(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getExtPointDefinition <em>Ext Point Definition</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Ext Point Definition</em>' attribute. + * @see #getExtPointDefinition() + * @generated + */ + void setExtPointDefinition(IConfigurationElement value); + + /** + * Returns the value of the '<em><b>Function Arguments</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.stem.model.ctdl.functions.FunctionArgument}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Function Arguments</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Function Arguments</em>' containment reference list. + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getExternalFunctionDefinition_FunctionArguments() + * @model containment="true" transient="true" + * @generated + */ + EList<FunctionArgument> getFunctionArguments(); + + /** + * Returns the value of the '<em><b>Java Method Arguments</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.stem.model.ctdl.functions.JavaMethodArgument}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Java Method Arguments</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Java Method Arguments</em>' containment reference list. + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getExternalFunctionDefinition_JavaMethodArguments() + * @model containment="true" transient="true" + * @generated + */ + EList<JavaMethodArgument> getJavaMethodArguments(); + +} // ExternalFunctionDefinition diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/ExternalFunctionsFactory.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/ExternalFunctionsFactory.java new file mode 100644 index 000000000..aa4c02001 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/ExternalFunctionsFactory.java @@ -0,0 +1,78 @@ +/** + */ +package org.eclipse.stem.model.ctdl.functions; + +import org.eclipse.emf.ecore.EFactory; + +/** + * <!-- begin-user-doc --> + * The <b>Factory</b> for the model. + * It provides a create method for each non-abstract class of the model. + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage + * @generated + */ +public interface ExternalFunctionsFactory extends EFactory { + /** + * The singleton instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + ExternalFunctionsFactory eINSTANCE = org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionsFactoryImpl.init(); + + /** + * Returns a new object of class '<em>External Function Definition</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>External Function Definition</em>'. + * @generated + */ + ExternalFunctionDefinition createExternalFunctionDefinition(); + + /** + * Returns a new object of class '<em>Function Argument</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Function Argument</em>'. + * @generated + */ + FunctionArgument createFunctionArgument(); + + /** + * Returns a new object of class '<em>Java Method Argument</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Java Method Argument</em>'. + * @generated + */ + JavaMethodArgument createJavaMethodArgument(); + + /** + * Returns a new object of class '<em>System Argument Reference</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>System Argument Reference</em>'. + * @generated + */ + SystemArgumentReference createSystemArgumentReference(); + + /** + * Returns a new object of class '<em>Function Argument Reference</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Function Argument Reference</em>'. + * @generated + */ + FunctionArgumentReference createFunctionArgumentReference(); + + /** + * Returns the package supported by this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the package supported by this factory. + * @generated + */ + ExternalFunctionsPackage getExternalFunctionsPackage(); + +} //ExternalFunctionsFactory diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/ExternalFunctionsPackage.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/ExternalFunctionsPackage.java new file mode 100644 index 000000000..0759531b8 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/ExternalFunctionsPackage.java @@ -0,0 +1,881 @@ +/** + */ +package org.eclipse.stem.model.ctdl.functions; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +/** + * <!-- begin-user-doc --> + * The <b>Package</b> for the model. + * It contains accessors for the meta objects to represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsFactory + * @model kind="package" + * @generated + */ +public interface ExternalFunctionsPackage extends EPackage { + /** + * The package name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNAME = "functions"; + + /** + * The package namespace URI. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_URI = "http:///org/eclipse/stem/model/ctdl/functions.ecore"; + + /** + * The package namespace name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_PREFIX = "org.eclipse.stem.model.ctdl.functions"; + + /** + * The singleton instance of the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + ExternalFunctionsPackage eINSTANCE = org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionsPackageImpl.init(); + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionDefinitionImpl <em>External Function Definition</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionDefinitionImpl + * @see org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionsPackageImpl#getExternalFunctionDefinition() + * @generated + */ + int EXTERNAL_FUNCTION_DEFINITION = 0; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXTERNAL_FUNCTION_DEFINITION__NAME = 0; + + /** + * The feature id for the '<em><b>Class</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXTERNAL_FUNCTION_DEFINITION__CLASS = 1; + + /** + * The feature id for the '<em><b>Method</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXTERNAL_FUNCTION_DEFINITION__METHOD = 2; + + /** + * The feature id for the '<em><b>Return Type</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXTERNAL_FUNCTION_DEFINITION__RETURN_TYPE = 3; + + /** + * The feature id for the '<em><b>Signature</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXTERNAL_FUNCTION_DEFINITION__SIGNATURE = 4; + + /** + * The feature id for the '<em><b>Class Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXTERNAL_FUNCTION_DEFINITION__CLASS_NAME = 5; + + /** + * The feature id for the '<em><b>Method Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXTERNAL_FUNCTION_DEFINITION__METHOD_NAME = 6; + + /** + * The feature id for the '<em><b>Contributing Plugin</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXTERNAL_FUNCTION_DEFINITION__CONTRIBUTING_PLUGIN = 7; + + /** + * The feature id for the '<em><b>Ext Point Definition</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXTERNAL_FUNCTION_DEFINITION__EXT_POINT_DEFINITION = 8; + + /** + * The feature id for the '<em><b>Function Arguments</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXTERNAL_FUNCTION_DEFINITION__FUNCTION_ARGUMENTS = 9; + + /** + * The feature id for the '<em><b>Java Method Arguments</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXTERNAL_FUNCTION_DEFINITION__JAVA_METHOD_ARGUMENTS = 10; + + /** + * The number of structural features of the '<em>External Function Definition</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXTERNAL_FUNCTION_DEFINITION_FEATURE_COUNT = 11; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.functions.impl.FunctionArgumentImpl <em>Function Argument</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.functions.impl.FunctionArgumentImpl + * @see org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionsPackageImpl#getFunctionArgument() + * @generated + */ + int FUNCTION_ARGUMENT = 1; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FUNCTION_ARGUMENT__NAME = 0; + + /** + * The feature id for the '<em><b>Type</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FUNCTION_ARGUMENT__TYPE = 1; + + /** + * The number of structural features of the '<em>Function Argument</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FUNCTION_ARGUMENT_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.functions.impl.JavaMethodArgumentImpl <em>Java Method Argument</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.functions.impl.JavaMethodArgumentImpl + * @see org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionsPackageImpl#getJavaMethodArgument() + * @generated + */ + int JAVA_METHOD_ARGUMENT = 2; + + /** + * The feature id for the '<em><b>Maps From</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_METHOD_ARGUMENT__MAPS_FROM = 0; + + /** + * The feature id for the '<em><b>Type</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_METHOD_ARGUMENT__TYPE = 1; + + /** + * The number of structural features of the '<em>Java Method Argument</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_METHOD_ARGUMENT_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.functions.impl.SystemArgumentReferenceImpl <em>System Argument Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.functions.impl.SystemArgumentReferenceImpl + * @see org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionsPackageImpl#getSystemArgumentReference() + * @generated + */ + int SYSTEM_ARGUMENT_REFERENCE = 3; + + /** + * The feature id for the '<em><b>Maps From</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SYSTEM_ARGUMENT_REFERENCE__MAPS_FROM = JAVA_METHOD_ARGUMENT__MAPS_FROM; + + /** + * The feature id for the '<em><b>Type</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SYSTEM_ARGUMENT_REFERENCE__TYPE = JAVA_METHOD_ARGUMENT__TYPE; + + /** + * The feature id for the '<em><b>Ref</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SYSTEM_ARGUMENT_REFERENCE__REF = JAVA_METHOD_ARGUMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>System Argument Reference</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SYSTEM_ARGUMENT_REFERENCE_FEATURE_COUNT = JAVA_METHOD_ARGUMENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.functions.impl.FunctionArgumentReferenceImpl <em>Function Argument Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.functions.impl.FunctionArgumentReferenceImpl + * @see org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionsPackageImpl#getFunctionArgumentReference() + * @generated + */ + int FUNCTION_ARGUMENT_REFERENCE = 4; + + /** + * The feature id for the '<em><b>Maps From</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FUNCTION_ARGUMENT_REFERENCE__MAPS_FROM = JAVA_METHOD_ARGUMENT__MAPS_FROM; + + /** + * The feature id for the '<em><b>Type</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FUNCTION_ARGUMENT_REFERENCE__TYPE = JAVA_METHOD_ARGUMENT__TYPE; + + /** + * The feature id for the '<em><b>Arg Index</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FUNCTION_ARGUMENT_REFERENCE__ARG_INDEX = JAVA_METHOD_ARGUMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Ref</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FUNCTION_ARGUMENT_REFERENCE__REF = JAVA_METHOD_ARGUMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Function Argument Reference</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FUNCTION_ARGUMENT_REFERENCE_FEATURE_COUNT = JAVA_METHOD_ARGUMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '<em>IConfiguration Element</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.core.runtime.IConfigurationElement + * @see org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionsPackageImpl#getIConfigurationElement() + * @generated + */ + int ICONFIGURATION_ELEMENT = 5; + + /** + * The meta object id for the '<em>Method</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see java.lang.reflect.Method + * @see org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionsPackageImpl#getMethod() + * @generated + */ + int METHOD = 6; + + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition <em>External Function Definition</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>External Function Definition</em>'. + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition + * @generated + */ + EClass getExternalFunctionDefinition(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getName <em>Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getName() + * @see #getExternalFunctionDefinition() + * @generated + */ + EAttribute getExternalFunctionDefinition_Name(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getClass_ <em>Class</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Class</em>'. + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getClass_() + * @see #getExternalFunctionDefinition() + * @generated + */ + EAttribute getExternalFunctionDefinition_Class(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getMethod <em>Method</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Method</em>'. + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getMethod() + * @see #getExternalFunctionDefinition() + * @generated + */ + EAttribute getExternalFunctionDefinition_Method(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getReturnType <em>Return Type</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Return Type</em>'. + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getReturnType() + * @see #getExternalFunctionDefinition() + * @generated + */ + EAttribute getExternalFunctionDefinition_ReturnType(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getSignature <em>Signature</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Signature</em>'. + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getSignature() + * @see #getExternalFunctionDefinition() + * @generated + */ + EAttribute getExternalFunctionDefinition_Signature(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getClassName <em>Class Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Class Name</em>'. + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getClassName() + * @see #getExternalFunctionDefinition() + * @generated + */ + EAttribute getExternalFunctionDefinition_ClassName(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getMethodName <em>Method Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Method Name</em>'. + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getMethodName() + * @see #getExternalFunctionDefinition() + * @generated + */ + EAttribute getExternalFunctionDefinition_MethodName(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getContributingPlugin <em>Contributing Plugin</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Contributing Plugin</em>'. + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getContributingPlugin() + * @see #getExternalFunctionDefinition() + * @generated + */ + EAttribute getExternalFunctionDefinition_ContributingPlugin(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getExtPointDefinition <em>Ext Point Definition</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Ext Point Definition</em>'. + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getExtPointDefinition() + * @see #getExternalFunctionDefinition() + * @generated + */ + EAttribute getExternalFunctionDefinition_ExtPointDefinition(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getFunctionArguments <em>Function Arguments</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Function Arguments</em>'. + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getFunctionArguments() + * @see #getExternalFunctionDefinition() + * @generated + */ + EReference getExternalFunctionDefinition_FunctionArguments(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getJavaMethodArguments <em>Java Method Arguments</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Java Method Arguments</em>'. + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition#getJavaMethodArguments() + * @see #getExternalFunctionDefinition() + * @generated + */ + EReference getExternalFunctionDefinition_JavaMethodArguments(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.functions.FunctionArgument <em>Function Argument</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Function Argument</em>'. + * @see org.eclipse.stem.model.ctdl.functions.FunctionArgument + * @generated + */ + EClass getFunctionArgument(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.functions.FunctionArgument#getName <em>Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.stem.model.ctdl.functions.FunctionArgument#getName() + * @see #getFunctionArgument() + * @generated + */ + EAttribute getFunctionArgument_Name(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.functions.FunctionArgument#getType <em>Type</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Type</em>'. + * @see org.eclipse.stem.model.ctdl.functions.FunctionArgument#getType() + * @see #getFunctionArgument() + * @generated + */ + EAttribute getFunctionArgument_Type(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.functions.JavaMethodArgument <em>Java Method Argument</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Java Method Argument</em>'. + * @see org.eclipse.stem.model.ctdl.functions.JavaMethodArgument + * @generated + */ + EClass getJavaMethodArgument(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.functions.JavaMethodArgument#getMapsFrom <em>Maps From</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Maps From</em>'. + * @see org.eclipse.stem.model.ctdl.functions.JavaMethodArgument#getMapsFrom() + * @see #getJavaMethodArgument() + * @generated + */ + EAttribute getJavaMethodArgument_MapsFrom(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.functions.JavaMethodArgument#getType <em>Type</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Type</em>'. + * @see org.eclipse.stem.model.ctdl.functions.JavaMethodArgument#getType() + * @see #getJavaMethodArgument() + * @generated + */ + EAttribute getJavaMethodArgument_Type(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.functions.SystemArgumentReference <em>System Argument Reference</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>System Argument Reference</em>'. + * @see org.eclipse.stem.model.ctdl.functions.SystemArgumentReference + * @generated + */ + EClass getSystemArgumentReference(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.stem.model.ctdl.functions.SystemArgumentReference#getRef <em>Ref</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Ref</em>'. + * @see org.eclipse.stem.model.ctdl.functions.SystemArgumentReference#getRef() + * @see #getSystemArgumentReference() + * @generated + */ + EReference getSystemArgumentReference_Ref(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.functions.FunctionArgumentReference <em>Function Argument Reference</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Function Argument Reference</em>'. + * @see org.eclipse.stem.model.ctdl.functions.FunctionArgumentReference + * @generated + */ + EClass getFunctionArgumentReference(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.functions.FunctionArgumentReference#getArgIndex <em>Arg Index</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Arg Index</em>'. + * @see org.eclipse.stem.model.ctdl.functions.FunctionArgumentReference#getArgIndex() + * @see #getFunctionArgumentReference() + * @generated + */ + EAttribute getFunctionArgumentReference_ArgIndex(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.stem.model.ctdl.functions.FunctionArgumentReference#getRef <em>Ref</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Ref</em>'. + * @see org.eclipse.stem.model.ctdl.functions.FunctionArgumentReference#getRef() + * @see #getFunctionArgumentReference() + * @generated + */ + EReference getFunctionArgumentReference_Ref(); + + /** + * Returns the meta object for data type '{@link org.eclipse.core.runtime.IConfigurationElement <em>IConfiguration Element</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for data type '<em>IConfiguration Element</em>'. + * @see org.eclipse.core.runtime.IConfigurationElement + * @model instanceClass="org.eclipse.core.runtime.IConfigurationElement" serializeable="false" + * @generated + */ + EDataType getIConfigurationElement(); + + /** + * Returns the meta object for data type '{@link java.lang.reflect.Method <em>Method</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for data type '<em>Method</em>'. + * @see java.lang.reflect.Method + * @model instanceClass="java.lang.reflect.Method" serializeable="false" + * @generated + */ + EDataType getMethod(); + + /** + * Returns the factory that creates the instances of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the factory that creates the instances of the model. + * @generated + */ + ExternalFunctionsFactory getExternalFunctionsFactory(); + + /** + * <!-- begin-user-doc --> + * Defines literals for the meta objects that represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @generated + */ + interface Literals { + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionDefinitionImpl <em>External Function Definition</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionDefinitionImpl + * @see org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionsPackageImpl#getExternalFunctionDefinition() + * @generated + */ + EClass EXTERNAL_FUNCTION_DEFINITION = eINSTANCE.getExternalFunctionDefinition(); + + /** + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute EXTERNAL_FUNCTION_DEFINITION__NAME = eINSTANCE.getExternalFunctionDefinition_Name(); + + /** + * The meta object literal for the '<em><b>Class</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute EXTERNAL_FUNCTION_DEFINITION__CLASS = eINSTANCE.getExternalFunctionDefinition_Class(); + + /** + * The meta object literal for the '<em><b>Method</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute EXTERNAL_FUNCTION_DEFINITION__METHOD = eINSTANCE.getExternalFunctionDefinition_Method(); + + /** + * The meta object literal for the '<em><b>Return Type</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute EXTERNAL_FUNCTION_DEFINITION__RETURN_TYPE = eINSTANCE.getExternalFunctionDefinition_ReturnType(); + + /** + * The meta object literal for the '<em><b>Signature</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute EXTERNAL_FUNCTION_DEFINITION__SIGNATURE = eINSTANCE.getExternalFunctionDefinition_Signature(); + + /** + * The meta object literal for the '<em><b>Class Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute EXTERNAL_FUNCTION_DEFINITION__CLASS_NAME = eINSTANCE.getExternalFunctionDefinition_ClassName(); + + /** + * The meta object literal for the '<em><b>Method Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute EXTERNAL_FUNCTION_DEFINITION__METHOD_NAME = eINSTANCE.getExternalFunctionDefinition_MethodName(); + + /** + * The meta object literal for the '<em><b>Contributing Plugin</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute EXTERNAL_FUNCTION_DEFINITION__CONTRIBUTING_PLUGIN = eINSTANCE.getExternalFunctionDefinition_ContributingPlugin(); + + /** + * The meta object literal for the '<em><b>Ext Point Definition</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute EXTERNAL_FUNCTION_DEFINITION__EXT_POINT_DEFINITION = eINSTANCE.getExternalFunctionDefinition_ExtPointDefinition(); + + /** + * The meta object literal for the '<em><b>Function Arguments</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference EXTERNAL_FUNCTION_DEFINITION__FUNCTION_ARGUMENTS = eINSTANCE.getExternalFunctionDefinition_FunctionArguments(); + + /** + * The meta object literal for the '<em><b>Java Method Arguments</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference EXTERNAL_FUNCTION_DEFINITION__JAVA_METHOD_ARGUMENTS = eINSTANCE.getExternalFunctionDefinition_JavaMethodArguments(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.functions.impl.FunctionArgumentImpl <em>Function Argument</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.functions.impl.FunctionArgumentImpl + * @see org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionsPackageImpl#getFunctionArgument() + * @generated + */ + EClass FUNCTION_ARGUMENT = eINSTANCE.getFunctionArgument(); + + /** + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute FUNCTION_ARGUMENT__NAME = eINSTANCE.getFunctionArgument_Name(); + + /** + * The meta object literal for the '<em><b>Type</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute FUNCTION_ARGUMENT__TYPE = eINSTANCE.getFunctionArgument_Type(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.functions.impl.JavaMethodArgumentImpl <em>Java Method Argument</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.functions.impl.JavaMethodArgumentImpl + * @see org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionsPackageImpl#getJavaMethodArgument() + * @generated + */ + EClass JAVA_METHOD_ARGUMENT = eINSTANCE.getJavaMethodArgument(); + + /** + * The meta object literal for the '<em><b>Maps From</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute JAVA_METHOD_ARGUMENT__MAPS_FROM = eINSTANCE.getJavaMethodArgument_MapsFrom(); + + /** + * The meta object literal for the '<em><b>Type</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute JAVA_METHOD_ARGUMENT__TYPE = eINSTANCE.getJavaMethodArgument_Type(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.functions.impl.SystemArgumentReferenceImpl <em>System Argument Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.functions.impl.SystemArgumentReferenceImpl + * @see org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionsPackageImpl#getSystemArgumentReference() + * @generated + */ + EClass SYSTEM_ARGUMENT_REFERENCE = eINSTANCE.getSystemArgumentReference(); + + /** + * The meta object literal for the '<em><b>Ref</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference SYSTEM_ARGUMENT_REFERENCE__REF = eINSTANCE.getSystemArgumentReference_Ref(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.functions.impl.FunctionArgumentReferenceImpl <em>Function Argument Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.functions.impl.FunctionArgumentReferenceImpl + * @see org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionsPackageImpl#getFunctionArgumentReference() + * @generated + */ + EClass FUNCTION_ARGUMENT_REFERENCE = eINSTANCE.getFunctionArgumentReference(); + + /** + * The meta object literal for the '<em><b>Arg Index</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute FUNCTION_ARGUMENT_REFERENCE__ARG_INDEX = eINSTANCE.getFunctionArgumentReference_ArgIndex(); + + /** + * The meta object literal for the '<em><b>Ref</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference FUNCTION_ARGUMENT_REFERENCE__REF = eINSTANCE.getFunctionArgumentReference_Ref(); + + /** + * The meta object literal for the '<em>IConfiguration Element</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.core.runtime.IConfigurationElement + * @see org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionsPackageImpl#getIConfigurationElement() + * @generated + */ + EDataType ICONFIGURATION_ELEMENT = eINSTANCE.getIConfigurationElement(); + + /** + * The meta object literal for the '<em>Method</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see java.lang.reflect.Method + * @see org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionsPackageImpl#getMethod() + * @generated + */ + EDataType METHOD = eINSTANCE.getMethod(); + + } + +} //ExternalFunctionsPackage diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/FunctionArgument.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/FunctionArgument.java new file mode 100644 index 000000000..8e128d0fb --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/FunctionArgument.java @@ -0,0 +1,77 @@ +/** + */ +package org.eclipse.stem.model.ctdl.functions; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Function Argument</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.functions.FunctionArgument#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.FunctionArgument#getType <em>Type</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getFunctionArgument() + * @model + * @generated + */ +public interface FunctionArgument extends EObject { + /** + * Returns the value of the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Name</em>' attribute. + * @see #setName(String) + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getFunctionArgument_Name() + * @model transient="true" + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.functions.FunctionArgument#getName <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Name</em>' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the '<em><b>Type</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Type</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Type</em>' attribute. + * @see #setType(String) + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getFunctionArgument_Type() + * @model transient="true" + * @generated + */ + String getType(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.functions.FunctionArgument#getType <em>Type</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Type</em>' attribute. + * @see #getType() + * @generated + */ + void setType(String value); + +} // FunctionArgument diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/FunctionArgumentReference.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/FunctionArgumentReference.java new file mode 100644 index 000000000..eea9263c3 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/FunctionArgumentReference.java @@ -0,0 +1,76 @@ +/** + */ +package org.eclipse.stem.model.ctdl.functions; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Function Argument Reference</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.functions.FunctionArgumentReference#getArgIndex <em>Arg Index</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.FunctionArgumentReference#getRef <em>Ref</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getFunctionArgumentReference() + * @model + * @generated + */ +public interface FunctionArgumentReference extends JavaMethodArgument { + /** + * Returns the value of the '<em><b>Arg Index</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Arg Index</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Arg Index</em>' attribute. + * @see #setArgIndex(int) + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getFunctionArgumentReference_ArgIndex() + * @model + * @generated + */ + int getArgIndex(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.functions.FunctionArgumentReference#getArgIndex <em>Arg Index</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Arg Index</em>' attribute. + * @see #getArgIndex() + * @generated + */ + void setArgIndex(int value); + + /** + * Returns the value of the '<em><b>Ref</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Ref</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Ref</em>' reference. + * @see #setRef(FunctionArgument) + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getFunctionArgumentReference_Ref() + * @model + * @generated + */ + FunctionArgument getRef(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.functions.FunctionArgumentReference#getRef <em>Ref</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Ref</em>' reference. + * @see #getRef() + * @generated + */ + void setRef(FunctionArgument value); + +} // FunctionArgumentReference diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/FunctionDefinitionException.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/FunctionDefinitionException.java new file mode 100644 index 000000000..795321091 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/FunctionDefinitionException.java @@ -0,0 +1,38 @@ +package org.eclipse.stem.model.ctdl.functions; + +public class FunctionDefinitionException extends Exception +{ + /** + * + */ + private static final long serialVersionUID = 1L; + + private ExternalFunctionDefinition fd; + + public FunctionDefinitionException(String message) + { + this(message,null,null); + } + + public FunctionDefinitionException(String message, Throwable parent) + { + this(message, null, parent); + } + + public FunctionDefinitionException(String message, ExternalFunctionDefinition fd) + { + this(message,fd,null); + } + + public FunctionDefinitionException(String message, ExternalFunctionDefinition fd, Throwable parent) + { + super(message, parent); + this.fd = fd; + } + + public ExternalFunctionDefinition getFunctionDefinition() + { + return fd; + } + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/FunctionDefinitionLoader.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/FunctionDefinitionLoader.java new file mode 100644 index 000000000..a71f6262e --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/FunctionDefinitionLoader.java @@ -0,0 +1,232 @@ +package org.eclipse.stem.model.ctdl.functions; + + +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IConfigurationElement; +import org.eclipse.core.runtime.Platform; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; + +public class FunctionDefinitionLoader { + public static final String EXTENSION_POINT_NAME = "org.eclipse.stem.model.ctdl.functions.functions"; + private static FunctionDefinitionLoader INSTANCE; + + private List<ExternalFunctionDefinition> functionDefinitions = new ArrayList<ExternalFunctionDefinition>(); + private ResourceSet resourceSet; + private Resource defaultResource; + + private FunctionDefinitionLoader() + { + load(); + } + + public static synchronized FunctionDefinitionLoader getInstance() + { + if (INSTANCE == null) { + INSTANCE = new FunctionDefinitionLoader(); + } + return INSTANCE; + } + + public List<ExternalFunctionDefinition> getDefinitions() + { + return Collections.unmodifiableList(functionDefinitions); + } + + private void load() + { + resourceSet = new ResourceSetImpl(); + defaultResource = resourceSet.createResource(URI + .createURI("empty.extFunc")); + + IConfigurationElement[] extensions = Platform.getExtensionRegistry().getConfigurationElementsFor(EXTENSION_POINT_NAME); + + for (IConfigurationElement extension : extensions) { + ExternalFunctionDefinition functionDef = getDefinitionForExtension(extension); + if (functionDef != null) { + functionDefinitions.add(functionDef); + } + } + } + + private ExternalFunctionDefinition getDefinitionForExtension( + IConfigurationElement functionDef) + { + + ExternalFunctionDefinition functionDefinition = ExternalFunctionsFactory.eINSTANCE.createExternalFunctionDefinition(); + + functionDefinition.setName(functionDef.getAttribute("name")); + functionDefinition.setClassName(functionDef.getAttribute("className")); + functionDefinition.setMethodName(functionDef.getAttribute("methodName")); + functionDefinition.setExtPointDefinition(functionDef); + + try { + populateFunctionArguments(functionDefinition); + populateMethodArguments(functionDefinition); + validateClassAndMethodSignature(functionDefinition); + } catch (FunctionDefinitionException fde) { + fde.printStackTrace(); + return null; + } + + defaultResource.getContents().add(functionDefinition); + return functionDefinition; + + } + + private void populateFunctionArguments(ExternalFunctionDefinition definition) + { + IConfigurationElement[] functionParamBlocks = definition.getExtPointDefinition() + .getChildren("functionParams"); + if (functionParamBlocks.length > 0) { + IConfigurationElement[] args = functionParamBlocks[0] + .getChildren("functionParam"); + for (IConfigurationElement arg : args) { + FunctionArgument fa = ExternalFunctionsFactory.eINSTANCE.createFunctionArgument(); + fa.setName(arg.getAttribute("name")); + fa.setType(arg.getAttribute("type")); + definition.getFunctionArguments().add(fa); + } + } + } + + private void populateMethodArguments(ExternalFunctionDefinition definition) throws FunctionDefinitionException + { + IConfigurationElement[] generatedParamBlocks = definition.getExtPointDefinition() + .getChildren("generatedParams"); + if (generatedParamBlocks.length > 0) { + IConfigurationElement[] args = generatedParamBlocks[0] + .getChildren("generatedParam"); + for (IConfigurationElement arg : args) { + String mapsFrom = arg.getAttribute("mapsFrom"); + + FunctionArgument fa = getParameterByName(mapsFrom, definition); + + if (fa != null) { + FunctionArgumentReference ref = ExternalFunctionsFactory.eINSTANCE.createFunctionArgumentReference(); + ref.setArgIndex(definition.getFunctionArguments().indexOf(fa)); + ref.setRef(fa); + ref.setType(fa.getType()); + definition.getJavaMethodArguments().add(ref); + } else { + Class<?> globalType = STEMDSLUtils.getGlobalSystemVariables().get(mapsFrom); + if (globalType == null) { + globalType = STEMDSLUtils.getGlobalUserVariables().get(mapsFrom); + } + if (globalType == null) { + throw new FunctionDefinitionException("Unable to find parameter mapping for method parameter key "+ mapsFrom, definition); + } + + SystemArgumentReference ref = ExternalFunctionsFactory.eINSTANCE.createSystemArgumentReference(); + ref.setMapsFrom(mapsFrom); + ref.setType(globalType.getName()); + definition.getJavaMethodArguments().add(ref); + } + } + } + } + + private void validateClassAndMethodSignature( + ExternalFunctionDefinition definition) throws FunctionDefinitionException + { + + Throwable parent = null; + Class<?> functionClass = null; + + // Attempt 1: Try to grab it by class name + try { + functionClass = Class.forName(definition.getClassName()); + } catch (ClassNotFoundException e) { } // continue + + // Attempt 2: Use the definition available reflectively from OSGi + if (functionClass == null) { + try { + Object classInstance = definition.getExtPointDefinition().createExecutableExtension("className"); + if (classInstance != null) { + functionClass = classInstance.getClass(); + } + } catch (CoreException e) { + // It may be useful to hold on to this + parent = e; + } + + } + + definition.setClass(functionClass); + + // If we still can't find it, then bail out. + // TODO Decide if we can still proceed without the class instance + if (definition.getClass_() == null) { + throw new FunctionDefinitionException("Could not instantiate instance of function definition class for function "+ definition.getName(), definition, parent); + } + + String[] declaredParams = getJavaMethodArgTypes(definition); + + Method foundMethod = null; + for (Method method : functionClass.getMethods()) { + if (method.getName().equals(definition.getMethodName()) // Check method name + /*&& method.getReturnType() == double.class*/ // Check return type + && Modifier.isPublic(method.getModifiers()) // Check is public + && Modifier.isStatic(method.getModifiers())) // Check is static + { + Class<?>[] methodParams = method.getParameterTypes(); + if (methodParams.length == declaredParams.length) { + boolean match = true; + for (int idx=0; idx<methodParams.length; idx++) { + if (!methodParams[idx].getName().equals(declaredParams[idx])) { + match = false; + break; + } + } + if (match) { + foundMethod = method; + break; + } + } + } + } + + definition.setMethod(foundMethod); + + if (definition.getMethod() == null) { + throw new FunctionDefinitionException("Could not find an appropriate class method for definition "+ definition.getName(), definition); + } + +// for () { +// Class<?> asdf = m.getReturnType(); +// +// // if (asdf.getName()) +// System.out.println(m); +// } + + } + + private String[] getJavaMethodArgTypes(ExternalFunctionDefinition definition) throws FunctionDefinitionException + { + String[] types = new String[definition.getJavaMethodArguments().size()]; + int idx = 0; + for (JavaMethodArgument arg : definition.getJavaMethodArguments()) { + types[idx++] = arg.getType(); + } + return types; + } + + private FunctionArgument getParameterByName(String name, ExternalFunctionDefinition def) + { + for (FunctionArgument param : def.getFunctionArguments()) { + if (param.getName().equals(name)) { + return param; + } + } + return null; + } + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/JavaMethodArgument.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/JavaMethodArgument.java new file mode 100644 index 000000000..843361a3f --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/JavaMethodArgument.java @@ -0,0 +1,77 @@ +/** + */ +package org.eclipse.stem.model.ctdl.functions; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Java Method Argument</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.functions.JavaMethodArgument#getMapsFrom <em>Maps From</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.JavaMethodArgument#getType <em>Type</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getJavaMethodArgument() + * @model + * @generated + */ +public interface JavaMethodArgument extends EObject { + /** + * Returns the value of the '<em><b>Maps From</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Maps From</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Maps From</em>' attribute. + * @see #setMapsFrom(String) + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getJavaMethodArgument_MapsFrom() + * @model transient="true" + * @generated + */ + String getMapsFrom(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.functions.JavaMethodArgument#getMapsFrom <em>Maps From</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Maps From</em>' attribute. + * @see #getMapsFrom() + * @generated + */ + void setMapsFrom(String value); + + /** + * Returns the value of the '<em><b>Type</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Type</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Type</em>' attribute. + * @see #setType(String) + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getJavaMethodArgument_Type() + * @model transient="true" + * @generated + */ + String getType(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.functions.JavaMethodArgument#getType <em>Type</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Type</em>' attribute. + * @see #getType() + * @generated + */ + void setType(String value); + +} // JavaMethodArgument diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/STEMDSLUtils.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/STEMDSLUtils.java new file mode 100644 index 000000000..900aa320e --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/STEMDSLUtils.java @@ -0,0 +1,143 @@ +package org.eclipse.stem.model.ctdl.functions; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +public class STEMDSLUtils +{ + private static final Map<String, Class<?>> GLOBAL_USER_VARS = new HashMap<String, Class<?>>(); + private static final Map<String, Class<?>> GLOBAL_SYSTEM_VARS = new HashMap<String, Class<?>>(); + static + { + GLOBAL_USER_VARS.put("timeDelta", long.class); + GLOBAL_USER_VARS.put("t", double.class); + + GLOBAL_SYSTEM_VARS + .put("time", org.eclipse.stem.core.model.STEMTime.class); + GLOBAL_SYSTEM_VARS.put("labelValue", + org.eclipse.stem.core.graph.LabelValue.class); + GLOBAL_SYSTEM_VARS.put("node", + org.eclipse.stem.core.graph.Node.class); + + } + + public static Class<?> getTypeForGlobalVariable(String name) + { + Class<?> type = GLOBAL_USER_VARS.get(name); + if (type == null) { + type = GLOBAL_SYSTEM_VARS.get(name); + } + return type; + } + + public static Map<String, Class<?>> getGlobalUserVariables() + { + return Collections.unmodifiableMap(GLOBAL_USER_VARS); + } + + public static Map<String, Class<?>> getGlobalSystemVariables() + { + return Collections.unmodifiableMap(GLOBAL_SYSTEM_VARS); + } +// +// public static String getNormalizedTypeNameForClass(Class<?> clazz) +// { +// if (clazz == null) { +// return null; +// } +// +// if (isNumber(clazz)) { +// return "number"; +// } else if (clazz == String.class) { +// return "string"; +// } else { +// return clazz.getName(); +// } +// } +// +// public static String getNormalizedTypeNameForClass(String className) +// { +// if (className == null) { +// return null; +// } +// +// if (isNumber(className)) { +// return "number"; +// } else if (String.class.getName().equals(className)) { +// return "string"; +// } else { +// return className; +// } +// } +// +// public static List<String> classTypeNames = Arrays.asList(new String[] { +// "double", "int", "float", "long", "short", +// "java.lang.Double", "java.lang.Integer", "java.lang.Float", "java.lang.Long", +// "java.lang.Short" +// }); +// +// public static boolean isNumber(String className) +// { +// return classTypeNames.contains(className); +// } +// +// public static boolean isNumber(Class<?> clazz) +// { +// return (clazz == double.class || clazz == Double.class || +// clazz == int.class || clazz == Integer.class || +// clazz == float.class || clazz == Float.class || +// clazz == long.class || clazz == Long.class || +// clazz == short.class || clazz == Short.class); +// +// } +// +// public static List<Compartment> getAllCompartmentsForGroup( +// CompartmentGroup cg) { +// List<Compartment> compartments = new ArrayList<Compartment>(); +// if (cg != null) { +// compartments.addAll(getAllCompartmentsForGroup(cg.getParentGroup())); +// compartments.addAll(cg.getCompartments()); +// +// } +// return compartments; +// } +// +// public static List<Compartment> getAllCompartmentsForModel(Model model) { +// return getAllCompartmentsForGroup(model.getCompartments()); +// } +// +// public static List<ModelParam> getAllParametersForModel(Model model) { +// List<ModelParam> params = new ArrayList<ModelParam>(); +// if (model != null) { +// params.addAll(getAllParametersForModel(model.getParentModel())); +// params.addAll(model.getParameters()); +// } +// return params; +// } +// +// public static String ucfirst(String str) +// { +// if (str.length() > 0 && Character.isLowerCase(str.codePointAt(0))) { +// StringBuilder sb = new StringBuilder(); +// sb.appendCodePoint(Character.toUpperCase(str.codePointAt(0))); +// sb.append(str.substring(1)); +// return sb.toString(); +// } +// +// return str; +// } +// +// public static String lcfirst(String str) +// { +// if (str.length() > 0 && Character.isUpperCase(str.codePointAt(0))) { +// StringBuilder sb = new StringBuilder(); +// sb.appendCodePoint(Character.toLowerCase(str.codePointAt(0))); +// sb.append(str.substring(1)); +// return sb.toString(); +// } +// +// return str; +// } + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/SystemArgumentReference.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/SystemArgumentReference.java new file mode 100644 index 000000000..1a8af5514 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/SystemArgumentReference.java @@ -0,0 +1,50 @@ +/** + */ +package org.eclipse.stem.model.ctdl.functions; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>System Argument Reference</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.functions.SystemArgumentReference#getRef <em>Ref</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getSystemArgumentReference() + * @model + * @generated + */ +public interface SystemArgumentReference extends JavaMethodArgument { + /** + * Returns the value of the '<em><b>Ref</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Ref</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Ref</em>' reference. + * @see #setRef(EObject) + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#getSystemArgumentReference_Ref() + * @model + * @generated + */ + EObject getRef(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.functions.SystemArgumentReference#getRef <em>Ref</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Ref</em>' reference. + * @see #getRef() + * @generated + */ + void setRef(EObject value); + +} // SystemArgumentReference diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/TestFunctions.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/TestFunctions.java new file mode 100644 index 000000000..7ce0c2112 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/TestFunctions.java @@ -0,0 +1,68 @@ +package org.eclipse.stem.model.ctdl.functions; + +import org.eclipse.stem.core.graph.Node; +import org.eclipse.stem.core.model.STEMTime; + +public class TestFunctions +{ + + public static double test1Method(Node n) + { + return 0.0; + } + + public static double test2Method(double x, Node n) + { + return 0.0; + } + + public static double test3Method(double x, STEMTime time, Node n) + { + return 0.0; + } + + public static double test4Method(STEMTime time, Node n, double x) + { + return 0.0; + } + + public static double test5Method(double x, String y) + { + return 0.0; + } + + public static double test6Method(double x, String y, boolean tf) + { + return 0.0; + } + + public static String test7Method(double x) + { + return ""; + } + + public static double one() + { + return 1; + } + + public static double add(double x, double y) + { + return x+y; + } + + public static double subtract(double x, double y) + { + return x-y; + } + + public static double multiply(double x, double y) + { + return x*y; + } + + public static double divide(double x, double y) + { + return x/y; + } +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/ExternalFunctionDefinitionImpl.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/ExternalFunctionDefinitionImpl.java new file mode 100644 index 000000000..cc38adf76 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/ExternalFunctionDefinitionImpl.java @@ -0,0 +1,626 @@ +/** + */ +package org.eclipse.stem.model.ctdl.functions.impl; + +import java.lang.reflect.Method; +import java.util.Collection; + +import org.eclipse.core.runtime.IConfigurationElement; +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.EObjectImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage; +import org.eclipse.stem.model.ctdl.functions.FunctionArgument; +import org.eclipse.stem.model.ctdl.functions.JavaMethodArgument; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>External Function Definition</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionDefinitionImpl#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionDefinitionImpl#getClass_ <em>Class</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionDefinitionImpl#getMethod <em>Method</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionDefinitionImpl#getReturnType <em>Return Type</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionDefinitionImpl#getSignature <em>Signature</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionDefinitionImpl#getClassName <em>Class Name</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionDefinitionImpl#getMethodName <em>Method Name</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionDefinitionImpl#getContributingPlugin <em>Contributing Plugin</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionDefinitionImpl#getExtPointDefinition <em>Ext Point Definition</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionDefinitionImpl#getFunctionArguments <em>Function Arguments</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.impl.ExternalFunctionDefinitionImpl#getJavaMethodArguments <em>Java Method Arguments</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class ExternalFunctionDefinitionImpl extends EObjectImpl implements ExternalFunctionDefinition { + /** + * The default value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * The cached value of the '{@link #getClass_() <em>Class</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getClass_() + * @generated + * @ordered + */ + protected Class<?> class_; + + /** + * The default value of the '{@link #getMethod() <em>Method</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMethod() + * @generated + * @ordered + */ + protected static final Method METHOD_EDEFAULT = null; + + /** + * The cached value of the '{@link #getMethod() <em>Method</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMethod() + * @generated + * @ordered + */ + protected Method method = METHOD_EDEFAULT; + + /** + * The default value of the '{@link #getSignature() <em>Signature</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSignature() + * @generated + * @ordered + */ + protected static final String SIGNATURE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getSignature() <em>Signature</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSignature() + * @generated + * @ordered + */ + protected String signature = SIGNATURE_EDEFAULT; + + /** + * The default value of the '{@link #getClassName() <em>Class Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getClassName() + * @generated + * @ordered + */ + protected static final String CLASS_NAME_EDEFAULT = ""; + + /** + * The cached value of the '{@link #getClassName() <em>Class Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getClassName() + * @generated + * @ordered + */ + protected String className = CLASS_NAME_EDEFAULT; + + /** + * The default value of the '{@link #getMethodName() <em>Method Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMethodName() + * @generated + * @ordered + */ + protected static final String METHOD_NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getMethodName() <em>Method Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMethodName() + * @generated + * @ordered + */ + protected String methodName = METHOD_NAME_EDEFAULT; + + /** + * The default value of the '{@link #getContributingPlugin() <em>Contributing Plugin</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getContributingPlugin() + * @generated + * @ordered + */ + protected static final String CONTRIBUTING_PLUGIN_EDEFAULT = null; + + /** + * The cached value of the '{@link #getContributingPlugin() <em>Contributing Plugin</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getContributingPlugin() + * @generated + * @ordered + */ + protected String contributingPlugin = CONTRIBUTING_PLUGIN_EDEFAULT; + + /** + * The default value of the '{@link #getExtPointDefinition() <em>Ext Point Definition</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getExtPointDefinition() + * @generated + * @ordered + */ + protected static final IConfigurationElement EXT_POINT_DEFINITION_EDEFAULT = null; + + /** + * The cached value of the '{@link #getExtPointDefinition() <em>Ext Point Definition</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getExtPointDefinition() + * @generated + * @ordered + */ + protected IConfigurationElement extPointDefinition = EXT_POINT_DEFINITION_EDEFAULT; + + /** + * The cached value of the '{@link #getFunctionArguments() <em>Function Arguments</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFunctionArguments() + * @generated + * @ordered + */ + protected EList<FunctionArgument> functionArguments; + + /** + * The cached value of the '{@link #getJavaMethodArguments() <em>Java Method Arguments</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getJavaMethodArguments() + * @generated + * @ordered + */ + protected EList<JavaMethodArgument> javaMethodArguments; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ExternalFunctionDefinitionImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExternalFunctionsPackage.Literals.EXTERNAL_FUNCTION_DEFINITION; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setName(String newName) { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__NAME, oldName, name)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Class<?> getClass_() { + return class_; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setClass(Class<?> newClass) { + Class<?> oldClass = class_; + class_ = newClass; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__CLASS, oldClass, class_)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Method getMethod() { + return method; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setMethod(Method newMethod) { + Method oldMethod = method; + method = newMethod; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__METHOD, oldMethod, method)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public Class<?> getReturnType() { + if (getMethod() == null) { + return null; + } + return getMethod().getReturnType(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public String getSignature() { + if (signature == null) { + StringBuilder sb = new StringBuilder(); + sb.append(getName()); + sb.append("("); + EList<FunctionArgument> args = getFunctionArguments(); + int paramCount = args.size(); + for (int idx=0; idx<args.size(); idx++) { + sb.append(args.get(idx).getType()); + if (idx < paramCount-1) { + sb.append(","); + } + } + sb.append(")"); + signature = sb.toString(); + } + return signature; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getClassName() { + return className; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setClassName(String newClassName) { + String oldClassName = className; + className = newClassName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__CLASS_NAME, oldClassName, className)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getMethodName() { + return methodName; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setMethodName(String newMethodName) { + String oldMethodName = methodName; + methodName = newMethodName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__METHOD_NAME, oldMethodName, methodName)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getContributingPlugin() { + if (contributingPlugin == null) { + IConfigurationElement extPt = getExtPointDefinition(); + if (extPt != null) { + contributingPlugin = extPt.getContributor().getName(); + } + } + return contributingPlugin; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IConfigurationElement getExtPointDefinition() { + return extPointDefinition; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setExtPointDefinition(IConfigurationElement newExtPointDefinition) { + IConfigurationElement oldExtPointDefinition = extPointDefinition; + extPointDefinition = newExtPointDefinition; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__EXT_POINT_DEFINITION, oldExtPointDefinition, extPointDefinition)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<FunctionArgument> getFunctionArguments() { + if (functionArguments == null) { + functionArguments = new EObjectContainmentEList<FunctionArgument>(FunctionArgument.class, this, ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__FUNCTION_ARGUMENTS); + } + return functionArguments; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<JavaMethodArgument> getJavaMethodArguments() { + if (javaMethodArguments == null) { + javaMethodArguments = new EObjectContainmentEList<JavaMethodArgument>(JavaMethodArgument.class, this, ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__JAVA_METHOD_ARGUMENTS); + } + return javaMethodArguments; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__FUNCTION_ARGUMENTS: + return ((InternalEList<?>)getFunctionArguments()).basicRemove(otherEnd, msgs); + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__JAVA_METHOD_ARGUMENTS: + return ((InternalEList<?>)getJavaMethodArguments()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__NAME: + return getName(); + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__CLASS: + return getClass_(); + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__METHOD: + return getMethod(); + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__RETURN_TYPE: + return getReturnType(); + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__SIGNATURE: + return getSignature(); + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__CLASS_NAME: + return getClassName(); + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__METHOD_NAME: + return getMethodName(); + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__CONTRIBUTING_PLUGIN: + return getContributingPlugin(); + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__EXT_POINT_DEFINITION: + return getExtPointDefinition(); + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__FUNCTION_ARGUMENTS: + return getFunctionArguments(); + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__JAVA_METHOD_ARGUMENTS: + return getJavaMethodArguments(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__NAME: + setName((String)newValue); + return; + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__CLASS: + setClass((Class<?>)newValue); + return; + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__METHOD: + setMethod((Method)newValue); + return; + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__CLASS_NAME: + setClassName((String)newValue); + return; + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__METHOD_NAME: + setMethodName((String)newValue); + return; + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__EXT_POINT_DEFINITION: + setExtPointDefinition((IConfigurationElement)newValue); + return; + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__FUNCTION_ARGUMENTS: + getFunctionArguments().clear(); + getFunctionArguments().addAll((Collection<? extends FunctionArgument>)newValue); + return; + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__JAVA_METHOD_ARGUMENTS: + getJavaMethodArguments().clear(); + getJavaMethodArguments().addAll((Collection<? extends JavaMethodArgument>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__NAME: + setName(NAME_EDEFAULT); + return; + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__CLASS: + setClass((Class<?>)null); + return; + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__METHOD: + setMethod(METHOD_EDEFAULT); + return; + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__CLASS_NAME: + setClassName(CLASS_NAME_EDEFAULT); + return; + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__METHOD_NAME: + setMethodName(METHOD_NAME_EDEFAULT); + return; + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__EXT_POINT_DEFINITION: + setExtPointDefinition(EXT_POINT_DEFINITION_EDEFAULT); + return; + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__FUNCTION_ARGUMENTS: + getFunctionArguments().clear(); + return; + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__JAVA_METHOD_ARGUMENTS: + getJavaMethodArguments().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__CLASS: + return class_ != null; + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__METHOD: + return METHOD_EDEFAULT == null ? method != null : !METHOD_EDEFAULT.equals(method); + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__RETURN_TYPE: + return getReturnType() != null; + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__SIGNATURE: + return SIGNATURE_EDEFAULT == null ? signature != null : !SIGNATURE_EDEFAULT.equals(signature); + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__CLASS_NAME: + return CLASS_NAME_EDEFAULT == null ? className != null : !CLASS_NAME_EDEFAULT.equals(className); + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__METHOD_NAME: + return METHOD_NAME_EDEFAULT == null ? methodName != null : !METHOD_NAME_EDEFAULT.equals(methodName); + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__CONTRIBUTING_PLUGIN: + return CONTRIBUTING_PLUGIN_EDEFAULT == null ? contributingPlugin != null : !CONTRIBUTING_PLUGIN_EDEFAULT.equals(contributingPlugin); + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__EXT_POINT_DEFINITION: + return EXT_POINT_DEFINITION_EDEFAULT == null ? extPointDefinition != null : !EXT_POINT_DEFINITION_EDEFAULT.equals(extPointDefinition); + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__FUNCTION_ARGUMENTS: + return functionArguments != null && !functionArguments.isEmpty(); + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION__JAVA_METHOD_ARGUMENTS: + return javaMethodArguments != null && !javaMethodArguments.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(", class: "); + result.append(class_); + result.append(", method: "); + result.append(method); + result.append(", signature: "); + result.append(signature); + result.append(", className: "); + result.append(className); + result.append(", methodName: "); + result.append(methodName); + result.append(", contributingPlugin: "); + result.append(contributingPlugin); + result.append(", extPointDefinition: "); + result.append(extPointDefinition); + result.append(')'); + return result.toString(); + } + +} //ExternalFunctionDefinitionImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/ExternalFunctionsFactoryImpl.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/ExternalFunctionsFactoryImpl.java new file mode 100644 index 000000000..26adec7f4 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/ExternalFunctionsFactoryImpl.java @@ -0,0 +1,169 @@ +/** + */ +package org.eclipse.stem.model.ctdl.functions.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.impl.EFactoryImpl; +import org.eclipse.emf.ecore.plugin.EcorePlugin; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionsFactory; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage; +import org.eclipse.stem.model.ctdl.functions.FunctionArgument; +import org.eclipse.stem.model.ctdl.functions.FunctionArgumentReference; +import org.eclipse.stem.model.ctdl.functions.JavaMethodArgument; +import org.eclipse.stem.model.ctdl.functions.SystemArgumentReference; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Factory</b>. + * <!-- end-user-doc --> + * @generated + */ +public class ExternalFunctionsFactoryImpl extends EFactoryImpl implements ExternalFunctionsFactory { + /** + * Creates the default factory implementation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static ExternalFunctionsFactory init() { + try { + ExternalFunctionsFactory theExternalFunctionsFactory = (ExternalFunctionsFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/stem/model/ctdl/functions.ecore"); + if (theExternalFunctionsFactory != null) { + return theExternalFunctionsFactory; + } + } + catch (Exception exception) { + EcorePlugin.INSTANCE.log(exception); + } + return new ExternalFunctionsFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExternalFunctionsFactoryImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EObject create(EClass eClass) { + switch (eClass.getClassifierID()) { + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION: return createExternalFunctionDefinition(); + case ExternalFunctionsPackage.FUNCTION_ARGUMENT: return createFunctionArgument(); + case ExternalFunctionsPackage.JAVA_METHOD_ARGUMENT: return createJavaMethodArgument(); + case ExternalFunctionsPackage.SYSTEM_ARGUMENT_REFERENCE: return createSystemArgumentReference(); + case ExternalFunctionsPackage.FUNCTION_ARGUMENT_REFERENCE: return createFunctionArgumentReference(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object createFromString(EDataType eDataType, String initialValue) { + switch (eDataType.getClassifierID()) { + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String convertToString(EDataType eDataType, Object instanceValue) { + switch (eDataType.getClassifierID()) { + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExternalFunctionDefinition createExternalFunctionDefinition() { + ExternalFunctionDefinitionImpl externalFunctionDefinition = new ExternalFunctionDefinitionImpl(); + return externalFunctionDefinition; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FunctionArgument createFunctionArgument() { + FunctionArgumentImpl functionArgument = new FunctionArgumentImpl(); + return functionArgument; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public JavaMethodArgument createJavaMethodArgument() { + JavaMethodArgumentImpl javaMethodArgument = new JavaMethodArgumentImpl(); + return javaMethodArgument; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SystemArgumentReference createSystemArgumentReference() { + SystemArgumentReferenceImpl systemArgumentReference = new SystemArgumentReferenceImpl(); + return systemArgumentReference; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FunctionArgumentReference createFunctionArgumentReference() { + FunctionArgumentReferenceImpl functionArgumentReference = new FunctionArgumentReferenceImpl(); + return functionArgumentReference; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExternalFunctionsPackage getExternalFunctionsPackage() { + return (ExternalFunctionsPackage)getEPackage(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @deprecated + * @generated + */ + @Deprecated + public static ExternalFunctionsPackage getPackage() { + return ExternalFunctionsPackage.eINSTANCE; + } + +} //ExternalFunctionsFactoryImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/ExternalFunctionsPackageImpl.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/ExternalFunctionsPackageImpl.java new file mode 100644 index 000000000..bf8de42d0 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/ExternalFunctionsPackageImpl.java @@ -0,0 +1,500 @@ +/** + */ +package org.eclipse.stem.model.ctdl.functions.impl; + +import java.lang.reflect.Method; + +import org.eclipse.core.runtime.IConfigurationElement; +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EGenericType; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.impl.EPackageImpl; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionsFactory; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage; +import org.eclipse.stem.model.ctdl.functions.FunctionArgument; +import org.eclipse.stem.model.ctdl.functions.FunctionArgumentReference; +import org.eclipse.stem.model.ctdl.functions.JavaMethodArgument; +import org.eclipse.stem.model.ctdl.functions.SystemArgumentReference; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Package</b>. + * <!-- end-user-doc --> + * @generated + */ +public class ExternalFunctionsPackageImpl extends EPackageImpl implements ExternalFunctionsPackage { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass externalFunctionDefinitionEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass functionArgumentEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass javaMethodArgumentEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass systemArgumentReferenceEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass functionArgumentReferenceEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EDataType iConfigurationElementEDataType = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EDataType methodEDataType = null; + + /** + * Creates an instance of the model <b>Package</b>, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + * <p>Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage#eNS_URI + * @see #init() + * @generated + */ + private ExternalFunctionsPackageImpl() { + super(eNS_URI, ExternalFunctionsFactory.eINSTANCE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. + * + * <p>This method is used to initialize {@link ExternalFunctionsPackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static ExternalFunctionsPackage init() { + if (isInited) return (ExternalFunctionsPackage)EPackage.Registry.INSTANCE.getEPackage(ExternalFunctionsPackage.eNS_URI); + + // Obtain or create and register package + ExternalFunctionsPackageImpl theExternalFunctionsPackage = (ExternalFunctionsPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ExternalFunctionsPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ExternalFunctionsPackageImpl()); + + isInited = true; + + // Create package meta-data objects + theExternalFunctionsPackage.createPackageContents(); + + // Initialize created meta-data + theExternalFunctionsPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theExternalFunctionsPackage.freeze(); + + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(ExternalFunctionsPackage.eNS_URI, theExternalFunctionsPackage); + return theExternalFunctionsPackage; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getExternalFunctionDefinition() { + return externalFunctionDefinitionEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExternalFunctionDefinition_Name() { + return (EAttribute)externalFunctionDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExternalFunctionDefinition_Class() { + return (EAttribute)externalFunctionDefinitionEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExternalFunctionDefinition_Method() { + return (EAttribute)externalFunctionDefinitionEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExternalFunctionDefinition_ReturnType() { + return (EAttribute)externalFunctionDefinitionEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExternalFunctionDefinition_Signature() { + return (EAttribute)externalFunctionDefinitionEClass.getEStructuralFeatures().get(4); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExternalFunctionDefinition_ClassName() { + return (EAttribute)externalFunctionDefinitionEClass.getEStructuralFeatures().get(5); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExternalFunctionDefinition_MethodName() { + return (EAttribute)externalFunctionDefinitionEClass.getEStructuralFeatures().get(6); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExternalFunctionDefinition_ContributingPlugin() { + return (EAttribute)externalFunctionDefinitionEClass.getEStructuralFeatures().get(7); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExternalFunctionDefinition_ExtPointDefinition() { + return (EAttribute)externalFunctionDefinitionEClass.getEStructuralFeatures().get(8); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExternalFunctionDefinition_FunctionArguments() { + return (EReference)externalFunctionDefinitionEClass.getEStructuralFeatures().get(9); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExternalFunctionDefinition_JavaMethodArguments() { + return (EReference)externalFunctionDefinitionEClass.getEStructuralFeatures().get(10); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getFunctionArgument() { + return functionArgumentEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getFunctionArgument_Name() { + return (EAttribute)functionArgumentEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getFunctionArgument_Type() { + return (EAttribute)functionArgumentEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getJavaMethodArgument() { + return javaMethodArgumentEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getJavaMethodArgument_MapsFrom() { + return (EAttribute)javaMethodArgumentEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getJavaMethodArgument_Type() { + return (EAttribute)javaMethodArgumentEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getSystemArgumentReference() { + return systemArgumentReferenceEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getSystemArgumentReference_Ref() { + return (EReference)systemArgumentReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getFunctionArgumentReference() { + return functionArgumentReferenceEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getFunctionArgumentReference_ArgIndex() { + return (EAttribute)functionArgumentReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getFunctionArgumentReference_Ref() { + return (EReference)functionArgumentReferenceEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EDataType getIConfigurationElement() { + return iConfigurationElementEDataType; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EDataType getMethod() { + return methodEDataType; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExternalFunctionsFactory getExternalFunctionsFactory() { + return (ExternalFunctionsFactory)getEFactoryInstance(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createPackageContents() { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + externalFunctionDefinitionEClass = createEClass(EXTERNAL_FUNCTION_DEFINITION); + createEAttribute(externalFunctionDefinitionEClass, EXTERNAL_FUNCTION_DEFINITION__NAME); + createEAttribute(externalFunctionDefinitionEClass, EXTERNAL_FUNCTION_DEFINITION__CLASS); + createEAttribute(externalFunctionDefinitionEClass, EXTERNAL_FUNCTION_DEFINITION__METHOD); + createEAttribute(externalFunctionDefinitionEClass, EXTERNAL_FUNCTION_DEFINITION__RETURN_TYPE); + createEAttribute(externalFunctionDefinitionEClass, EXTERNAL_FUNCTION_DEFINITION__SIGNATURE); + createEAttribute(externalFunctionDefinitionEClass, EXTERNAL_FUNCTION_DEFINITION__CLASS_NAME); + createEAttribute(externalFunctionDefinitionEClass, EXTERNAL_FUNCTION_DEFINITION__METHOD_NAME); + createEAttribute(externalFunctionDefinitionEClass, EXTERNAL_FUNCTION_DEFINITION__CONTRIBUTING_PLUGIN); + createEAttribute(externalFunctionDefinitionEClass, EXTERNAL_FUNCTION_DEFINITION__EXT_POINT_DEFINITION); + createEReference(externalFunctionDefinitionEClass, EXTERNAL_FUNCTION_DEFINITION__FUNCTION_ARGUMENTS); + createEReference(externalFunctionDefinitionEClass, EXTERNAL_FUNCTION_DEFINITION__JAVA_METHOD_ARGUMENTS); + + functionArgumentEClass = createEClass(FUNCTION_ARGUMENT); + createEAttribute(functionArgumentEClass, FUNCTION_ARGUMENT__NAME); + createEAttribute(functionArgumentEClass, FUNCTION_ARGUMENT__TYPE); + + javaMethodArgumentEClass = createEClass(JAVA_METHOD_ARGUMENT); + createEAttribute(javaMethodArgumentEClass, JAVA_METHOD_ARGUMENT__MAPS_FROM); + createEAttribute(javaMethodArgumentEClass, JAVA_METHOD_ARGUMENT__TYPE); + + systemArgumentReferenceEClass = createEClass(SYSTEM_ARGUMENT_REFERENCE); + createEReference(systemArgumentReferenceEClass, SYSTEM_ARGUMENT_REFERENCE__REF); + + functionArgumentReferenceEClass = createEClass(FUNCTION_ARGUMENT_REFERENCE); + createEAttribute(functionArgumentReferenceEClass, FUNCTION_ARGUMENT_REFERENCE__ARG_INDEX); + createEReference(functionArgumentReferenceEClass, FUNCTION_ARGUMENT_REFERENCE__REF); + + // Create data types + iConfigurationElementEDataType = createEDataType(ICONFIGURATION_ELEMENT); + methodEDataType = createEDataType(METHOD); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void initializePackageContents() { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + systemArgumentReferenceEClass.getESuperTypes().add(this.getJavaMethodArgument()); + functionArgumentReferenceEClass.getESuperTypes().add(this.getJavaMethodArgument()); + + // Initialize classes and features; add operations and parameters + initEClass(externalFunctionDefinitionEClass, ExternalFunctionDefinition.class, "ExternalFunctionDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getExternalFunctionDefinition_Name(), ecorePackage.getEString(), "name", null, 0, 1, ExternalFunctionDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + EGenericType g1 = createEGenericType(ecorePackage.getEJavaClass()); + EGenericType g2 = createEGenericType(); + g1.getETypeArguments().add(g2); + initEAttribute(getExternalFunctionDefinition_Class(), g1, "class", null, 0, 1, ExternalFunctionDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExternalFunctionDefinition_Method(), this.getMethod(), "method", null, 0, 1, ExternalFunctionDefinition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + g1 = createEGenericType(ecorePackage.getEJavaClass()); + g2 = createEGenericType(); + g1.getETypeArguments().add(g2); + initEAttribute(getExternalFunctionDefinition_ReturnType(), g1, "returnType", null, 0, 1, ExternalFunctionDefinition.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEAttribute(getExternalFunctionDefinition_Signature(), ecorePackage.getEString(), "signature", null, 0, 1, ExternalFunctionDefinition.class, IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEAttribute(getExternalFunctionDefinition_ClassName(), ecorePackage.getEString(), "className", "", 0, 1, ExternalFunctionDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExternalFunctionDefinition_MethodName(), ecorePackage.getEString(), "methodName", null, 0, 1, ExternalFunctionDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExternalFunctionDefinition_ContributingPlugin(), ecorePackage.getEString(), "contributingPlugin", null, 0, 1, ExternalFunctionDefinition.class, IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEAttribute(getExternalFunctionDefinition_ExtPointDefinition(), this.getIConfigurationElement(), "extPointDefinition", null, 0, 1, ExternalFunctionDefinition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExternalFunctionDefinition_FunctionArguments(), this.getFunctionArgument(), null, "functionArguments", null, 0, -1, ExternalFunctionDefinition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExternalFunctionDefinition_JavaMethodArguments(), this.getJavaMethodArgument(), null, "javaMethodArguments", null, 0, -1, ExternalFunctionDefinition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(functionArgumentEClass, FunctionArgument.class, "FunctionArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getFunctionArgument_Name(), ecorePackage.getEString(), "name", null, 0, 1, FunctionArgument.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getFunctionArgument_Type(), ecorePackage.getEString(), "type", null, 0, 1, FunctionArgument.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(javaMethodArgumentEClass, JavaMethodArgument.class, "JavaMethodArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getJavaMethodArgument_MapsFrom(), ecorePackage.getEString(), "mapsFrom", null, 0, 1, JavaMethodArgument.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getJavaMethodArgument_Type(), ecorePackage.getEString(), "type", null, 0, 1, JavaMethodArgument.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(systemArgumentReferenceEClass, SystemArgumentReference.class, "SystemArgumentReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getSystemArgumentReference_Ref(), ecorePackage.getEObject(), null, "ref", null, 0, 1, SystemArgumentReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(functionArgumentReferenceEClass, FunctionArgumentReference.class, "FunctionArgumentReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getFunctionArgumentReference_ArgIndex(), ecorePackage.getEInt(), "argIndex", null, 0, 1, FunctionArgumentReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getFunctionArgumentReference_Ref(), this.getFunctionArgument(), null, "ref", null, 0, 1, FunctionArgumentReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Initialize data types + initEDataType(iConfigurationElementEDataType, IConfigurationElement.class, "IConfigurationElement", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); + initEDataType(methodEDataType, Method.class, "Method", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); + + // Create resource + createResource(eNS_URI); + } + +} //ExternalFunctionsPackageImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/FunctionArgumentImpl.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/FunctionArgumentImpl.java new file mode 100644 index 000000000..4e8bcb4d9 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/FunctionArgumentImpl.java @@ -0,0 +1,214 @@ +/** + */ +package org.eclipse.stem.model.ctdl.functions.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage; +import org.eclipse.stem.model.ctdl.functions.FunctionArgument; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Function Argument</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.functions.impl.FunctionArgumentImpl#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.impl.FunctionArgumentImpl#getType <em>Type</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class FunctionArgumentImpl extends EObjectImpl implements FunctionArgument { + /** + * The default value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * The default value of the '{@link #getType() <em>Type</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getType() + * @generated + * @ordered + */ + protected static final String TYPE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getType() <em>Type</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getType() + * @generated + * @ordered + */ + protected String type = TYPE_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected FunctionArgumentImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExternalFunctionsPackage.Literals.FUNCTION_ARGUMENT; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setName(String newName) { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExternalFunctionsPackage.FUNCTION_ARGUMENT__NAME, oldName, name)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getType() { + return type; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setType(String newType) { + String oldType = type; + type = newType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExternalFunctionsPackage.FUNCTION_ARGUMENT__TYPE, oldType, type)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ExternalFunctionsPackage.FUNCTION_ARGUMENT__NAME: + return getName(); + case ExternalFunctionsPackage.FUNCTION_ARGUMENT__TYPE: + return getType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ExternalFunctionsPackage.FUNCTION_ARGUMENT__NAME: + setName((String)newValue); + return; + case ExternalFunctionsPackage.FUNCTION_ARGUMENT__TYPE: + setType((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ExternalFunctionsPackage.FUNCTION_ARGUMENT__NAME: + setName(NAME_EDEFAULT); + return; + case ExternalFunctionsPackage.FUNCTION_ARGUMENT__TYPE: + setType(TYPE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ExternalFunctionsPackage.FUNCTION_ARGUMENT__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case ExternalFunctionsPackage.FUNCTION_ARGUMENT__TYPE: + return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(", type: "); + result.append(type); + result.append(')'); + return result.toString(); + } + +} //FunctionArgumentImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/FunctionArgumentReferenceImpl.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/FunctionArgumentReferenceImpl.java new file mode 100644 index 000000000..5d63001fd --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/FunctionArgumentReferenceImpl.java @@ -0,0 +1,221 @@ +/** + */ +package org.eclipse.stem.model.ctdl.functions.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage; +import org.eclipse.stem.model.ctdl.functions.FunctionArgument; +import org.eclipse.stem.model.ctdl.functions.FunctionArgumentReference; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Function Argument Reference</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.functions.impl.FunctionArgumentReferenceImpl#getArgIndex <em>Arg Index</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.impl.FunctionArgumentReferenceImpl#getRef <em>Ref</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class FunctionArgumentReferenceImpl extends JavaMethodArgumentImpl implements FunctionArgumentReference { + /** + * The default value of the '{@link #getArgIndex() <em>Arg Index</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getArgIndex() + * @generated + * @ordered + */ + protected static final int ARG_INDEX_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getArgIndex() <em>Arg Index</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getArgIndex() + * @generated + * @ordered + */ + protected int argIndex = ARG_INDEX_EDEFAULT; + + /** + * The cached value of the '{@link #getRef() <em>Ref</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRef() + * @generated + * @ordered + */ + protected FunctionArgument ref; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected FunctionArgumentReferenceImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExternalFunctionsPackage.Literals.FUNCTION_ARGUMENT_REFERENCE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getArgIndex() { + return argIndex; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setArgIndex(int newArgIndex) { + int oldArgIndex = argIndex; + argIndex = newArgIndex; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExternalFunctionsPackage.FUNCTION_ARGUMENT_REFERENCE__ARG_INDEX, oldArgIndex, argIndex)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FunctionArgument getRef() { + if (ref != null && ref.eIsProxy()) { + InternalEObject oldRef = (InternalEObject)ref; + ref = (FunctionArgument)eResolveProxy(oldRef); + if (ref != oldRef) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExternalFunctionsPackage.FUNCTION_ARGUMENT_REFERENCE__REF, oldRef, ref)); + } + } + return ref; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FunctionArgument basicGetRef() { + return ref; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setRef(FunctionArgument newRef) { + FunctionArgument oldRef = ref; + ref = newRef; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExternalFunctionsPackage.FUNCTION_ARGUMENT_REFERENCE__REF, oldRef, ref)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ExternalFunctionsPackage.FUNCTION_ARGUMENT_REFERENCE__ARG_INDEX: + return getArgIndex(); + case ExternalFunctionsPackage.FUNCTION_ARGUMENT_REFERENCE__REF: + if (resolve) return getRef(); + return basicGetRef(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ExternalFunctionsPackage.FUNCTION_ARGUMENT_REFERENCE__ARG_INDEX: + setArgIndex((Integer)newValue); + return; + case ExternalFunctionsPackage.FUNCTION_ARGUMENT_REFERENCE__REF: + setRef((FunctionArgument)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ExternalFunctionsPackage.FUNCTION_ARGUMENT_REFERENCE__ARG_INDEX: + setArgIndex(ARG_INDEX_EDEFAULT); + return; + case ExternalFunctionsPackage.FUNCTION_ARGUMENT_REFERENCE__REF: + setRef((FunctionArgument)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ExternalFunctionsPackage.FUNCTION_ARGUMENT_REFERENCE__ARG_INDEX: + return argIndex != ARG_INDEX_EDEFAULT; + case ExternalFunctionsPackage.FUNCTION_ARGUMENT_REFERENCE__REF: + return ref != null; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (argIndex: "); + result.append(argIndex); + result.append(')'); + return result.toString(); + } + +} //FunctionArgumentReferenceImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/JavaMethodArgumentImpl.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/JavaMethodArgumentImpl.java new file mode 100644 index 000000000..1c96cb5b8 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/JavaMethodArgumentImpl.java @@ -0,0 +1,214 @@ +/** + */ +package org.eclipse.stem.model.ctdl.functions.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage; +import org.eclipse.stem.model.ctdl.functions.JavaMethodArgument; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Java Method Argument</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.functions.impl.JavaMethodArgumentImpl#getMapsFrom <em>Maps From</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.functions.impl.JavaMethodArgumentImpl#getType <em>Type</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class JavaMethodArgumentImpl extends EObjectImpl implements JavaMethodArgument { + /** + * The default value of the '{@link #getMapsFrom() <em>Maps From</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMapsFrom() + * @generated + * @ordered + */ + protected static final String MAPS_FROM_EDEFAULT = null; + + /** + * The cached value of the '{@link #getMapsFrom() <em>Maps From</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMapsFrom() + * @generated + * @ordered + */ + protected String mapsFrom = MAPS_FROM_EDEFAULT; + + /** + * The default value of the '{@link #getType() <em>Type</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getType() + * @generated + * @ordered + */ + protected static final String TYPE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getType() <em>Type</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getType() + * @generated + * @ordered + */ + protected String type = TYPE_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected JavaMethodArgumentImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExternalFunctionsPackage.Literals.JAVA_METHOD_ARGUMENT; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getMapsFrom() { + return mapsFrom; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setMapsFrom(String newMapsFrom) { + String oldMapsFrom = mapsFrom; + mapsFrom = newMapsFrom; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExternalFunctionsPackage.JAVA_METHOD_ARGUMENT__MAPS_FROM, oldMapsFrom, mapsFrom)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getType() { + return type; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setType(String newType) { + String oldType = type; + type = newType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExternalFunctionsPackage.JAVA_METHOD_ARGUMENT__TYPE, oldType, type)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ExternalFunctionsPackage.JAVA_METHOD_ARGUMENT__MAPS_FROM: + return getMapsFrom(); + case ExternalFunctionsPackage.JAVA_METHOD_ARGUMENT__TYPE: + return getType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ExternalFunctionsPackage.JAVA_METHOD_ARGUMENT__MAPS_FROM: + setMapsFrom((String)newValue); + return; + case ExternalFunctionsPackage.JAVA_METHOD_ARGUMENT__TYPE: + setType((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ExternalFunctionsPackage.JAVA_METHOD_ARGUMENT__MAPS_FROM: + setMapsFrom(MAPS_FROM_EDEFAULT); + return; + case ExternalFunctionsPackage.JAVA_METHOD_ARGUMENT__TYPE: + setType(TYPE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ExternalFunctionsPackage.JAVA_METHOD_ARGUMENT__MAPS_FROM: + return MAPS_FROM_EDEFAULT == null ? mapsFrom != null : !MAPS_FROM_EDEFAULT.equals(mapsFrom); + case ExternalFunctionsPackage.JAVA_METHOD_ARGUMENT__TYPE: + return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (mapsFrom: "); + result.append(mapsFrom); + result.append(", type: "); + result.append(type); + result.append(')'); + return result.toString(); + } + +} //JavaMethodArgumentImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/SystemArgumentReferenceImpl.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/SystemArgumentReferenceImpl.java new file mode 100644 index 000000000..0278e7c4d --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/impl/SystemArgumentReferenceImpl.java @@ -0,0 +1,153 @@ +/** + */ +package org.eclipse.stem.model.ctdl.functions.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage; +import org.eclipse.stem.model.ctdl.functions.SystemArgumentReference; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>System Argument Reference</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.functions.impl.SystemArgumentReferenceImpl#getRef <em>Ref</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class SystemArgumentReferenceImpl extends JavaMethodArgumentImpl implements SystemArgumentReference { + /** + * The cached value of the '{@link #getRef() <em>Ref</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRef() + * @generated + * @ordered + */ + protected EObject ref; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected SystemArgumentReferenceImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExternalFunctionsPackage.Literals.SYSTEM_ARGUMENT_REFERENCE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EObject getRef() { + if (ref != null && ref.eIsProxy()) { + InternalEObject oldRef = (InternalEObject)ref; + ref = eResolveProxy(oldRef); + if (ref != oldRef) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExternalFunctionsPackage.SYSTEM_ARGUMENT_REFERENCE__REF, oldRef, ref)); + } + } + return ref; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EObject basicGetRef() { + return ref; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setRef(EObject newRef) { + EObject oldRef = ref; + ref = newRef; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExternalFunctionsPackage.SYSTEM_ARGUMENT_REFERENCE__REF, oldRef, ref)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ExternalFunctionsPackage.SYSTEM_ARGUMENT_REFERENCE__REF: + if (resolve) return getRef(); + return basicGetRef(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ExternalFunctionsPackage.SYSTEM_ARGUMENT_REFERENCE__REF: + setRef((EObject)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ExternalFunctionsPackage.SYSTEM_ARGUMENT_REFERENCE__REF: + setRef((EObject)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ExternalFunctionsPackage.SYSTEM_ARGUMENT_REFERENCE__REF: + return ref != null; + } + return super.eIsSet(featureID); + } + +} //SystemArgumentReferenceImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/util/ExternalFunctionsAdapterFactory.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/util/ExternalFunctionsAdapterFactory.java new file mode 100644 index 000000000..9d1218b7d --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/util/ExternalFunctionsAdapterFactory.java @@ -0,0 +1,194 @@ +/** + */ +package org.eclipse.stem.model.ctdl.functions.util; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage; +import org.eclipse.stem.model.ctdl.functions.FunctionArgument; +import org.eclipse.stem.model.ctdl.functions.FunctionArgumentReference; +import org.eclipse.stem.model.ctdl.functions.JavaMethodArgument; +import org.eclipse.stem.model.ctdl.functions.SystemArgumentReference; + +/** + * <!-- begin-user-doc --> + * The <b>Adapter Factory</b> for the model. + * It provides an adapter <code>createXXX</code> method for each class of the model. + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage + * @generated + */ +public class ExternalFunctionsAdapterFactory extends AdapterFactoryImpl { + /** + * The cached model package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static ExternalFunctionsPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExternalFunctionsAdapterFactory() { + if (modelPackage == null) { + modelPackage = ExternalFunctionsPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * <!-- begin-user-doc --> + * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model. + * <!-- end-user-doc --> + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) { + if (object == modelPackage) { + return true; + } + if (object instanceof EObject) { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch that delegates to the <code>createXXX</code> methods. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ExternalFunctionsSwitch<Adapter> modelSwitch = + new ExternalFunctionsSwitch<Adapter>() { + @Override + public Adapter caseExternalFunctionDefinition(ExternalFunctionDefinition object) { + return createExternalFunctionDefinitionAdapter(); + } + @Override + public Adapter caseFunctionArgument(FunctionArgument object) { + return createFunctionArgumentAdapter(); + } + @Override + public Adapter caseJavaMethodArgument(JavaMethodArgument object) { + return createJavaMethodArgumentAdapter(); + } + @Override + public Adapter caseSystemArgumentReference(SystemArgumentReference object) { + return createSystemArgumentReferenceAdapter(); + } + @Override + public Adapter caseFunctionArgumentReference(FunctionArgumentReference object) { + return createFunctionArgumentReferenceAdapter(); + } + @Override + public Adapter defaultCase(EObject object) { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the <code>target</code>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param target the object to adapt. + * @return the adapter for the <code>target</code>. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) { + return modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition <em>External Function Definition</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition + * @generated + */ + public Adapter createExternalFunctionDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.functions.FunctionArgument <em>Function Argument</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.functions.FunctionArgument + * @generated + */ + public Adapter createFunctionArgumentAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.functions.JavaMethodArgument <em>Java Method Argument</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.functions.JavaMethodArgument + * @generated + */ + public Adapter createJavaMethodArgumentAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.functions.SystemArgumentReference <em>System Argument Reference</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.functions.SystemArgumentReference + * @generated + */ + public Adapter createSystemArgumentReferenceAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.functions.FunctionArgumentReference <em>Function Argument Reference</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.functions.FunctionArgumentReference + * @generated + */ + public Adapter createFunctionArgumentReferenceAdapter() { + return null; + } + + /** + * Creates a new adapter for the default case. + * <!-- begin-user-doc --> + * This default implementation returns null. + * <!-- end-user-doc --> + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() { + return null; + } + +} //ExternalFunctionsAdapterFactory diff --git a/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/util/ExternalFunctionsSwitch.java b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/util/ExternalFunctionsSwitch.java new file mode 100644 index 000000000..a2b5ad1ce --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.functions/src/org/eclipse/stem/model/ctdl/functions/util/ExternalFunctionsSwitch.java @@ -0,0 +1,199 @@ +/** + */ +package org.eclipse.stem.model.ctdl.functions.util; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.util.Switch; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage; +import org.eclipse.stem.model.ctdl.functions.FunctionArgument; +import org.eclipse.stem.model.ctdl.functions.FunctionArgumentReference; +import org.eclipse.stem.model.ctdl.functions.JavaMethodArgument; +import org.eclipse.stem.model.ctdl.functions.SystemArgumentReference; + +/** + * <!-- begin-user-doc --> + * The <b>Switch</b> for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the <code>caseXXX</code> method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage + * @generated + */ +public class ExternalFunctionsSwitch<T> extends Switch<T> { + /** + * The cached model package + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static ExternalFunctionsPackage modelPackage; + + /** + * Creates an instance of the switch. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExternalFunctionsSwitch() { + if (modelPackage == null) { + modelPackage = ExternalFunctionsPackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @parameter ePackage the package in question. + * @return whether this is a switch for the given package. + * @generated + */ + @Override + protected boolean isSwitchFor(EPackage ePackage) { + return ePackage == modelPackage; + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + @Override + protected T doSwitch(int classifierID, EObject theEObject) { + switch (classifierID) { + case ExternalFunctionsPackage.EXTERNAL_FUNCTION_DEFINITION: { + ExternalFunctionDefinition externalFunctionDefinition = (ExternalFunctionDefinition)theEObject; + T result = caseExternalFunctionDefinition(externalFunctionDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExternalFunctionsPackage.FUNCTION_ARGUMENT: { + FunctionArgument functionArgument = (FunctionArgument)theEObject; + T result = caseFunctionArgument(functionArgument); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExternalFunctionsPackage.JAVA_METHOD_ARGUMENT: { + JavaMethodArgument javaMethodArgument = (JavaMethodArgument)theEObject; + T result = caseJavaMethodArgument(javaMethodArgument); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExternalFunctionsPackage.SYSTEM_ARGUMENT_REFERENCE: { + SystemArgumentReference systemArgumentReference = (SystemArgumentReference)theEObject; + T result = caseSystemArgumentReference(systemArgumentReference); + if (result == null) result = caseJavaMethodArgument(systemArgumentReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExternalFunctionsPackage.FUNCTION_ARGUMENT_REFERENCE: { + FunctionArgumentReference functionArgumentReference = (FunctionArgumentReference)theEObject; + T result = caseFunctionArgumentReference(functionArgumentReference); + if (result == null) result = caseJavaMethodArgument(functionArgumentReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of '<em>External Function Definition</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>External Function Definition</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseExternalFunctionDefinition(ExternalFunctionDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Function Argument</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Function Argument</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFunctionArgument(FunctionArgument object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Java Method Argument</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Java Method Argument</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseJavaMethodArgument(JavaMethodArgument object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>System Argument Reference</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>System Argument Reference</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSystemArgumentReference(SystemArgumentReference object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Function Argument Reference</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Function Argument Reference</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFunctionArgumentReference(FunctionArgumentReference object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>EObject</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + @Override + public T defaultCase(EObject object) { + return null; + } + +} //ExternalFunctionsSwitch diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/.classpath b/modelgen/org.eclipse.stem.model.ctdl.ui/.classpath new file mode 100644 index 000000000..5d0495ecf --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/.classpath @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="src" path="src-gen"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/.project b/modelgen/org.eclipse.stem.model.ctdl.ui/.project new file mode 100644 index 000000000..7361e87a0 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.stem.model.ctdl.ui</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + </natures> +</projectDescription> diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/.settings/org.eclipse.jdt.core.prefs b/modelgen/org.eclipse.stem.model.ctdl.ui/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..c537b6306 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/META-INF/MANIFEST.MF b/modelgen/org.eclipse.stem.model.ctdl.ui/META-INF/MANIFEST.MF new file mode 100644 index 000000000..69a3e8750 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/META-INF/MANIFEST.MF @@ -0,0 +1,27 @@ +Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.stem.model.ctdl.ui
+Bundle-Vendor: Eclipse.org
+Bundle-Version: 2.0.0.qualifier
+Bundle-SymbolicName: org.eclipse.stem.model.ctdl.ui; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.stem.model.ctdl;visibility:=reexport,
+ org.eclipse.xtext.ui,
+ org.eclipse.ui.editors;bundle-version="3.5.0",
+ org.eclipse.ui.ide;bundle-version="3.5.0",
+ org.eclipse.xtext.ui.shared,
+ org.eclipse.ui,
+ org.eclipse.xtext.builder,
+ org.antlr.runtime,
+ org.eclipse.xtext.common.types.ui,
+ org.eclipse.xtext.ui.codetemplates.ui,
+ org.eclipse.compare,
+ org.eclipse.stem.model
+Import-Package: org.apache.log4j
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6,
+ J2SE-1.5
+Export-Package: org.eclipse.stem.model.ctdl.ui.contentassist,
+ org.eclipse.stem.model.ctdl.ui.contentassist.antlr,
+ org.eclipse.stem.model.ctdl.ui.embed,
+ org.eclipse.stem.model.ctdl.ui.internal
+Bundle-Activator: org.eclipse.stem.model.ctdl.ui.internal.CTDLActivator
diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/build.properties b/modelgen/org.eclipse.stem.model.ctdl.ui/build.properties new file mode 100644 index 000000000..cb4d0e07f --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/build.properties @@ -0,0 +1,8 @@ +source.. = src/,\ + src-gen/ +bin.includes = META-INF/,\ + .,\ + plugin.xml + +javacSource=1.6 +javacTarget=1.6
\ No newline at end of file diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/plugin.xml b/modelgen/org.eclipse.stem.model.ctdl.ui/plugin.xml new file mode 100644 index 000000000..92c0f15e4 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/plugin.xml @@ -0,0 +1,332 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.0"?> + +<plugin> + + <extension + point="org.eclipse.ui.views"> + <view + category="org.eclipse.stem.ui.views" + class="org.eclipse.stem.model.ctdl.ui.embed.EmbeddedEditorView" + id="org.eclipse.stem.model.ctdl.ui.embed.embeddedEditorView" + name="CTDL Viewer"/> + </extension> + + <extension + point="org.eclipse.ui.editors"> + <editor + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor" + contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor" + default="true" + extensions="sctd" + id="org.eclipse.stem.model.ctdl.CTDL" + name="CTDL Editor"> + </editor> + </extension> + <extension + point="org.eclipse.ui.handlers"> + <handler + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler" + commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration"> + <activeWhen> + <reference + definitionId="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"> + </reference> + </activeWhen> + </handler> + <handler + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler" + commandId="org.eclipse.stem.model.ctdl.CTDL.validate"> + <activeWhen> + <reference + definitionId="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"> + </reference> + </activeWhen> + </handler> + </extension> + <extension point="org.eclipse.core.expressions.definitions"> + <definition id="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"> + <and> + <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/> + <with variable="activeEditor"> + <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" + value="org.eclipse.stem.model.ctdl.CTDL" + forcePluginActivation="true"/> + </with> + </and> + </definition> + </extension> + <extension + point="org.eclipse.ui.preferencePages"> + <page + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage" + id="org.eclipse.stem.model.ctdl.CTDL" + name="CTDL"> + <keywordReference id="org.eclipse.stem.model.ctdl.ui.keyword_CTDL"/> + </page> + <page + category="org.eclipse.stem.model.ctdl.CTDL" + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage" + id="org.eclipse.stem.model.ctdl.CTDL.coloring" + name="Syntax Coloring"> + <keywordReference id="org.eclipse.stem.model.ctdl.ui.keyword_CTDL"/> + </page> + <page + category="org.eclipse.stem.model.ctdl.CTDL" + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage" + id="org.eclipse.stem.model.ctdl.CTDL.templates" + name="Templates"> + <keywordReference id="org.eclipse.stem.model.ctdl.ui.keyword_CTDL"/> + </page> + </extension> + <extension + point="org.eclipse.ui.propertyPages"> + <page + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage" + id="org.eclipse.stem.model.ctdl.CTDL" + name="CTDL"> + <keywordReference id="org.eclipse.stem.model.ctdl.ui.keyword_CTDL"/> + <enabledWhen> + <adapt type="org.eclipse.core.resources.IProject"/> + </enabledWhen> + <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/> + </page> + </extension> + <extension + point="org.eclipse.ui.keywords"> + <keyword + id="org.eclipse.stem.model.ctdl.ui.keyword_CTDL" + label="CTDL"/> + </extension> + <extension + point="org.eclipse.ui.commands"> + <command + description="Trigger expensive validation" + id="org.eclipse.stem.model.ctdl.CTDL.validate" + name="Validate"> + </command> + </extension> + <extension point="org.eclipse.ui.menus"> + <menuContribution + locationURI="popup:#TextEditorContext?after=group.edit"> + <command + commandId="org.eclipse.stem.model.ctdl.CTDL.validate" + style="push" + tooltip="Trigger expensive validation"> + <visibleWhen checkEnabled="false"> + <reference + definitionId="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"> + </reference> + </visibleWhen> + </command> + </menuContribution> + </extension> + <extension point="org.eclipse.ui.menus"> + <menuContribution locationURI="popup:#TextEditorContext?endof=group.find"> + <command commandId="org.eclipse.xtext.ui.editor.FindReferences"> + <visibleWhen checkEnabled="false"> + <reference definitionId="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"> + </reference> + </visibleWhen> + </command> + </menuContribution> + </extension> + <extension point="org.eclipse.ui.handlers"> + <handler + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler" + commandId="org.eclipse.xtext.ui.editor.FindReferences"> + <activeWhen> + <reference + definitionId="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"> + </reference> + </activeWhen> + </handler> + </extension> + +<!-- adding resource factories --> + + <extension + point="org.eclipse.emf.ecore.extension_parser"> + <parser + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory" + type="sctd"> + </parser> + </extension> + <extension point="org.eclipse.xtext.extension_resourceServiceProvider"> + <resourceServiceProvider + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider" + uriExtension="sctd"> + </resourceServiceProvider> + </extension> + + + <!-- marker definitions for org.eclipse.stem.model.ctdl.CTDL --> + <extension + id="ctdl.check.fast" + name="CTDL Problem" + point="org.eclipse.core.resources.markers"> + <super type="org.eclipse.xtext.ui.check.fast"/> + <persistent value="true"/> + </extension> + <extension + id="ctdl.check.normal" + name="CTDL Problem" + point="org.eclipse.core.resources.markers"> + <super type="org.eclipse.xtext.ui.check.normal"/> + <persistent value="true"/> + </extension> + <extension + id="ctdl.check.expensive" + name="CTDL Problem" + point="org.eclipse.core.resources.markers"> + <super type="org.eclipse.xtext.ui.check.expensive"/> + <persistent value="true"/> + </extension> + + <extension + point="org.eclipse.xtext.builder.participant"> + <participant + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"> + </participant> + </extension> + <extension + point="org.eclipse.ui.preferencePages"> + <page + category="org.eclipse.stem.model.ctdl.CTDL" + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage" + id="org.eclipse.stem.model.ctdl.CTDL.compiler.preferencePage" + name="Compiler"> + <keywordReference id="org.eclipse.stem.model.ctdl.ui.keyword_CTDL"/> + </page> + </extension> + <extension + point="org.eclipse.ui.propertyPages"> + <page + category="org.eclipse.stem.model.ctdl.CTDL" + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage" + id="org.eclipse.stem.model.ctdl.CTDL.compiler.propertyPage" + name="Compiler"> + <keywordReference id="org.eclipse.stem.model.ctdl.ui.keyword_CTDL"/> + <enabledWhen> + <adapt type="org.eclipse.core.resources.IProject"/> + </enabledWhen> + <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/> + </page> + </extension> + + <!-- Quick Outline --> + <extension + point="org.eclipse.ui.handlers"> + <handler + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler" + commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"> + <activeWhen> + <reference + definitionId="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"> + </reference> + </activeWhen> + </handler> + </extension> + <extension + point="org.eclipse.ui.commands"> + <command + description="Open the quick outline." + id="org.eclipse.xtext.ui.editor.outline.QuickOutline" + name="Quick Outline"> + </command> + </extension> + <extension point="org.eclipse.ui.menus"> + <menuContribution + locationURI="popup:#TextEditorContext?after=group.open"> + <command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline" + style="push" + tooltip="Open Quick Outline"> + <visibleWhen checkEnabled="false"> + <reference definitionId="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"/> + </visibleWhen> + </command> + </menuContribution> + </extension> + <!-- quickfix marker resolution generator for org.eclipse.stem.model.ctdl.CTDL --> + <extension + point="org.eclipse.ui.ide.markerResolution"> + <markerResolutionGenerator + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator" + markerType="org.eclipse.stem.model.ctdl.ui.ctdl.check.fast"> + <attribute + name="FIXABLE_KEY" + value="true"> + </attribute> + </markerResolutionGenerator> + <markerResolutionGenerator + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator" + markerType="org.eclipse.stem.model.ctdl.ui.ctdl.check.normal"> + <attribute + name="FIXABLE_KEY" + value="true"> + </attribute> + </markerResolutionGenerator> + <markerResolutionGenerator + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator" + markerType="org.eclipse.stem.model.ctdl.ui.ctdl.check.expensive"> + <attribute + name="FIXABLE_KEY" + value="true"> + </attribute> + </markerResolutionGenerator> + </extension> + <!-- Rename Refactoring --> + <extension point="org.eclipse.ui.handlers"> + <handler + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.IRenameElementHandler" + commandId="org.eclipse.xtext.ui.refactoring.RenameElement"> + <activeWhen> + <reference + definitionId="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"> + </reference> + </activeWhen> + </handler> + </extension> + <extension point="org.eclipse.ui.menus"> + <menuContribution + locationURI="popup:#TextEditorContext?after=group.edit"> + <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement" + style="push"> + <visibleWhen checkEnabled="false"> + <reference + definitionId="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"> + </reference> + </visibleWhen> + </command> + </menuContribution> + </extension> + <extension point="org.eclipse.ui.preferencePages"> + <page + category="org.eclipse.stem.model.ctdl.CTDL" + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage" + id="org.eclipse.stem.model.ctdl.CTDL.refactoring" + name="Refactoring"> + <keywordReference id="org.eclipse.stem.model.ctdl.ui.keyword_CTDL"/> + </page> + </extension> + + <extension point="org.eclipse.compare.contentViewers"> + <viewer id="org.eclipse.stem.model.ctdl.CTDL.compare.contentViewers" + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator" + extensions="sctd"> + </viewer> + </extension> + <extension point="org.eclipse.compare.contentMergeViewers"> + <viewer id="org.eclipse.stem.model.ctdl.CTDL.compare.contentMergeViewers" + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator" + extensions="sctd" label="CTDL Compare"> + </viewer> + </extension> + <extension point="org.eclipse.ui.editors.documentProviders"> + <provider id="org.eclipse.stem.model.ctdl.CTDL.editors.documentProviders" + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider" + extensions="sctd"> + </provider> + </extension> + +</plugin> diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/plugin.xml_gen b/modelgen/org.eclipse.stem.model.ctdl.ui/plugin.xml_gen new file mode 100644 index 000000000..e9bdb35da --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/plugin.xml_gen @@ -0,0 +1,323 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.0"?> + +<plugin> + + <extension + point="org.eclipse.ui.editors"> + <editor + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor" + contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor" + default="true" + extensions="sctd" + id="org.eclipse.stem.model.ctdl.CTDL" + name="CTDL Editor"> + </editor> + </extension> + <extension + point="org.eclipse.ui.handlers"> + <handler + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler" + commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration"> + <activeWhen> + <reference + definitionId="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"> + </reference> + </activeWhen> + </handler> + <handler + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler" + commandId="org.eclipse.stem.model.ctdl.CTDL.validate"> + <activeWhen> + <reference + definitionId="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"> + </reference> + </activeWhen> + </handler> + </extension> + <extension point="org.eclipse.core.expressions.definitions"> + <definition id="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"> + <and> + <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/> + <with variable="activeEditor"> + <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" + value="org.eclipse.stem.model.ctdl.CTDL" + forcePluginActivation="true"/> + </with> + </and> + </definition> + </extension> + <extension + point="org.eclipse.ui.preferencePages"> + <page + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage" + id="org.eclipse.stem.model.ctdl.CTDL" + name="CTDL"> + <keywordReference id="org.eclipse.stem.model.ctdl.ui.keyword_CTDL"/> + </page> + <page + category="org.eclipse.stem.model.ctdl.CTDL" + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage" + id="org.eclipse.stem.model.ctdl.CTDL.coloring" + name="Syntax Coloring"> + <keywordReference id="org.eclipse.stem.model.ctdl.ui.keyword_CTDL"/> + </page> + <page + category="org.eclipse.stem.model.ctdl.CTDL" + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage" + id="org.eclipse.stem.model.ctdl.CTDL.templates" + name="Templates"> + <keywordReference id="org.eclipse.stem.model.ctdl.ui.keyword_CTDL"/> + </page> + </extension> + <extension + point="org.eclipse.ui.propertyPages"> + <page + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage" + id="org.eclipse.stem.model.ctdl.CTDL" + name="CTDL"> + <keywordReference id="org.eclipse.stem.model.ctdl.ui.keyword_CTDL"/> + <enabledWhen> + <adapt type="org.eclipse.core.resources.IProject"/> + </enabledWhen> + <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/> + </page> + </extension> + <extension + point="org.eclipse.ui.keywords"> + <keyword + id="org.eclipse.stem.model.ctdl.ui.keyword_CTDL" + label="CTDL"/> + </extension> + <extension + point="org.eclipse.ui.commands"> + <command + description="Trigger expensive validation" + id="org.eclipse.stem.model.ctdl.CTDL.validate" + name="Validate"> + </command> + </extension> + <extension point="org.eclipse.ui.menus"> + <menuContribution + locationURI="popup:#TextEditorContext?after=group.edit"> + <command + commandId="org.eclipse.stem.model.ctdl.CTDL.validate" + style="push" + tooltip="Trigger expensive validation"> + <visibleWhen checkEnabled="false"> + <reference + definitionId="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"> + </reference> + </visibleWhen> + </command> + </menuContribution> + </extension> + <extension point="org.eclipse.ui.menus"> + <menuContribution locationURI="popup:#TextEditorContext?endof=group.find"> + <command commandId="org.eclipse.xtext.ui.editor.FindReferences"> + <visibleWhen checkEnabled="false"> + <reference definitionId="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"> + </reference> + </visibleWhen> + </command> + </menuContribution> + </extension> + <extension point="org.eclipse.ui.handlers"> + <handler + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler" + commandId="org.eclipse.xtext.ui.editor.FindReferences"> + <activeWhen> + <reference + definitionId="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"> + </reference> + </activeWhen> + </handler> + </extension> + +<!-- adding resource factories --> + + <extension + point="org.eclipse.emf.ecore.extension_parser"> + <parser + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory" + type="sctd"> + </parser> + </extension> + <extension point="org.eclipse.xtext.extension_resourceServiceProvider"> + <resourceServiceProvider + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider" + uriExtension="sctd"> + </resourceServiceProvider> + </extension> + + + <!-- marker definitions for org.eclipse.stem.model.ctdl.CTDL --> + <extension + id="ctdl.check.fast" + name="CTDL Problem" + point="org.eclipse.core.resources.markers"> + <super type="org.eclipse.xtext.ui.check.fast"/> + <persistent value="true"/> + </extension> + <extension + id="ctdl.check.normal" + name="CTDL Problem" + point="org.eclipse.core.resources.markers"> + <super type="org.eclipse.xtext.ui.check.normal"/> + <persistent value="true"/> + </extension> + <extension + id="ctdl.check.expensive" + name="CTDL Problem" + point="org.eclipse.core.resources.markers"> + <super type="org.eclipse.xtext.ui.check.expensive"/> + <persistent value="true"/> + </extension> + + <extension + point="org.eclipse.xtext.builder.participant"> + <participant + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"> + </participant> + </extension> + <extension + point="org.eclipse.ui.preferencePages"> + <page + category="org.eclipse.stem.model.ctdl.CTDL" + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage" + id="org.eclipse.stem.model.ctdl.CTDL.compiler.preferencePage" + name="Compiler"> + <keywordReference id="org.eclipse.stem.model.ctdl.ui.keyword_CTDL"/> + </page> + </extension> + <extension + point="org.eclipse.ui.propertyPages"> + <page + category="org.eclipse.stem.model.ctdl.CTDL" + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage" + id="org.eclipse.stem.model.ctdl.CTDL.compiler.propertyPage" + name="Compiler"> + <keywordReference id="org.eclipse.stem.model.ctdl.ui.keyword_CTDL"/> + <enabledWhen> + <adapt type="org.eclipse.core.resources.IProject"/> + </enabledWhen> + <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/> + </page> + </extension> + + <!-- Quick Outline --> + <extension + point="org.eclipse.ui.handlers"> + <handler + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler" + commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"> + <activeWhen> + <reference + definitionId="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"> + </reference> + </activeWhen> + </handler> + </extension> + <extension + point="org.eclipse.ui.commands"> + <command + description="Open the quick outline." + id="org.eclipse.xtext.ui.editor.outline.QuickOutline" + name="Quick Outline"> + </command> + </extension> + <extension point="org.eclipse.ui.menus"> + <menuContribution + locationURI="popup:#TextEditorContext?after=group.open"> + <command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline" + style="push" + tooltip="Open Quick Outline"> + <visibleWhen checkEnabled="false"> + <reference definitionId="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"/> + </visibleWhen> + </command> + </menuContribution> + </extension> + <!-- quickfix marker resolution generator for org.eclipse.stem.model.ctdl.CTDL --> + <extension + point="org.eclipse.ui.ide.markerResolution"> + <markerResolutionGenerator + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator" + markerType="org.eclipse.stem.model.ctdl.ui.ctdl.check.fast"> + <attribute + name="FIXABLE_KEY" + value="true"> + </attribute> + </markerResolutionGenerator> + <markerResolutionGenerator + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator" + markerType="org.eclipse.stem.model.ctdl.ui.ctdl.check.normal"> + <attribute + name="FIXABLE_KEY" + value="true"> + </attribute> + </markerResolutionGenerator> + <markerResolutionGenerator + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator" + markerType="org.eclipse.stem.model.ctdl.ui.ctdl.check.expensive"> + <attribute + name="FIXABLE_KEY" + value="true"> + </attribute> + </markerResolutionGenerator> + </extension> + <!-- Rename Refactoring --> + <extension point="org.eclipse.ui.handlers"> + <handler + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.IRenameElementHandler" + commandId="org.eclipse.xtext.ui.refactoring.RenameElement"> + <activeWhen> + <reference + definitionId="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"> + </reference> + </activeWhen> + </handler> + </extension> + <extension point="org.eclipse.ui.menus"> + <menuContribution + locationURI="popup:#TextEditorContext?after=group.edit"> + <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement" + style="push"> + <visibleWhen checkEnabled="false"> + <reference + definitionId="org.eclipse.stem.model.ctdl.CTDL.Editor.opened"> + </reference> + </visibleWhen> + </command> + </menuContribution> + </extension> + <extension point="org.eclipse.ui.preferencePages"> + <page + category="org.eclipse.stem.model.ctdl.CTDL" + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage" + id="org.eclipse.stem.model.ctdl.CTDL.refactoring" + name="Refactoring"> + <keywordReference id="org.eclipse.stem.model.ctdl.ui.keyword_CTDL"/> + </page> + </extension> + + <extension point="org.eclipse.compare.contentViewers"> + <viewer id="org.eclipse.stem.model.ctdl.CTDL.compare.contentViewers" + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator" + extensions="sctd"> + </viewer> + </extension> + <extension point="org.eclipse.compare.contentMergeViewers"> + <viewer id="org.eclipse.stem.model.ctdl.CTDL.compare.contentMergeViewers" + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator" + extensions="sctd" label="CTDL Compare"> + </viewer> + </extension> + <extension point="org.eclipse.ui.editors.documentProviders"> + <provider id="org.eclipse.stem.model.ctdl.CTDL.editors.documentProviders" + class="org.eclipse.stem.model.ctdl.ui.CTDLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider" + extensions="sctd"> + </provider> + </extension> + +</plugin> diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/AbstractCTDLUiModule.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/AbstractCTDLUiModule.java new file mode 100644 index 000000000..8c4fd2220 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/AbstractCTDLUiModule.java @@ -0,0 +1,247 @@ + +/* + * generated by Xtext + */ +package org.eclipse.stem.model.ctdl.ui; + +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.eclipse.xtext.ui.DefaultUiModule; + +/** + * Manual modifications go to {org.eclipse.stem.model.ctdl.ui.CTDLUiModule} + */ +@SuppressWarnings("all") +public abstract class AbstractCTDLUiModule extends DefaultUiModule { + + public AbstractCTDLUiModule(AbstractUIPlugin plugin) { + super(plugin); + } + + + // contributed by org.eclipse.xtext.ui.generator.ImplicitUiFragment + public com.google.inject.Provider<org.eclipse.xtext.resource.containers.IAllContainersState> provideIAllContainersState() { + return org.eclipse.xtext.ui.shared.Access.getJavaProjectsState(); + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IProposalConflictHelper> bindIProposalConflictHelper() { + return org.eclipse.xtext.ui.editor.contentassist.antlr.AntlrProposalConflictHelper.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public void configureHighlightingLexer(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.eclipse.stem.model.ctdl.parser.antlr.internal.InternalCTDLLexer.class); + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public void configureHighlightingTokenDefProvider(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.parser.antlr.ITokenDefProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class); + } + + // contributed by org.eclipse.xtext.generator.exporting.QualifiedNamesFragment + public Class<? extends org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator> bindIDependentElementsCalculator() { + return org.eclipse.xtext.ui.refactoring.impl.DefaultDependentElementsCalculator.class; + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(org.eclipse.xtext.builder.clustering.CurrentDescriptions.ResourceSetAware.class); + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public Class<? extends org.eclipse.xtext.ui.editor.IXtextEditorCallback> bindIXtextEditorCallback() { + return org.eclipse.xtext.builder.nature.NatureAddingEditorCallback.class; + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public void configureIResourceDescriptionsPersisted(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource.PERSISTED_DESCRIPTIONS)).to(org.eclipse.xtext.builder.builderState.IBuilderState.class); + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public Class<? extends org.eclipse.xtext.ui.editor.DocumentBasedDirtyResource> bindDocumentBasedDirtyResource() { + return org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource.class; + } + + // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment + public Class<? extends org.eclipse.xtext.builder.IXtextBuilderParticipant> bindIXtextBuilderParticipant() { + return org.eclipse.xtext.builder.BuilderParticipant.class; + } + + // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment + public org.eclipse.core.resources.IWorkspaceRoot bindIWorkspaceRootToInstance() { + return org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot(); + } + + // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment + public void configureBuilderPreferenceStoreInitializer(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("builderPreferenceInitializer")).to(org.eclipse.xtext.builder.preferences.BuilderPreferenceAccess.Initializer.class); + } + + // contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment + public Class<? extends org.eclipse.jface.viewers.ILabelProvider> bindILabelProvider() { + return org.eclipse.stem.model.ctdl.ui.labeling.CTDLLabelProvider.class; + } + + // contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment + public void configureResourceUIServiceLabelProvider(com.google.inject.Binder binder) { + binder.bind(org.eclipse.jface.viewers.ILabelProvider.class).annotatedWith(org.eclipse.xtext.ui.resource.ResourceServiceDescriptionLabelProvider.class).to(org.eclipse.stem.model.ctdl.ui.labeling.CTDLDescriptionLabelProvider.class); + } + + // contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment + public Class<? extends org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider> bindIOutlineTreeProvider() { + return org.eclipse.stem.model.ctdl.ui.outline.CTDLOutlineTreeProvider.class; + } + + // contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment + public Class<? extends org.eclipse.xtext.ui.editor.outline.impl.IOutlineTreeStructureProvider> bindIOutlineTreeStructureProvider() { + return org.eclipse.stem.model.ctdl.ui.outline.CTDLOutlineTreeProvider.class; + } + + // contributed by org.eclipse.xtext.ui.generator.quickfix.QuickfixProviderFragment + public Class<? extends org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProvider> bindIssueResolutionProvider() { + return org.eclipse.stem.model.ctdl.ui.quickfix.CTDLQuickfixProvider.class; + } + + // contributed by org.eclipse.xtext.ui.generator.contentAssist.JavaBasedContentAssistFragment + public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider> bindIContentProposalProvider() { + return org.eclipse.stem.model.ctdl.ui.contentassist.CTDLProposalProvider.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment + public Class<? extends org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext.Factory> bindContentAssistContext$Factory() { + return org.eclipse.xtext.ui.editor.contentassist.antlr.ParserBasedContentAssistContextFactory.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment + public Class<? extends org.eclipse.xtext.ui.editor.contentassist.antlr.IContentAssistParser> bindIContentAssistParser() { + return org.eclipse.stem.model.ctdl.ui.contentassist.antlr.CTDLParser.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment + public void configureContentAssistLexerProvider(com.google.inject.Binder binder) { + binder.bind(org.eclipse.stem.model.ctdl.ui.contentassist.antlr.internal.InternalCTDLLexer.class).toProvider(org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.stem.model.ctdl.ui.contentassist.antlr.internal.InternalCTDLLexer.class)); + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment + public void configureContentAssistLexer(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.CONTENT_ASSIST)).to(org.eclipse.stem.model.ctdl.ui.contentassist.antlr.internal.InternalCTDLLexer.class); + } + + // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment + public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameStrategy> bindIRenameStrategy() { + return org.eclipse.xtext.ui.refactoring.impl.DefaultRenameStrategy.class; + } + + // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment + public Class<? extends org.eclipse.xtext.ui.refactoring.IReferenceUpdater> bindIReferenceUpdater() { + return org.eclipse.xtext.ui.refactoring.impl.DefaultReferenceUpdater.class; + } + + // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment + public void configureIPreferenceStoreInitializer(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("RefactoringPreferences")).to(org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferences.Initializer.class); + } + + // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment + public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameRefactoringProvider> bindIRenameRefactoringProvider() { + return org.eclipse.xtext.ui.refactoring.impl.DefaultRenameRefactoringProvider.class; + } + + // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment + public Class<? extends org.eclipse.xtext.ui.refactoring.ui.IRenameSupport.Factory> bindIRenameSupport$Factory() { + return org.eclipse.xtext.ui.refactoring.ui.DefaultRenameSupport.Factory.class; + } + + // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment + public Class<? extends org.eclipse.xtext.ui.refactoring.ui.IRenameElementHandler> bindIRenameElementHandler() { + return org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler.class; + } + + // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment + public java.lang.ClassLoader bindClassLoaderToInstance() { + return getClass().getClassLoader(); + } + + // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment + public Class<? extends org.eclipse.xtext.common.types.access.IJvmTypeProvider.Factory> bindIJvmTypeProvider$Factory() { + return org.eclipse.xtext.common.types.access.jdt.JdtTypeProviderFactory.class; + } + + // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment + public Class<? extends org.eclipse.xtext.common.types.xtext.AbstractTypeScopeProvider> bindAbstractTypeScopeProvider() { + return org.eclipse.xtext.common.types.xtext.ui.JdtBasedSimpleTypeScopeProvider.class; + } + + // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment + public Class<? extends org.eclipse.xtext.common.types.xtext.ui.ITypesProposalProvider> bindITypesProposalProvider() { + return org.eclipse.xtext.common.types.xtext.ui.JdtTypesProposalProvider.class; + } + + // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment + public Class<? extends org.eclipse.xtext.common.types.access.jdt.IJavaProjectProvider> bindIJavaProjectProvider() { + return org.eclipse.xtext.common.types.xtext.ui.XtextResourceSetBasedProjectProvider.class; + } + + // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment + public Class<? extends org.eclipse.xtext.ui.editor.hyperlinking.IHyperlinkHelper> bindIHyperlinkHelper() { + return org.eclipse.xtext.common.types.xtext.ui.TypeAwareHyperlinkHelper.class; + } + + // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment + public Class<? extends org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher> bindPrefixMatcher() { + return org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher.class; + } + + // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment + public Class<? extends org.eclipse.xtext.ui.editor.contentassist.AbstractJavaBasedContentProposalProvider.ReferenceProposalCreator> bindAbstractJavaBasedContentProposalProvider$ReferenceProposalCreator() { + return org.eclipse.xtext.common.types.xtext.ui.TypeAwareReferenceProposalCreator.class; + } + + // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment + public Class<? extends org.eclipse.xtext.ui.editor.IValidationJobScheduler> bindIValidationJobScheduler() { + return org.eclipse.xtext.common.types.xtext.ui.JdtValidationJobScheduler.class; + } + + // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment + public Class<? extends org.eclipse.xtext.ui.refactoring.impl.RefactoringResourceSetProvider> bindRefactoringResourceSetProvider() { + return org.eclipse.xtext.common.types.ui.refactoring.JvmRefactoringResourceSetProvider.class; + } + + // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment + public Class<? extends org.eclipse.xtext.common.types.ui.query.IJavaSearchParticipation> bindIJavaSearchParticipation() { + return org.eclipse.xtext.common.types.ui.query.IJavaSearchParticipation.Yes.class; + } + + // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment + public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.preferences.TemplatesLanguageConfiguration> provideTemplatesLanguageConfiguration() { + return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getTemplatesLanguageConfigurationProvider(); + } + + // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment + public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistry> provideLanguageRegistry() { + return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getLanguageRegistry(); + } + + // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment + @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar> bindLanguageRegistrar() { + return org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar.class; + } + + // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment + public Class<? extends org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage> bindXtextTemplatePreferencePage() { + return org.eclipse.xtext.ui.codetemplates.ui.preferences.AdvancedTemplatesPreferencePage.class; + } + + // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment + public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser> bindIPartialContentAssistParser() { + return org.eclipse.stem.model.ctdl.ui.contentassist.antlr.PartialCTDLContentAssistParser.class; + } + + // contributed by org.eclipse.xtext.ui.generator.compare.CompareFragment + public Class<? extends org.eclipse.compare.IViewerCreator> bindIViewerCreator() { + return org.eclipse.xtext.ui.compare.DefaultViewerCreator.class; + } + + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/CTDLExecutableExtensionFactory.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/CTDLExecutableExtensionFactory.java new file mode 100644 index 000000000..4442c602a --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/CTDLExecutableExtensionFactory.java @@ -0,0 +1,28 @@ +/* + * generated by Xtext + */ +package org.eclipse.stem.model.ctdl.ui; + +import org.eclipse.stem.model.ctdl.ui.internal.CTDLActivator; +import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory; +import org.osgi.framework.Bundle; + +import com.google.inject.Injector; + +/** + * This class was generated. Customizations should only happen in a newly + * introduced subclass. + */ +public class CTDLExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory { + + @Override + protected Bundle getBundle() { + return CTDLActivator.getInstance().getBundle(); + } + + @Override + protected Injector getInjector() { + return CTDLActivator.getInstance().getInjector(CTDLActivator.ORG_ECLIPSE_STEM_MODEL_CTDL_CTDL); + } + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/AbstractCTDLProposalProvider.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/AbstractCTDLProposalProvider.java new file mode 100644 index 000000000..31e67b76d --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/AbstractCTDLProposalProvider.java @@ -0,0 +1,185 @@ +/* +* generated by Xtext +*/ +package org.eclipse.stem.model.ctdl.ui.contentassist; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.Assignment; +import org.eclipse.xtext.CrossReference; +import org.eclipse.xtext.RuleCall; +import org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider; +import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext; +import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor; + +/** + * Represents a generated, default implementation of interface {@link IProposalProvider}. + * Methods are dynamically dispatched on the first parameter, i.e., you can override them + * with a more concrete subtype. + */ +@SuppressWarnings("all") +public class AbstractCTDLProposalProvider extends TerminalsProposalProvider { + + public void completeCompartmentTransitionDefinitions_Metamodel(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeCompartmentTransitionDefinitions_Expression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeMetamodelResource_Package(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeMetamodelResource_Model(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeMetamodelResource_Transition(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeTransitionBlock_Block(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeTransition_Source(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeTransition_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeCompartment_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeBlock_Statements(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeBlock_Ret(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeDefStatement_Varname(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeDefStatement_Expr(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeEvaluation_Expression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeAddition_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeMultiplication_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeNegatedExpression_Negate(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeNegatedExpression_Exp(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePrimaryExpression_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePrimaryExpression_Exp(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completePrimaryExpression_Ref(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completePrimaryExpression_Args(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeFunctionArgument_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeFunctionReference_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeFunctionReference_Func(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeScopedVariableReference_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeLocalVariableReference_Obj(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeCompartmentReference_Obj(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeModelParamReference_Obj(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeGlobalVariable_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + + public void complete_CompartmentTransitionDefinitions(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_MetamodelResource(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_TransitionBlock(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Transition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Compartment(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Block(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_DefStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ReturnStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Evaluation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Expression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Addition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_Multiplication(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_NegatedExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_PrimaryExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_FunctionArgument(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_FunctionReference(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ScopedVariableReference(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_LocalVariableReference(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_CompartmentReference(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ModelParamReference(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_GlobalVariable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_BOOLEAN(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_NUMBER(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_INT(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/CTDLParser.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/CTDLParser.java new file mode 100644 index 000000000..078de86b6 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/CTDLParser.java @@ -0,0 +1,134 @@ +/* +* generated by Xtext +*/ +package org.eclipse.stem.model.ctdl.ui.contentassist.antlr; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +import org.antlr.runtime.RecognitionException; +import org.eclipse.stem.model.ctdl.services.CTDLGrammarAccess; +import org.eclipse.xtext.AbstractElement; +import org.eclipse.xtext.ui.editor.contentassist.antlr.AbstractContentAssistParser; +import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement; +import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser; + +import com.google.inject.Inject; + +public class CTDLParser extends AbstractContentAssistParser { + + @Inject + private CTDLGrammarAccess grammarAccess; + + private Map<AbstractElement, String> nameMappings; + + @Override + protected org.eclipse.stem.model.ctdl.ui.contentassist.antlr.internal.InternalCTDLParser createParser() { + org.eclipse.stem.model.ctdl.ui.contentassist.antlr.internal.InternalCTDLParser result = new org.eclipse.stem.model.ctdl.ui.contentassist.antlr.internal.InternalCTDLParser(null); + result.setGrammarAccess(grammarAccess); + return result; + } + + @Override + protected String getRuleName(AbstractElement element) { + if (nameMappings == null) { + nameMappings = new HashMap<AbstractElement, String>() { + private static final long serialVersionUID = 1L; + { + put(grammarAccess.getAdditionAccess().getAlternatives_1_0(), "rule__Addition__Alternatives_1_0"); + put(grammarAccess.getMultiplicationAccess().getAlternatives_1_0(), "rule__Multiplication__Alternatives_1_0"); + put(grammarAccess.getPrimaryExpressionAccess().getAlternatives(), "rule__PrimaryExpression__Alternatives"); + put(grammarAccess.getFunctionArgumentAccess().getAlternatives(), "rule__FunctionArgument__Alternatives"); + put(grammarAccess.getFunctionReferenceAccess().getAlternatives(), "rule__FunctionReference__Alternatives"); + put(grammarAccess.getScopedVariableReferenceAccess().getAlternatives(), "rule__ScopedVariableReference__Alternatives"); + put(grammarAccess.getCompartmentReferenceAccess().getAlternatives(), "rule__CompartmentReference__Alternatives"); + put(grammarAccess.getCompartmentTransitionDefinitionsAccess().getGroup(), "rule__CompartmentTransitionDefinitions__Group__0"); + put(grammarAccess.getMetamodelResourceAccess().getGroup(), "rule__MetamodelResource__Group__0"); + put(grammarAccess.getTransitionAccess().getGroup(), "rule__Transition__Group__0"); + put(grammarAccess.getBlockAccess().getGroup(), "rule__Block__Group__0"); + put(grammarAccess.getDefStatementAccess().getGroup(), "rule__DefStatement__Group__0"); + put(grammarAccess.getReturnStatementAccess().getGroup(), "rule__ReturnStatement__Group__0"); + put(grammarAccess.getEvaluationAccess().getGroup(), "rule__Evaluation__Group__0"); + put(grammarAccess.getAdditionAccess().getGroup(), "rule__Addition__Group__0"); + put(grammarAccess.getAdditionAccess().getGroup_1(), "rule__Addition__Group_1__0"); + put(grammarAccess.getAdditionAccess().getGroup_1_0_0(), "rule__Addition__Group_1_0_0__0"); + put(grammarAccess.getAdditionAccess().getGroup_1_0_1(), "rule__Addition__Group_1_0_1__0"); + put(grammarAccess.getMultiplicationAccess().getGroup(), "rule__Multiplication__Group__0"); + put(grammarAccess.getMultiplicationAccess().getGroup_1(), "rule__Multiplication__Group_1__0"); + put(grammarAccess.getMultiplicationAccess().getGroup_1_0_0(), "rule__Multiplication__Group_1_0_0__0"); + put(grammarAccess.getMultiplicationAccess().getGroup_1_0_1(), "rule__Multiplication__Group_1_0_1__0"); + put(grammarAccess.getNegatedExpressionAccess().getGroup(), "rule__NegatedExpression__Group__0"); + put(grammarAccess.getPrimaryExpressionAccess().getGroup_0(), "rule__PrimaryExpression__Group_0__0"); + put(grammarAccess.getPrimaryExpressionAccess().getGroup_1(), "rule__PrimaryExpression__Group_1__0"); + put(grammarAccess.getPrimaryExpressionAccess().getGroup_2(), "rule__PrimaryExpression__Group_2__0"); + put(grammarAccess.getPrimaryExpressionAccess().getGroup_2_2(), "rule__PrimaryExpression__Group_2_2__0"); + put(grammarAccess.getPrimaryExpressionAccess().getGroup_2_2_2(), "rule__PrimaryExpression__Group_2_2_2__0"); + put(grammarAccess.getPrimaryExpressionAccess().getGroup_3(), "rule__PrimaryExpression__Group_3__0"); + put(grammarAccess.getFunctionArgumentAccess().getGroup_0(), "rule__FunctionArgument__Group_0__0"); + put(grammarAccess.getFunctionArgumentAccess().getGroup_1(), "rule__FunctionArgument__Group_1__0"); + put(grammarAccess.getFunctionReferenceAccess().getGroup_1(), "rule__FunctionReference__Group_1__0"); + put(grammarAccess.getLocalVariableReferenceAccess().getGroup(), "rule__LocalVariableReference__Group__0"); + put(grammarAccess.getCompartmentTransitionDefinitionsAccess().getMetamodelAssignment_0(), "rule__CompartmentTransitionDefinitions__MetamodelAssignment_0"); + put(grammarAccess.getCompartmentTransitionDefinitionsAccess().getExpressionAssignment_1(), "rule__CompartmentTransitionDefinitions__ExpressionAssignment_1"); + put(grammarAccess.getMetamodelResourceAccess().getPackageAssignment_1(), "rule__MetamodelResource__PackageAssignment_1"); + put(grammarAccess.getMetamodelResourceAccess().getModelAssignment_3(), "rule__MetamodelResource__ModelAssignment_3"); + put(grammarAccess.getMetamodelResourceAccess().getTransitionAssignment_5(), "rule__MetamodelResource__TransitionAssignment_5"); + put(grammarAccess.getTransitionBlockAccess().getBlockAssignment(), "rule__TransitionBlock__BlockAssignment"); + put(grammarAccess.getTransitionAccess().getSourceAssignment_1(), "rule__Transition__SourceAssignment_1"); + put(grammarAccess.getTransitionAccess().getTargetAssignment_3(), "rule__Transition__TargetAssignment_3"); + put(grammarAccess.getCompartmentAccess().getNameAssignment(), "rule__Compartment__NameAssignment"); + put(grammarAccess.getBlockAccess().getStatementsAssignment_1(), "rule__Block__StatementsAssignment_1"); + put(grammarAccess.getBlockAccess().getRetAssignment_2(), "rule__Block__RetAssignment_2"); + put(grammarAccess.getDefStatementAccess().getVarnameAssignment_0(), "rule__DefStatement__VarnameAssignment_0"); + put(grammarAccess.getDefStatementAccess().getExprAssignment_2(), "rule__DefStatement__ExprAssignment_2"); + put(grammarAccess.getEvaluationAccess().getExpressionAssignment_0(), "rule__Evaluation__ExpressionAssignment_0"); + put(grammarAccess.getAdditionAccess().getRightAssignment_1_1(), "rule__Addition__RightAssignment_1_1"); + put(grammarAccess.getMultiplicationAccess().getRightAssignment_1_1(), "rule__Multiplication__RightAssignment_1_1"); + put(grammarAccess.getNegatedExpressionAccess().getNegateAssignment_1(), "rule__NegatedExpression__NegateAssignment_1"); + put(grammarAccess.getNegatedExpressionAccess().getExpAssignment_2(), "rule__NegatedExpression__ExpAssignment_2"); + put(grammarAccess.getPrimaryExpressionAccess().getValueAssignment_0_1(), "rule__PrimaryExpression__ValueAssignment_0_1"); + put(grammarAccess.getPrimaryExpressionAccess().getExpAssignment_1_1(), "rule__PrimaryExpression__ExpAssignment_1_1"); + put(grammarAccess.getPrimaryExpressionAccess().getRefAssignment_2_1(), "rule__PrimaryExpression__RefAssignment_2_1"); + put(grammarAccess.getPrimaryExpressionAccess().getArgsAssignment_2_2_1(), "rule__PrimaryExpression__ArgsAssignment_2_2_1"); + put(grammarAccess.getPrimaryExpressionAccess().getArgsAssignment_2_2_2_1(), "rule__PrimaryExpression__ArgsAssignment_2_2_2_1"); + put(grammarAccess.getPrimaryExpressionAccess().getRefAssignment_3_1(), "rule__PrimaryExpression__RefAssignment_3_1"); + put(grammarAccess.getFunctionArgumentAccess().getValueAssignment_0_1(), "rule__FunctionArgument__ValueAssignment_0_1"); + put(grammarAccess.getFunctionArgumentAccess().getValueAssignment_1_1(), "rule__FunctionArgument__ValueAssignment_1_1"); + put(grammarAccess.getFunctionReferenceAccess().getNameAssignment_0(), "rule__FunctionReference__NameAssignment_0"); + put(grammarAccess.getFunctionReferenceAccess().getFuncAssignment_1_1(), "rule__FunctionReference__FuncAssignment_1_1"); + put(grammarAccess.getScopedVariableReferenceAccess().getNameAssignment_0(), "rule__ScopedVariableReference__NameAssignment_0"); + put(grammarAccess.getLocalVariableReferenceAccess().getObjAssignment_1(), "rule__LocalVariableReference__ObjAssignment_1"); + put(grammarAccess.getCompartmentReferenceAccess().getObjAssignment_0(), "rule__CompartmentReference__ObjAssignment_0"); + put(grammarAccess.getModelParamReferenceAccess().getObjAssignment(), "rule__ModelParamReference__ObjAssignment"); + put(grammarAccess.getGlobalVariableAccess().getNameAssignment(), "rule__GlobalVariable__NameAssignment"); + } + }; + } + return nameMappings.get(element); + } + + @Override + protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) { + try { + org.eclipse.stem.model.ctdl.ui.contentassist.antlr.internal.InternalCTDLParser typedParser = (org.eclipse.stem.model.ctdl.ui.contentassist.antlr.internal.InternalCTDLParser) parser; + typedParser.entryRuleCompartmentTransitionDefinitions(); + return typedParser.getFollowElements(); + } catch(RecognitionException ex) { + throw new RuntimeException(ex); + } + } + + @Override + protected String[] getInitialHiddenTokens() { + return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" }; + } + + public CTDLGrammarAccess getGrammarAccess() { + return this.grammarAccess; + } + + public void setGrammarAccess(CTDLGrammarAccess grammarAccess) { + this.grammarAccess = grammarAccess; + } +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/PartialCTDLContentAssistParser.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/PartialCTDLContentAssistParser.java new file mode 100644 index 000000000..bca9868f3 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/PartialCTDLContentAssistParser.java @@ -0,0 +1,38 @@ +/* + * generated by Xtext + */ +package org.eclipse.stem.model.ctdl.ui.contentassist.antlr; + +import java.util.Collection; +import java.util.Collections; + +import org.eclipse.xtext.AbstractRule; +import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser; +import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement; +import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser; +import org.eclipse.xtext.util.PolymorphicDispatcher; + +/** + * @author Sebastian Zarnekow - Initial contribution and API + */ +@SuppressWarnings("restriction") +public class PartialCTDLContentAssistParser extends CTDLParser implements IPartialContentAssistParser { + + private AbstractRule rule; + + public void initializeFor(AbstractRule rule) { + this.rule = rule; + } + + @Override + protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) { + if (rule == null || rule.eIsProxy()) + return Collections.emptyList(); + String methodName = "entryRule" + rule.getName(); + PolymorphicDispatcher<Collection<FollowElement>> dispatcher = + new PolymorphicDispatcher<Collection<FollowElement>>(methodName, 0, 0, Collections.singletonList(parser)); + dispatcher.invoke(); + return parser.getFollowElements(); + } + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g new file mode 100644 index 000000000..9f33e077e --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g @@ -0,0 +1,2487 @@ +/* +* generated by Xtext +*/ +grammar InternalCTDL; + +options { + superClass=AbstractInternalContentAssistParser; + +} + +@lexer::header { +package org.eclipse.stem.model.ctdl.ui.contentassist.antlr.internal; + +// Hack: Use our own Lexer superclass by means of import. +// Currently there is no other way to specify the superclass for the lexer. +import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer; +} + +@parser::header { +package org.eclipse.stem.model.ctdl.ui.contentassist.antlr.internal; + +import java.io.InputStream; +import org.eclipse.xtext.*; +import org.eclipse.xtext.parser.*; +import org.eclipse.xtext.parser.impl.*; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.parser.antlr.XtextTokenStream; +import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; +import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser; +import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA; +import org.eclipse.stem.model.ctdl.services.CTDLGrammarAccess; + +} + +@parser::members { + + private CTDLGrammarAccess grammarAccess; + + public void setGrammarAccess(CTDLGrammarAccess grammarAccess) { + this.grammarAccess = grammarAccess; + } + + @Override + protected Grammar getGrammar() { + return grammarAccess.getGrammar(); + } + + @Override + protected String getValueForTokenName(String tokenName) { + return tokenName; + } + +} + + + + +// Entry rule entryRuleCompartmentTransitionDefinitions +entryRuleCompartmentTransitionDefinitions +: +{ before(grammarAccess.getCompartmentTransitionDefinitionsRule()); } + ruleCompartmentTransitionDefinitions +{ after(grammarAccess.getCompartmentTransitionDefinitionsRule()); } + EOF +; + +// Rule CompartmentTransitionDefinitions +ruleCompartmentTransitionDefinitions + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getCompartmentTransitionDefinitionsAccess().getGroup()); } +(rule__CompartmentTransitionDefinitions__Group__0) +{ after(grammarAccess.getCompartmentTransitionDefinitionsAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + +// Entry rule entryRuleTransitionBlock +entryRuleTransitionBlock +: +{ before(grammarAccess.getTransitionBlockRule()); } + ruleTransitionBlock +{ after(grammarAccess.getTransitionBlockRule()); } + EOF +; + +// Rule TransitionBlock +ruleTransitionBlock + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getTransitionBlockAccess().getBlockAssignment()); } +(rule__TransitionBlock__BlockAssignment) +{ after(grammarAccess.getTransitionBlockAccess().getBlockAssignment()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + +// Entry rule entryRuleBlock +entryRuleBlock +: +{ before(grammarAccess.getBlockRule()); } + ruleBlock +{ after(grammarAccess.getBlockRule()); } + EOF +; + +// Rule Block +ruleBlock + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getBlockAccess().getGroup()); } +(rule__Block__Group__0) +{ after(grammarAccess.getBlockAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleDefStatement +entryRuleDefStatement +: +{ before(grammarAccess.getDefStatementRule()); } + ruleDefStatement +{ after(grammarAccess.getDefStatementRule()); } + EOF +; + +// Rule DefStatement +ruleDefStatement + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getDefStatementAccess().getGroup()); } +(rule__DefStatement__Group__0) +{ after(grammarAccess.getDefStatementAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleReturnStatement +entryRuleReturnStatement +: +{ before(grammarAccess.getReturnStatementRule()); } + ruleReturnStatement +{ after(grammarAccess.getReturnStatementRule()); } + EOF +; + +// Rule ReturnStatement +ruleReturnStatement + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getReturnStatementAccess().getGroup()); } +(rule__ReturnStatement__Group__0) +{ after(grammarAccess.getReturnStatementAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleEvaluation +entryRuleEvaluation +: +{ before(grammarAccess.getEvaluationRule()); } + ruleEvaluation +{ after(grammarAccess.getEvaluationRule()); } + EOF +; + +// Rule Evaluation +ruleEvaluation + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getEvaluationAccess().getGroup()); } +(rule__Evaluation__Group__0) +{ after(grammarAccess.getEvaluationAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleExpression +entryRuleExpression +: +{ before(grammarAccess.getExpressionRule()); } + ruleExpression +{ after(grammarAccess.getExpressionRule()); } + EOF +; + +// Rule Expression +ruleExpression + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getExpressionAccess().getAdditionParserRuleCall()); } + ruleAddition +{ after(grammarAccess.getExpressionAccess().getAdditionParserRuleCall()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleAddition +entryRuleAddition +: +{ before(grammarAccess.getAdditionRule()); } + ruleAddition +{ after(grammarAccess.getAdditionRule()); } + EOF +; + +// Rule Addition +ruleAddition + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getAdditionAccess().getGroup()); } +(rule__Addition__Group__0) +{ after(grammarAccess.getAdditionAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleMultiplication +entryRuleMultiplication +: +{ before(grammarAccess.getMultiplicationRule()); } + ruleMultiplication +{ after(grammarAccess.getMultiplicationRule()); } + EOF +; + +// Rule Multiplication +ruleMultiplication + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getMultiplicationAccess().getGroup()); } +(rule__Multiplication__Group__0) +{ after(grammarAccess.getMultiplicationAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleNegatedExpression +entryRuleNegatedExpression +: +{ before(grammarAccess.getNegatedExpressionRule()); } + ruleNegatedExpression +{ after(grammarAccess.getNegatedExpressionRule()); } + EOF +; + +// Rule NegatedExpression +ruleNegatedExpression + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getNegatedExpressionAccess().getGroup()); } +(rule__NegatedExpression__Group__0) +{ after(grammarAccess.getNegatedExpressionAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRulePrimaryExpression +entryRulePrimaryExpression +: +{ before(grammarAccess.getPrimaryExpressionRule()); } + rulePrimaryExpression +{ after(grammarAccess.getPrimaryExpressionRule()); } + EOF +; + +// Rule PrimaryExpression +rulePrimaryExpression + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getPrimaryExpressionAccess().getAlternatives()); } +(rule__PrimaryExpression__Alternatives) +{ after(grammarAccess.getPrimaryExpressionAccess().getAlternatives()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleFunctionArgument +entryRuleFunctionArgument +: +{ before(grammarAccess.getFunctionArgumentRule()); } + ruleFunctionArgument +{ after(grammarAccess.getFunctionArgumentRule()); } + EOF +; + +// Rule FunctionArgument +ruleFunctionArgument + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getFunctionArgumentAccess().getAlternatives()); } +(rule__FunctionArgument__Alternatives) +{ after(grammarAccess.getFunctionArgumentAccess().getAlternatives()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + + + + + + + + + +rule__Addition__Alternatives_1_0 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getAdditionAccess().getGroup_1_0_0()); } +(rule__Addition__Group_1_0_0__0) +{ after(grammarAccess.getAdditionAccess().getGroup_1_0_0()); } +) + + |( +{ before(grammarAccess.getAdditionAccess().getGroup_1_0_1()); } +(rule__Addition__Group_1_0_1__0) +{ after(grammarAccess.getAdditionAccess().getGroup_1_0_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__Multiplication__Alternatives_1_0 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getMultiplicationAccess().getGroup_1_0_0()); } +(rule__Multiplication__Group_1_0_0__0) +{ after(grammarAccess.getMultiplicationAccess().getGroup_1_0_0()); } +) + + |( +{ before(grammarAccess.getMultiplicationAccess().getGroup_1_0_1()); } +(rule__Multiplication__Group_1_0_1__0) +{ after(grammarAccess.getMultiplicationAccess().getGroup_1_0_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__Alternatives + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getGroup_0()); } +(rule__PrimaryExpression__Group_0__0) +{ after(grammarAccess.getPrimaryExpressionAccess().getGroup_0()); } +) + + |( +{ before(grammarAccess.getPrimaryExpressionAccess().getGroup_1()); } +(rule__PrimaryExpression__Group_1__0) +{ after(grammarAccess.getPrimaryExpressionAccess().getGroup_1()); } +) + + |( +{ before(grammarAccess.getPrimaryExpressionAccess().getGroup_2()); } +(rule__PrimaryExpression__Group_2__0) +{ after(grammarAccess.getPrimaryExpressionAccess().getGroup_2()); } +) + + |( +{ before(grammarAccess.getPrimaryExpressionAccess().getGroup_3()); } +(rule__PrimaryExpression__Group_3__0) +{ after(grammarAccess.getPrimaryExpressionAccess().getGroup_3()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionArgument__Alternatives + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getFunctionArgumentAccess().getGroup_0()); } +(rule__FunctionArgument__Group_0__0) +{ after(grammarAccess.getFunctionArgumentAccess().getGroup_0()); } +) + + |( +{ before(grammarAccess.getFunctionArgumentAccess().getGroup_1()); } +(rule__FunctionArgument__Group_1__0) +{ after(grammarAccess.getFunctionArgumentAccess().getGroup_1()); } +) + + |( +{ before(grammarAccess.getFunctionArgumentAccess().getExpressionParserRuleCall_2()); } + ruleExpression +{ after(grammarAccess.getFunctionArgumentAccess().getExpressionParserRuleCall_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__CompartmentTransitionDefinitions__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__CompartmentTransitionDefinitions__Group__0__Impl + rule__CompartmentTransitionDefinitions__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__CompartmentTransitionDefinitions__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getCompartmentTransitionDefinitionsAccess().getMetamodelAssignment_0()); } +(rule__CompartmentTransitionDefinitions__MetamodelAssignment_0)? +{ after(grammarAccess.getCompartmentTransitionDefinitionsAccess().getMetamodelAssignment_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__CompartmentTransitionDefinitions__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__CompartmentTransitionDefinitions__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__CompartmentTransitionDefinitions__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getCompartmentTransitionDefinitionsAccess().getExpressionAssignment_1()); } +(rule__CompartmentTransitionDefinitions__ExpressionAssignment_1) +{ after(grammarAccess.getCompartmentTransitionDefinitionsAccess().getExpressionAssignment_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__Block__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Block__Group__0__Impl + rule__Block__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Block__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getBlockAccess().getBlockAction_0()); } +( + +) +{ after(grammarAccess.getBlockAccess().getBlockAction_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__Block__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Block__Group__1__Impl + rule__Block__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__Block__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getBlockAccess().getStatementsAssignment_1()); } +(rule__Block__StatementsAssignment_1)* +{ after(grammarAccess.getBlockAccess().getStatementsAssignment_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__Block__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Block__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Block__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getBlockAccess().getRetAssignment_2()); } +(rule__Block__RetAssignment_2) +{ after(grammarAccess.getBlockAccess().getRetAssignment_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__DefStatement__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__DefStatement__Group__0__Impl + rule__DefStatement__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__DefStatement__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getDefStatementAccess().getVarnameAssignment_0()); } +(rule__DefStatement__VarnameAssignment_0) +{ after(grammarAccess.getDefStatementAccess().getVarnameAssignment_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__DefStatement__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__DefStatement__Group__1__Impl + rule__DefStatement__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__DefStatement__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getDefStatementAccess().getEqualsSignKeyword_1()); } + + '=' + +{ after(grammarAccess.getDefStatementAccess().getEqualsSignKeyword_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__DefStatement__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__DefStatement__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__DefStatement__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getDefStatementAccess().getExprAssignment_2()); } +(rule__DefStatement__ExprAssignment_2) +{ after(grammarAccess.getDefStatementAccess().getExprAssignment_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ReturnStatement__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ReturnStatement__Group__0__Impl + rule__ReturnStatement__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ReturnStatement__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getReturnStatementAccess().getDeltaKeyword_0()); } + + 'delta' + +{ after(grammarAccess.getReturnStatementAccess().getDeltaKeyword_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ReturnStatement__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ReturnStatement__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ReturnStatement__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getReturnStatementAccess().getEvaluationParserRuleCall_1()); } + ruleEvaluation +{ after(grammarAccess.getReturnStatementAccess().getEvaluationParserRuleCall_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__Evaluation__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Evaluation__Group__0__Impl + rule__Evaluation__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Evaluation__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getEvaluationAccess().getExpressionAssignment_0()); } +(rule__Evaluation__ExpressionAssignment_0) +{ after(grammarAccess.getEvaluationAccess().getExpressionAssignment_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__Evaluation__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Evaluation__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Evaluation__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getEvaluationAccess().getSemicolonKeyword_1()); } + + ';' + +{ after(grammarAccess.getEvaluationAccess().getSemicolonKeyword_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__Addition__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Addition__Group__0__Impl + rule__Addition__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Addition__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getAdditionAccess().getMultiplicationParserRuleCall_0()); } + ruleMultiplication +{ after(grammarAccess.getAdditionAccess().getMultiplicationParserRuleCall_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__Addition__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Addition__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Addition__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getAdditionAccess().getGroup_1()); } +(rule__Addition__Group_1__0)* +{ after(grammarAccess.getAdditionAccess().getGroup_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__Addition__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Addition__Group_1__0__Impl + rule__Addition__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Addition__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getAdditionAccess().getAlternatives_1_0()); } +(rule__Addition__Alternatives_1_0) +{ after(grammarAccess.getAdditionAccess().getAlternatives_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__Addition__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Addition__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Addition__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getAdditionAccess().getRightAssignment_1_1()); } +(rule__Addition__RightAssignment_1_1) +{ after(grammarAccess.getAdditionAccess().getRightAssignment_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__Addition__Group_1_0_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Addition__Group_1_0_0__0__Impl + rule__Addition__Group_1_0_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Addition__Group_1_0_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getAdditionAccess().getPlusLeftAction_1_0_0_0()); } +( + +) +{ after(grammarAccess.getAdditionAccess().getPlusLeftAction_1_0_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__Addition__Group_1_0_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Addition__Group_1_0_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Addition__Group_1_0_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getAdditionAccess().getPlusSignKeyword_1_0_0_1()); } + + '+' + +{ after(grammarAccess.getAdditionAccess().getPlusSignKeyword_1_0_0_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__Addition__Group_1_0_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Addition__Group_1_0_1__0__Impl + rule__Addition__Group_1_0_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Addition__Group_1_0_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getAdditionAccess().getMinusLeftAction_1_0_1_0()); } +( + +) +{ after(grammarAccess.getAdditionAccess().getMinusLeftAction_1_0_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__Addition__Group_1_0_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Addition__Group_1_0_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Addition__Group_1_0_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getAdditionAccess().getHyphenMinusKeyword_1_0_1_1()); } + + '-' + +{ after(grammarAccess.getAdditionAccess().getHyphenMinusKeyword_1_0_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__Multiplication__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Multiplication__Group__0__Impl + rule__Multiplication__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Multiplication__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getMultiplicationAccess().getNegatedExpressionParserRuleCall_0()); } + ruleNegatedExpression +{ after(grammarAccess.getMultiplicationAccess().getNegatedExpressionParserRuleCall_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__Multiplication__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Multiplication__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Multiplication__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getMultiplicationAccess().getGroup_1()); } +(rule__Multiplication__Group_1__0)* +{ after(grammarAccess.getMultiplicationAccess().getGroup_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__Multiplication__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Multiplication__Group_1__0__Impl + rule__Multiplication__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Multiplication__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getMultiplicationAccess().getAlternatives_1_0()); } +(rule__Multiplication__Alternatives_1_0) +{ after(grammarAccess.getMultiplicationAccess().getAlternatives_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__Multiplication__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Multiplication__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Multiplication__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getMultiplicationAccess().getRightAssignment_1_1()); } +(rule__Multiplication__RightAssignment_1_1) +{ after(grammarAccess.getMultiplicationAccess().getRightAssignment_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__Multiplication__Group_1_0_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Multiplication__Group_1_0_0__0__Impl + rule__Multiplication__Group_1_0_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Multiplication__Group_1_0_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getMultiplicationAccess().getMultiLeftAction_1_0_0_0()); } +( + +) +{ after(grammarAccess.getMultiplicationAccess().getMultiLeftAction_1_0_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__Multiplication__Group_1_0_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Multiplication__Group_1_0_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Multiplication__Group_1_0_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getMultiplicationAccess().getAsteriskKeyword_1_0_0_1()); } + + '*' + +{ after(grammarAccess.getMultiplicationAccess().getAsteriskKeyword_1_0_0_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__Multiplication__Group_1_0_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__Multiplication__Group_1_0_1__0__Impl + rule__Multiplication__Group_1_0_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__Multiplication__Group_1_0_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getMultiplicationAccess().getDivLeftAction_1_0_1_0()); } +( + +) +{ after(grammarAccess.getMultiplicationAccess().getDivLeftAction_1_0_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__Multiplication__Group_1_0_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__Multiplication__Group_1_0_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Multiplication__Group_1_0_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getMultiplicationAccess().getSolidusKeyword_1_0_1_1()); } + + '/' + +{ after(grammarAccess.getMultiplicationAccess().getSolidusKeyword_1_0_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__NegatedExpression__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__NegatedExpression__Group__0__Impl + rule__NegatedExpression__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__NegatedExpression__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getNegatedExpressionAccess().getPrimaryExpressionAction_0()); } +( + +) +{ after(grammarAccess.getNegatedExpressionAccess().getPrimaryExpressionAction_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__NegatedExpression__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__NegatedExpression__Group__1__Impl + rule__NegatedExpression__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__NegatedExpression__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getNegatedExpressionAccess().getNegateAssignment_1()); } +(rule__NegatedExpression__NegateAssignment_1)? +{ after(grammarAccess.getNegatedExpressionAccess().getNegateAssignment_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__NegatedExpression__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__NegatedExpression__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__NegatedExpression__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getNegatedExpressionAccess().getExpAssignment_2()); } +(rule__NegatedExpression__ExpAssignment_2) +{ after(grammarAccess.getNegatedExpressionAccess().getExpAssignment_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__PrimaryExpression__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PrimaryExpression__Group_0__0__Impl + rule__PrimaryExpression__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getNumberLiteralAction_0_0()); } +( + +) +{ after(grammarAccess.getPrimaryExpressionAccess().getNumberLiteralAction_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__PrimaryExpression__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PrimaryExpression__Group_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getValueAssignment_0_1()); } +(rule__PrimaryExpression__ValueAssignment_0_1) +{ after(grammarAccess.getPrimaryExpressionAccess().getValueAssignment_0_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__PrimaryExpression__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PrimaryExpression__Group_1__0__Impl + rule__PrimaryExpression__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getLeftParenthesisKeyword_1_0()); } + + '(' + +{ after(grammarAccess.getPrimaryExpressionAccess().getLeftParenthesisKeyword_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__PrimaryExpression__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PrimaryExpression__Group_1__1__Impl + rule__PrimaryExpression__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getExpAssignment_1_1()); } +(rule__PrimaryExpression__ExpAssignment_1_1) +{ after(grammarAccess.getPrimaryExpressionAccess().getExpAssignment_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__PrimaryExpression__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__PrimaryExpression__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getRightParenthesisKeyword_1_2()); } + + ')' + +{ after(grammarAccess.getPrimaryExpressionAccess().getRightParenthesisKeyword_1_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__PrimaryExpression__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PrimaryExpression__Group_2__0__Impl + rule__PrimaryExpression__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getFunctionCallAction_2_0()); } +( + +) +{ after(grammarAccess.getPrimaryExpressionAccess().getFunctionCallAction_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__PrimaryExpression__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PrimaryExpression__Group_2__1__Impl + rule__PrimaryExpression__Group_2__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getRefAssignment_2_1()); } +(rule__PrimaryExpression__RefAssignment_2_1) +{ after(grammarAccess.getPrimaryExpressionAccess().getRefAssignment_2_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__PrimaryExpression__Group_2__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__PrimaryExpression__Group_2__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__Group_2__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getGroup_2_2()); } +(rule__PrimaryExpression__Group_2_2__0) +{ after(grammarAccess.getPrimaryExpressionAccess().getGroup_2_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__PrimaryExpression__Group_2_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PrimaryExpression__Group_2_2__0__Impl + rule__PrimaryExpression__Group_2_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__Group_2_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getLeftParenthesisKeyword_2_2_0()); } + + '(' + +{ after(grammarAccess.getPrimaryExpressionAccess().getLeftParenthesisKeyword_2_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__PrimaryExpression__Group_2_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PrimaryExpression__Group_2_2__1__Impl + rule__PrimaryExpression__Group_2_2__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__Group_2_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getArgsAssignment_2_2_1()); } +(rule__PrimaryExpression__ArgsAssignment_2_2_1)? +{ after(grammarAccess.getPrimaryExpressionAccess().getArgsAssignment_2_2_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__PrimaryExpression__Group_2_2__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__PrimaryExpression__Group_2_2__2__Impl + rule__PrimaryExpression__Group_2_2__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__Group_2_2__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getGroup_2_2_2()); } +(rule__PrimaryExpression__Group_2_2_2__0)* +{ after(grammarAccess.getPrimaryExpressionAccess().getGroup_2_2_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__PrimaryExpression__Group_2_2__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__PrimaryExpression__Group_2_2__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__Group_2_2__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getRightParenthesisKeyword_2_2_3()); } + + ')' + +{ after(grammarAccess.getPrimaryExpressionAccess().getRightParenthesisKeyword_2_2_3()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + + + +rule__PrimaryExpression__Group_2_2_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PrimaryExpression__Group_2_2_2__0__Impl + rule__PrimaryExpression__Group_2_2_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__Group_2_2_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getCommaKeyword_2_2_2_0()); } + + ',' + +{ after(grammarAccess.getPrimaryExpressionAccess().getCommaKeyword_2_2_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__PrimaryExpression__Group_2_2_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PrimaryExpression__Group_2_2_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__Group_2_2_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getArgsAssignment_2_2_2_1()); } +(rule__PrimaryExpression__ArgsAssignment_2_2_2_1) +{ after(grammarAccess.getPrimaryExpressionAccess().getArgsAssignment_2_2_2_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__PrimaryExpression__Group_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__PrimaryExpression__Group_3__0__Impl + rule__PrimaryExpression__Group_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__Group_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getVariableReferenceAction_3_0()); } +( + +) +{ after(grammarAccess.getPrimaryExpressionAccess().getVariableReferenceAction_3_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__PrimaryExpression__Group_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__PrimaryExpression__Group_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__Group_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getRefAssignment_3_1()); } +(rule__PrimaryExpression__RefAssignment_3_1) +{ after(grammarAccess.getPrimaryExpressionAccess().getRefAssignment_3_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__FunctionArgument__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionArgument__Group_0__0__Impl + rule__FunctionArgument__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionArgument__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getFunctionArgumentAccess().getBooleanLiteralAction_0_0()); } +( + +) +{ after(grammarAccess.getFunctionArgumentAccess().getBooleanLiteralAction_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__FunctionArgument__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionArgument__Group_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionArgument__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getFunctionArgumentAccess().getValueAssignment_0_1()); } +(rule__FunctionArgument__ValueAssignment_0_1) +{ after(grammarAccess.getFunctionArgumentAccess().getValueAssignment_0_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__FunctionArgument__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionArgument__Group_1__0__Impl + rule__FunctionArgument__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionArgument__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getFunctionArgumentAccess().getStringLiteralAction_1_0()); } +( + +) +{ after(grammarAccess.getFunctionArgumentAccess().getStringLiteralAction_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__FunctionArgument__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__FunctionArgument__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionArgument__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getFunctionArgumentAccess().getValueAssignment_1_1()); } +(rule__FunctionArgument__ValueAssignment_1_1) +{ after(grammarAccess.getFunctionArgumentAccess().getValueAssignment_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + + +rule__CompartmentTransitionDefinitions__MetamodelAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getCompartmentTransitionDefinitionsAccess().getMetamodelMetamodelResourceCrossReference_0_0()); } +( +{ before(grammarAccess.getCompartmentTransitionDefinitionsAccess().getMetamodelMetamodelResourceIDTerminalRuleCall_0_0_1()); } + RULE_ID{ after(grammarAccess.getCompartmentTransitionDefinitionsAccess().getMetamodelMetamodelResourceIDTerminalRuleCall_0_0_1()); } +) +{ after(grammarAccess.getCompartmentTransitionDefinitionsAccess().getMetamodelMetamodelResourceCrossReference_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__CompartmentTransitionDefinitions__ExpressionAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getCompartmentTransitionDefinitionsAccess().getExpressionTransitionBlockParserRuleCall_1_0()); } + ruleTransitionBlock{ after(grammarAccess.getCompartmentTransitionDefinitionsAccess().getExpressionTransitionBlockParserRuleCall_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + +rule__TransitionBlock__BlockAssignment + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getTransitionBlockAccess().getBlockBlockParserRuleCall_0()); } + ruleBlock{ after(grammarAccess.getTransitionBlockAccess().getBlockBlockParserRuleCall_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + +rule__Block__StatementsAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getBlockAccess().getStatementsDefStatementParserRuleCall_1_0()); } + ruleDefStatement{ after(grammarAccess.getBlockAccess().getStatementsDefStatementParserRuleCall_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__Block__RetAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getBlockAccess().getRetReturnStatementParserRuleCall_2_0()); } + ruleReturnStatement{ after(grammarAccess.getBlockAccess().getRetReturnStatementParserRuleCall_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__DefStatement__VarnameAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getDefStatementAccess().getVarnameIDTerminalRuleCall_0_0()); } + RULE_ID{ after(grammarAccess.getDefStatementAccess().getVarnameIDTerminalRuleCall_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__DefStatement__ExprAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getDefStatementAccess().getExprEvaluationParserRuleCall_2_0()); } + ruleEvaluation{ after(grammarAccess.getDefStatementAccess().getExprEvaluationParserRuleCall_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__Evaluation__ExpressionAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getEvaluationAccess().getExpressionExpressionParserRuleCall_0_0()); } + ruleExpression{ after(grammarAccess.getEvaluationAccess().getExpressionExpressionParserRuleCall_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__Addition__RightAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getAdditionAccess().getRightMultiplicationParserRuleCall_1_1_0()); } + ruleMultiplication{ after(grammarAccess.getAdditionAccess().getRightMultiplicationParserRuleCall_1_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__Multiplication__RightAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getMultiplicationAccess().getRightNegatedExpressionParserRuleCall_1_1_0()); } + ruleNegatedExpression{ after(grammarAccess.getMultiplicationAccess().getRightNegatedExpressionParserRuleCall_1_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__NegatedExpression__NegateAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getNegatedExpressionAccess().getNegateHyphenMinusKeyword_1_0()); } +( +{ before(grammarAccess.getNegatedExpressionAccess().getNegateHyphenMinusKeyword_1_0()); } + + '-' + +{ after(grammarAccess.getNegatedExpressionAccess().getNegateHyphenMinusKeyword_1_0()); } +) + +{ after(grammarAccess.getNegatedExpressionAccess().getNegateHyphenMinusKeyword_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__NegatedExpression__ExpAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getNegatedExpressionAccess().getExpPrimaryExpressionParserRuleCall_2_0()); } + rulePrimaryExpression{ after(grammarAccess.getNegatedExpressionAccess().getExpPrimaryExpressionParserRuleCall_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__ValueAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getValueNUMBERTerminalRuleCall_0_1_0()); } + RULE_NUMBER{ after(grammarAccess.getPrimaryExpressionAccess().getValueNUMBERTerminalRuleCall_0_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__ExpAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getExpExpressionParserRuleCall_1_1_0()); } + ruleExpression{ after(grammarAccess.getPrimaryExpressionAccess().getExpExpressionParserRuleCall_1_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__RefAssignment_2_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getRefFunctionReferenceCrossReference_2_1_0()); } +( +{ before(grammarAccess.getPrimaryExpressionAccess().getRefFunctionReferenceIDTerminalRuleCall_2_1_0_1()); } + RULE_ID{ after(grammarAccess.getPrimaryExpressionAccess().getRefFunctionReferenceIDTerminalRuleCall_2_1_0_1()); } +) +{ after(grammarAccess.getPrimaryExpressionAccess().getRefFunctionReferenceCrossReference_2_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__ArgsAssignment_2_2_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getArgsFunctionArgumentParserRuleCall_2_2_1_0()); } + ruleFunctionArgument{ after(grammarAccess.getPrimaryExpressionAccess().getArgsFunctionArgumentParserRuleCall_2_2_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__ArgsAssignment_2_2_2_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getArgsFunctionArgumentParserRuleCall_2_2_2_1_0()); } + ruleFunctionArgument{ after(grammarAccess.getPrimaryExpressionAccess().getArgsFunctionArgumentParserRuleCall_2_2_2_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__PrimaryExpression__RefAssignment_3_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getPrimaryExpressionAccess().getRefScopedVariableReferenceCrossReference_3_1_0()); } +( +{ before(grammarAccess.getPrimaryExpressionAccess().getRefScopedVariableReferenceIDTerminalRuleCall_3_1_0_1()); } + RULE_ID{ after(grammarAccess.getPrimaryExpressionAccess().getRefScopedVariableReferenceIDTerminalRuleCall_3_1_0_1()); } +) +{ after(grammarAccess.getPrimaryExpressionAccess().getRefScopedVariableReferenceCrossReference_3_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionArgument__ValueAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getFunctionArgumentAccess().getValueBOOLEANTerminalRuleCall_0_1_0()); } + RULE_BOOLEAN{ after(grammarAccess.getFunctionArgumentAccess().getValueBOOLEANTerminalRuleCall_0_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__FunctionArgument__ValueAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getFunctionArgumentAccess().getValueSTRINGTerminalRuleCall_1_1_0()); } + RULE_STRING{ after(grammarAccess.getFunctionArgumentAccess().getValueSTRINGTerminalRuleCall_1_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + + +RULE_BOOLEAN : ('true'|'false'); + +RULE_NUMBER : (('0'..'9')+ ('.' ('0'..'9')*)?|'.' ('0'..'9')+) (('e'|'E') ('+'|'-')? ('0'..'9')+)?; + +RULE_INT : 'this one has been deactivated'; + +RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; + +RULE_STRING : ('"' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'"')))* '"'|'\'' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'\'')))* '\''); + +RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/'; + +RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?; + +RULE_WS : (' '|'\t'|'\r'|'\n')+; + +RULE_ANY_OTHER : .; + + diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.tokens b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.tokens new file mode 100644 index 000000000..090f73453 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.tokens @@ -0,0 +1,29 @@ +RULE_BOOLEAN=6 +RULE_ID=4 +T__22=22 +RULE_ANY_OTHER=12 +T__21=21 +T__20=20 +RULE_SL_COMMENT=10 +RULE_ML_COMMENT=9 +T__19=19 +RULE_STRING=7 +T__16=16 +T__15=15 +T__18=18 +T__17=17 +RULE_NUMBER=5 +T__14=14 +T__13=13 +RULE_INT=8 +RULE_WS=11 +';'=15 +'delta'=14 +'='=13 +'/'=19 +'('=20 +'*'=18 +'-'=17 +'+'=16 +','=22 +')'=21 diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDLLexer.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDLLexer.java new file mode 100644 index 000000000..9fa4440c1 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDLLexer.java @@ -0,0 +1,1368 @@ +package org.eclipse.stem.model.ctdl.ui.contentassist.antlr.internal; + +// Hack: Use our own Lexer superclass by means of import. +// Currently there is no other way to specify the superclass for the lexer. +import org.antlr.runtime.BaseRecognizer; +import org.antlr.runtime.CharStream; +import org.antlr.runtime.DFA; +import org.antlr.runtime.EarlyExitException; +import org.antlr.runtime.IntStream; +import org.antlr.runtime.MismatchedSetException; +import org.antlr.runtime.NoViableAltException; +import org.antlr.runtime.RecognitionException; +import org.antlr.runtime.RecognizerSharedState; +import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer; + +@SuppressWarnings("all") +public class InternalCTDLLexer extends Lexer { + public static final int RULE_BOOLEAN=6; + public static final int RULE_ID=4; + public static final int T__22=22; + public static final int RULE_ANY_OTHER=12; + public static final int T__21=21; + public static final int T__20=20; + public static final int EOF=-1; + public static final int RULE_SL_COMMENT=10; + public static final int RULE_ML_COMMENT=9; + public static final int T__19=19; + public static final int RULE_STRING=7; + public static final int T__16=16; + public static final int T__15=15; + public static final int T__18=18; + public static final int T__17=17; + public static final int RULE_NUMBER=5; + public static final int T__14=14; + public static final int T__13=13; + public static final int RULE_INT=8; + public static final int RULE_WS=11; + + // delegates + // delegators + + public InternalCTDLLexer() {;} + public InternalCTDLLexer(CharStream input) { + this(input, new RecognizerSharedState()); + } + public InternalCTDLLexer(CharStream input, RecognizerSharedState state) { + super(input,state); + + } + public String getGrammarFileName() { return "../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g"; } + + // $ANTLR start "T__13" + public final void mT__13() throws RecognitionException { + try { + int _type = T__13; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:11:7: ( '=' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:11:9: '=' + { + match('='); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__13" + + // $ANTLR start "T__14" + public final void mT__14() throws RecognitionException { + try { + int _type = T__14; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:12:7: ( 'delta' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:12:9: 'delta' + { + match("delta"); + + + } + + 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; + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:13:7: ( ';' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:13: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; + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:14:7: ( '+' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:14: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; + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:15:7: ( '-' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:15: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; + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:16:7: ( '*' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:16: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; + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:17:7: ( '/' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:17: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; + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:18:7: ( '(' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:18: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; + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:19:7: ( ')' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:19: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; + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:20:7: ( ',' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:20:9: ',' + { + match(','); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__22" + + // $ANTLR start "RULE_BOOLEAN" + public final void mRULE_BOOLEAN() throws RecognitionException { + try { + int _type = RULE_BOOLEAN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2469:14: ( ( 'true' | 'false' ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2469:16: ( 'true' | 'false' ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2469:16: ( 'true' | 'false' ) + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0=='t') ) { + alt1=1; + } + else if ( (LA1_0=='f') ) { + alt1=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 1, 0, input); + + throw nvae; + } + switch (alt1) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2469:17: 'true' + { + match("true"); + + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2469:24: 'false' + { + match("false"); + + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_BOOLEAN" + + // $ANTLR start "RULE_NUMBER" + public final void mRULE_NUMBER() throws RecognitionException { + try { + int _type = RULE_NUMBER; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2471:13: ( ( ( '0' .. '9' )+ ( '.' ( '0' .. '9' )* )? | '.' ( '0' .. '9' )+ ) ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )? ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2471:15: ( ( '0' .. '9' )+ ( '.' ( '0' .. '9' )* )? | '.' ( '0' .. '9' )+ ) ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )? + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2471:15: ( ( '0' .. '9' )+ ( '.' ( '0' .. '9' )* )? | '.' ( '0' .. '9' )+ ) + int alt6=2; + int LA6_0 = input.LA(1); + + if ( ((LA6_0>='0' && LA6_0<='9')) ) { + alt6=1; + } + else if ( (LA6_0=='.') ) { + alt6=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 6, 0, input); + + throw nvae; + } + switch (alt6) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2471:16: ( '0' .. '9' )+ ( '.' ( '0' .. '9' )* )? + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2471:16: ( '0' .. '9' )+ + int cnt2=0; + loop2: + do { + int alt2=2; + int LA2_0 = input.LA(1); + + if ( ((LA2_0>='0' && LA2_0<='9')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2471:17: '0' .. '9' + { + matchRange('0','9'); + + } + break; + + default : + if ( cnt2 >= 1 ) break loop2; + EarlyExitException eee = + new EarlyExitException(2, input); + throw eee; + } + cnt2++; + } while (true); + + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2471:28: ( '.' ( '0' .. '9' )* )? + int alt4=2; + int LA4_0 = input.LA(1); + + if ( (LA4_0=='.') ) { + alt4=1; + } + switch (alt4) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2471:29: '.' ( '0' .. '9' )* + { + match('.'); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2471:33: ( '0' .. '9' )* + loop3: + do { + int alt3=2; + int LA3_0 = input.LA(1); + + if ( ((LA3_0>='0' && LA3_0<='9')) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2471:34: '0' .. '9' + { + matchRange('0','9'); + + } + break; + + default : + break loop3; + } + } while (true); + + + } + break; + + } + + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2471:47: '.' ( '0' .. '9' )+ + { + match('.'); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2471:51: ( '0' .. '9' )+ + int cnt5=0; + loop5: + do { + int alt5=2; + int LA5_0 = input.LA(1); + + if ( ((LA5_0>='0' && LA5_0<='9')) ) { + alt5=1; + } + + + switch (alt5) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2471:52: '0' .. '9' + { + matchRange('0','9'); + + } + break; + + default : + if ( cnt5 >= 1 ) break loop5; + EarlyExitException eee = + new EarlyExitException(5, input); + throw eee; + } + cnt5++; + } while (true); + + + } + break; + + } + + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2471:64: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )? + int alt9=2; + int LA9_0 = input.LA(1); + + if ( (LA9_0=='E'||LA9_0=='e') ) { + alt9=1; + } + switch (alt9) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2471:65: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ + { + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2471:75: ( '+' | '-' )? + int alt7=2; + int LA7_0 = input.LA(1); + + if ( (LA7_0=='+'||LA7_0=='-') ) { + alt7=1; + } + switch (alt7) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g: + { + if ( input.LA(1)=='+'||input.LA(1)=='-' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + } + + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2471:86: ( '0' .. '9' )+ + int cnt8=0; + loop8: + do { + int alt8=2; + int LA8_0 = input.LA(1); + + if ( ((LA8_0>='0' && LA8_0<='9')) ) { + alt8=1; + } + + + switch (alt8) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2471:87: '0' .. '9' + { + matchRange('0','9'); + + } + break; + + default : + if ( cnt8 >= 1 ) break loop8; + EarlyExitException eee = + new EarlyExitException(8, input); + throw eee; + } + cnt8++; + } while (true); + + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_NUMBER" + + // $ANTLR start "RULE_INT" + public final void mRULE_INT() throws RecognitionException { + try { + int _type = RULE_INT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2473:10: ( 'this one has been deactivated' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2473:12: 'this one has been deactivated' + { + match("this one has been deactivated"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_INT" + + // $ANTLR start "RULE_ID" + public final void mRULE_ID() throws RecognitionException { + try { + int _type = RULE_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2475:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2475:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2475:11: ( '^' )? + int alt10=2; + int LA10_0 = input.LA(1); + + if ( (LA10_0=='^') ) { + alt10=1; + } + switch (alt10) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2475:11: '^' + { + match('^'); + + } + break; + + } + + if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2475:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + loop11: + do { + int alt11=2; + int LA11_0 = input.LA(1); + + if ( ((LA11_0>='0' && LA11_0<='9')||(LA11_0>='A' && LA11_0<='Z')||LA11_0=='_'||(LA11_0>='a' && LA11_0<='z')) ) { + alt11=1; + } + + + switch (alt11) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g: + { + if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop11; + } + } 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; + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2477:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2477:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2477:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + int alt14=2; + int LA14_0 = input.LA(1); + + if ( (LA14_0=='\"') ) { + alt14=1; + } + else if ( (LA14_0=='\'') ) { + alt14=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 14, 0, input); + + throw nvae; + } + switch (alt14) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2477:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + { + match('\"'); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2477:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* + loop12: + do { + int alt12=3; + int LA12_0 = input.LA(1); + + if ( (LA12_0=='\\') ) { + alt12=1; + } + else if ( ((LA12_0>='\u0000' && LA12_0<='!')||(LA12_0>='#' && LA12_0<='[')||(LA12_0>=']' && LA12_0<='\uFFFF')) ) { + alt12=2; + } + + + switch (alt12) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2477:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) + { + match('\\'); + if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2477:66: ~ ( ( '\\\\' | '\"' ) ) + { + 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 loop12; + } + } while (true); + + match('\"'); + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2477:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' + { + match('\''); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2477:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* + loop13: + do { + int alt13=3; + int LA13_0 = input.LA(1); + + if ( (LA13_0=='\\') ) { + alt13=1; + } + else if ( ((LA13_0>='\u0000' && LA13_0<='&')||(LA13_0>='(' && LA13_0<='[')||(LA13_0>=']' && LA13_0<='\uFFFF')) ) { + alt13=2; + } + + + switch (alt13) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2477:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) + { + match('\\'); + if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2477:137: ~ ( ( '\\\\' | '\\'' ) ) + { + 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 loop13; + } + } while (true); + + match('\''); + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_STRING" + + // $ANTLR start "RULE_ML_COMMENT" + public final void mRULE_ML_COMMENT() throws RecognitionException { + try { + int _type = RULE_ML_COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2479:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2479:19: '/*' ( options {greedy=false; } : . )* '*/' + { + match("/*"); + + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2479:24: ( options {greedy=false; } : . )* + loop15: + do { + int alt15=2; + int LA15_0 = input.LA(1); + + if ( (LA15_0=='*') ) { + int LA15_1 = input.LA(2); + + if ( (LA15_1=='/') ) { + alt15=2; + } + else if ( ((LA15_1>='\u0000' && LA15_1<='.')||(LA15_1>='0' && LA15_1<='\uFFFF')) ) { + alt15=1; + } + + + } + else if ( ((LA15_0>='\u0000' && LA15_0<=')')||(LA15_0>='+' && LA15_0<='\uFFFF')) ) { + alt15=1; + } + + + switch (alt15) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2479:52: . + { + matchAny(); + + } + break; + + default : + break loop15; + } + } 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; + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2481:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2481:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + { + match("//"); + + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2481:24: (~ ( ( '\\n' | '\\r' ) ) )* + loop16: + do { + int alt16=2; + int LA16_0 = input.LA(1); + + if ( ((LA16_0>='\u0000' && LA16_0<='\t')||(LA16_0>='\u000B' && LA16_0<='\f')||(LA16_0>='\u000E' && LA16_0<='\uFFFF')) ) { + alt16=1; + } + + + switch (alt16) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2481: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 loop16; + } + } while (true); + + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2481:40: ( ( '\\r' )? '\\n' )? + int alt18=2; + int LA18_0 = input.LA(1); + + if ( (LA18_0=='\n'||LA18_0=='\r') ) { + alt18=1; + } + switch (alt18) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2481:41: ( '\\r' )? '\\n' + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2481:41: ( '\\r' )? + int alt17=2; + int LA17_0 = input.LA(1); + + if ( (LA17_0=='\r') ) { + alt17=1; + } + switch (alt17) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2481: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; + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2483:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2483:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2483:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + int cnt19=0; + loop19: + do { + int alt19=2; + int LA19_0 = input.LA(1); + + if ( ((LA19_0>='\t' && LA19_0<='\n')||LA19_0=='\r'||LA19_0==' ') ) { + alt19=1; + } + + + switch (alt19) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.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 ( cnt19 >= 1 ) break loop19; + EarlyExitException eee = + new EarlyExitException(19, input); + throw eee; + } + cnt19++; + } 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; + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2485:16: ( . ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2485:18: . + { + matchAny(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ANY_OTHER" + + public void mTokens() throws RecognitionException { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | RULE_BOOLEAN | RULE_NUMBER | RULE_INT | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) + int alt20=19; + alt20 = dfa20.predict(input); + switch (alt20) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:10: T__13 + { + mT__13(); + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:16: T__14 + { + mT__14(); + + } + break; + case 3 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:22: T__15 + { + mT__15(); + + } + break; + case 4 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:28: T__16 + { + mT__16(); + + } + break; + case 5 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:34: T__17 + { + mT__17(); + + } + break; + case 6 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:40: T__18 + { + mT__18(); + + } + break; + case 7 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:46: T__19 + { + mT__19(); + + } + break; + case 8 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:52: T__20 + { + mT__20(); + + } + break; + case 9 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:58: T__21 + { + mT__21(); + + } + break; + case 10 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:64: T__22 + { + mT__22(); + + } + break; + case 11 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:70: RULE_BOOLEAN + { + mRULE_BOOLEAN(); + + } + break; + case 12 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:83: RULE_NUMBER + { + mRULE_NUMBER(); + + } + break; + case 13 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:95: RULE_INT + { + mRULE_INT(); + + } + break; + case 14 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:104: RULE_ID + { + mRULE_ID(); + + } + break; + case 15 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:112: RULE_STRING + { + mRULE_STRING(); + + } + break; + case 16 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:124: RULE_ML_COMMENT + { + mRULE_ML_COMMENT(); + + } + break; + case 17 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:140: RULE_SL_COMMENT + { + mRULE_SL_COMMENT(); + + } + break; + case 18 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:156: RULE_WS + { + mRULE_WS(); + + } + break; + case 19 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1:164: RULE_ANY_OTHER + { + mRULE_ANY_OTHER(); + + } + break; + + } + + } + + + protected DFA20 dfa20 = new DFA20(this); + static final String DFA20_eotS = + "\2\uffff\1\27\4\uffff\1\36\3\uffff\2\27\1\uffff\2\24\1\uffff\2\24"+ + "\3\uffff\1\27\13\uffff\3\27\3\uffff\5\27\1\61\2\27\1\64\2\uffff"+ + "\1\61\1\uffff"; + static final String DFA20_eofS = + "\65\uffff"; + static final String DFA20_minS = + "\1\0\1\uffff\1\145\4\uffff\1\52\3\uffff\1\150\1\141\1\uffff\1\60"+ + "\1\101\1\uffff\2\0\3\uffff\1\154\13\uffff\1\165\1\151\1\154\3\uffff"+ + "\1\164\1\145\2\163\1\141\1\60\1\40\1\145\1\60\2\uffff\1\60\1\uffff"; + static final String DFA20_maxS = + "\1\uffff\1\uffff\1\145\4\uffff\1\57\3\uffff\1\162\1\141\1\uffff"+ + "\1\71\1\172\1\uffff\2\uffff\3\uffff\1\154\13\uffff\1\165\1\151\1"+ + "\154\3\uffff\1\164\1\145\2\163\1\141\1\172\1\40\1\145\1\172\2\uffff"+ + "\1\172\1\uffff"; + static final String DFA20_acceptS = + "\1\uffff\1\1\1\uffff\1\3\1\4\1\5\1\6\1\uffff\1\10\1\11\1\12\2\uffff"+ + "\1\14\2\uffff\1\16\2\uffff\1\22\1\23\1\1\1\uffff\1\16\1\3\1\4\1"+ + "\5\1\6\1\20\1\21\1\7\1\10\1\11\1\12\3\uffff\1\14\1\17\1\22\11\uffff"+ + "\1\13\1\15\1\uffff\1\2"; + static final String DFA20_specialS = + "\1\2\20\uffff\1\1\1\0\42\uffff}>"; + static final String[] DFA20_transitionS = { + "\11\24\2\23\2\24\1\23\22\24\1\23\1\24\1\21\4\24\1\22\1\10\1"+ + "\11\1\6\1\4\1\12\1\5\1\16\1\7\12\15\1\24\1\3\1\24\1\1\3\24\32"+ + "\20\3\24\1\17\1\20\1\24\3\20\1\2\1\20\1\14\15\20\1\13\6\20\uff85"+ + "\24", + "", + "\1\26", + "", + "", + "", + "", + "\1\34\4\uffff\1\35", + "", + "", + "", + "\1\43\11\uffff\1\42", + "\1\44", + "", + "\12\45", + "\32\27\4\uffff\1\27\1\uffff\32\27", + "", + "\0\46", + "\0\46", + "", + "", + "", + "\1\50", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\51", + "\1\52", + "\1\53", + "", + "", + "", + "\1\54", + "\1\55", + "\1\56", + "\1\57", + "\1\60", + "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27", + "\1\62", + "\1\63", + "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27", + "", + "", + "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27", + "" + }; + + static final short[] DFA20_eot = DFA.unpackEncodedString(DFA20_eotS); + static final short[] DFA20_eof = DFA.unpackEncodedString(DFA20_eofS); + static final char[] DFA20_min = DFA.unpackEncodedStringToUnsignedChars(DFA20_minS); + static final char[] DFA20_max = DFA.unpackEncodedStringToUnsignedChars(DFA20_maxS); + static final short[] DFA20_accept = DFA.unpackEncodedString(DFA20_acceptS); + static final short[] DFA20_special = DFA.unpackEncodedString(DFA20_specialS); + static final short[][] DFA20_transition; + + static { + int numStates = DFA20_transitionS.length; + DFA20_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA20_transition[i] = DFA.unpackEncodedString(DFA20_transitionS[i]); + } + } + + class DFA20 extends DFA { + + public DFA20(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 20; + this.eot = DFA20_eot; + this.eof = DFA20_eof; + this.min = DFA20_min; + this.max = DFA20_max; + this.accept = DFA20_accept; + this.special = DFA20_special; + this.transition = DFA20_transition; + } + public String getDescription() { + return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | RULE_BOOLEAN | RULE_NUMBER | RULE_INT | 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; + int _s = s; + switch ( s ) { + case 0 : + int LA20_18 = input.LA(1); + + s = -1; + if ( ((LA20_18>='\u0000' && LA20_18<='\uFFFF')) ) {s = 38;} + + else s = 20; + + if ( s>=0 ) return s; + break; + case 1 : + int LA20_17 = input.LA(1); + + s = -1; + if ( ((LA20_17>='\u0000' && LA20_17<='\uFFFF')) ) {s = 38;} + + else s = 20; + + if ( s>=0 ) return s; + break; + case 2 : + int LA20_0 = input.LA(1); + + s = -1; + if ( (LA20_0=='=') ) {s = 1;} + + else if ( (LA20_0=='d') ) {s = 2;} + + else if ( (LA20_0==';') ) {s = 3;} + + else if ( (LA20_0=='+') ) {s = 4;} + + else if ( (LA20_0=='-') ) {s = 5;} + + else if ( (LA20_0=='*') ) {s = 6;} + + else if ( (LA20_0=='/') ) {s = 7;} + + else if ( (LA20_0=='(') ) {s = 8;} + + else if ( (LA20_0==')') ) {s = 9;} + + else if ( (LA20_0==',') ) {s = 10;} + + else if ( (LA20_0=='t') ) {s = 11;} + + else if ( (LA20_0=='f') ) {s = 12;} + + else if ( ((LA20_0>='0' && LA20_0<='9')) ) {s = 13;} + + else if ( (LA20_0=='.') ) {s = 14;} + + else if ( (LA20_0=='^') ) {s = 15;} + + else if ( ((LA20_0>='A' && LA20_0<='Z')||LA20_0=='_'||(LA20_0>='a' && LA20_0<='c')||LA20_0=='e'||(LA20_0>='g' && LA20_0<='s')||(LA20_0>='u' && LA20_0<='z')) ) {s = 16;} + + else if ( (LA20_0=='\"') ) {s = 17;} + + else if ( (LA20_0=='\'') ) {s = 18;} + + else if ( ((LA20_0>='\t' && LA20_0<='\n')||LA20_0=='\r'||LA20_0==' ') ) {s = 19;} + + else if ( ((LA20_0>='\u0000' && LA20_0<='\b')||(LA20_0>='\u000B' && LA20_0<='\f')||(LA20_0>='\u000E' && LA20_0<='\u001F')||LA20_0=='!'||(LA20_0>='#' && LA20_0<='&')||LA20_0==':'||LA20_0=='<'||(LA20_0>='>' && LA20_0<='@')||(LA20_0>='[' && LA20_0<=']')||LA20_0=='`'||(LA20_0>='{' && LA20_0<='\uFFFF')) ) {s = 20;} + + if ( s>=0 ) return s; + break; + } + NoViableAltException nvae = + new NoViableAltException(getDescription(), 20, _s, input); + error(nvae); + throw nvae; + } + } + + +}
\ No newline at end of file diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDLParser.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDLParser.java new file mode 100644 index 000000000..177f8d389 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDLParser.java @@ -0,0 +1,6558 @@ +package org.eclipse.stem.model.ctdl.ui.contentassist.antlr.internal; + +import org.antlr.runtime.BitSet; +import org.antlr.runtime.NoViableAltException; +import org.antlr.runtime.RecognitionException; +import org.antlr.runtime.RecognizerSharedState; +import org.antlr.runtime.TokenStream; +import org.eclipse.stem.model.ctdl.services.CTDLGrammarAccess; +import org.eclipse.xtext.Grammar; +import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser; + +@SuppressWarnings("all") +public class InternalCTDLParser extends AbstractInternalContentAssistParser { + public static final String[] tokenNames = new String[] { + "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_NUMBER", "RULE_BOOLEAN", "RULE_STRING", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'='", "'delta'", "';'", "'+'", "'-'", "'*'", "'/'", "'('", "')'", "','" + }; + public static final int RULE_BOOLEAN=6; + public static final int RULE_ID=4; + public static final int T__22=22; + public static final int RULE_ANY_OTHER=12; + public static final int T__21=21; + public static final int T__20=20; + public static final int RULE_SL_COMMENT=10; + public static final int EOF=-1; + public static final int RULE_ML_COMMENT=9; + public static final int T__19=19; + public static final int RULE_STRING=7; + public static final int T__16=16; + public static final int T__15=15; + public static final int T__18=18; + public static final int T__17=17; + public static final int RULE_NUMBER=5; + public static final int T__14=14; + public static final int T__13=13; + public static final int RULE_INT=8; + public static final int RULE_WS=11; + + // delegates + // delegators + + + public InternalCTDLParser(TokenStream input) { + this(input, new RecognizerSharedState()); + } + public InternalCTDLParser(TokenStream input, RecognizerSharedState state) { + super(input, state); + + } + + + public String[] getTokenNames() { return InternalCTDLParser.tokenNames; } + public String getGrammarFileName() { return "../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g"; } + + + + private CTDLGrammarAccess grammarAccess; + + public void setGrammarAccess(CTDLGrammarAccess grammarAccess) { + this.grammarAccess = grammarAccess; + } + + @Override + protected Grammar getGrammar() { + return grammarAccess.getGrammar(); + } + + @Override + protected String getValueForTokenName(String tokenName) { + return tokenName; + } + + + + + // $ANTLR start "entryRuleCompartmentTransitionDefinitions" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:60:1: entryRuleCompartmentTransitionDefinitions : ruleCompartmentTransitionDefinitions EOF ; + public final void entryRuleCompartmentTransitionDefinitions() throws RecognitionException { + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:61:1: ( ruleCompartmentTransitionDefinitions EOF ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:62:1: ruleCompartmentTransitionDefinitions EOF + { + before(grammarAccess.getCompartmentTransitionDefinitionsRule()); + pushFollow(FOLLOW_ruleCompartmentTransitionDefinitions_in_entryRuleCompartmentTransitionDefinitions61); + ruleCompartmentTransitionDefinitions(); + + state._fsp--; + + after(grammarAccess.getCompartmentTransitionDefinitionsRule()); + match(input,EOF,FOLLOW_EOF_in_entryRuleCompartmentTransitionDefinitions68); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleCompartmentTransitionDefinitions" + + + // $ANTLR start "ruleCompartmentTransitionDefinitions" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:69:1: ruleCompartmentTransitionDefinitions : ( ( rule__CompartmentTransitionDefinitions__Group__0 ) ) ; + public final void ruleCompartmentTransitionDefinitions() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:73:2: ( ( ( rule__CompartmentTransitionDefinitions__Group__0 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:74:1: ( ( rule__CompartmentTransitionDefinitions__Group__0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:74:1: ( ( rule__CompartmentTransitionDefinitions__Group__0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:75:1: ( rule__CompartmentTransitionDefinitions__Group__0 ) + { + before(grammarAccess.getCompartmentTransitionDefinitionsAccess().getGroup()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:76:1: ( rule__CompartmentTransitionDefinitions__Group__0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:76:2: rule__CompartmentTransitionDefinitions__Group__0 + { + pushFollow(FOLLOW_rule__CompartmentTransitionDefinitions__Group__0_in_ruleCompartmentTransitionDefinitions94); + rule__CompartmentTransitionDefinitions__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getCompartmentTransitionDefinitionsAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleCompartmentTransitionDefinitions" + + + // $ANTLR start "entryRuleTransitionBlock" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:90:1: entryRuleTransitionBlock : ruleTransitionBlock EOF ; + public final void entryRuleTransitionBlock() throws RecognitionException { + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:91:1: ( ruleTransitionBlock EOF ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:92:1: ruleTransitionBlock EOF + { + before(grammarAccess.getTransitionBlockRule()); + pushFollow(FOLLOW_ruleTransitionBlock_in_entryRuleTransitionBlock123); + ruleTransitionBlock(); + + state._fsp--; + + after(grammarAccess.getTransitionBlockRule()); + match(input,EOF,FOLLOW_EOF_in_entryRuleTransitionBlock130); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleTransitionBlock" + + + // $ANTLR start "ruleTransitionBlock" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:99:1: ruleTransitionBlock : ( ( rule__TransitionBlock__BlockAssignment ) ) ; + public final void ruleTransitionBlock() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:103:2: ( ( ( rule__TransitionBlock__BlockAssignment ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:104:1: ( ( rule__TransitionBlock__BlockAssignment ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:104:1: ( ( rule__TransitionBlock__BlockAssignment ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:105:1: ( rule__TransitionBlock__BlockAssignment ) + { + before(grammarAccess.getTransitionBlockAccess().getBlockAssignment()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:106:1: ( rule__TransitionBlock__BlockAssignment ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:106:2: rule__TransitionBlock__BlockAssignment + { + pushFollow(FOLLOW_rule__TransitionBlock__BlockAssignment_in_ruleTransitionBlock156); + rule__TransitionBlock__BlockAssignment(); + + state._fsp--; + + + } + + after(grammarAccess.getTransitionBlockAccess().getBlockAssignment()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleTransitionBlock" + + + // $ANTLR start "entryRuleBlock" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:122:1: entryRuleBlock : ruleBlock EOF ; + public final void entryRuleBlock() throws RecognitionException { + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:123:1: ( ruleBlock EOF ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:124:1: ruleBlock EOF + { + before(grammarAccess.getBlockRule()); + pushFollow(FOLLOW_ruleBlock_in_entryRuleBlock187); + ruleBlock(); + + state._fsp--; + + after(grammarAccess.getBlockRule()); + match(input,EOF,FOLLOW_EOF_in_entryRuleBlock194); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleBlock" + + + // $ANTLR start "ruleBlock" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:131:1: ruleBlock : ( ( rule__Block__Group__0 ) ) ; + public final void ruleBlock() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:135:2: ( ( ( rule__Block__Group__0 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:136:1: ( ( rule__Block__Group__0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:136:1: ( ( rule__Block__Group__0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:137:1: ( rule__Block__Group__0 ) + { + before(grammarAccess.getBlockAccess().getGroup()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:138:1: ( rule__Block__Group__0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:138:2: rule__Block__Group__0 + { + pushFollow(FOLLOW_rule__Block__Group__0_in_ruleBlock220); + rule__Block__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getBlockAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleBlock" + + + // $ANTLR start "entryRuleDefStatement" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:150:1: entryRuleDefStatement : ruleDefStatement EOF ; + public final void entryRuleDefStatement() throws RecognitionException { + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:151:1: ( ruleDefStatement EOF ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:152:1: ruleDefStatement EOF + { + before(grammarAccess.getDefStatementRule()); + pushFollow(FOLLOW_ruleDefStatement_in_entryRuleDefStatement247); + ruleDefStatement(); + + state._fsp--; + + after(grammarAccess.getDefStatementRule()); + match(input,EOF,FOLLOW_EOF_in_entryRuleDefStatement254); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleDefStatement" + + + // $ANTLR start "ruleDefStatement" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:159:1: ruleDefStatement : ( ( rule__DefStatement__Group__0 ) ) ; + public final void ruleDefStatement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:163:2: ( ( ( rule__DefStatement__Group__0 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:164:1: ( ( rule__DefStatement__Group__0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:164:1: ( ( rule__DefStatement__Group__0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:165:1: ( rule__DefStatement__Group__0 ) + { + before(grammarAccess.getDefStatementAccess().getGroup()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:166:1: ( rule__DefStatement__Group__0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:166:2: rule__DefStatement__Group__0 + { + pushFollow(FOLLOW_rule__DefStatement__Group__0_in_ruleDefStatement280); + rule__DefStatement__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getDefStatementAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleDefStatement" + + + // $ANTLR start "entryRuleReturnStatement" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:178:1: entryRuleReturnStatement : ruleReturnStatement EOF ; + public final void entryRuleReturnStatement() throws RecognitionException { + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:179:1: ( ruleReturnStatement EOF ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:180:1: ruleReturnStatement EOF + { + before(grammarAccess.getReturnStatementRule()); + pushFollow(FOLLOW_ruleReturnStatement_in_entryRuleReturnStatement307); + ruleReturnStatement(); + + state._fsp--; + + after(grammarAccess.getReturnStatementRule()); + match(input,EOF,FOLLOW_EOF_in_entryRuleReturnStatement314); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleReturnStatement" + + + // $ANTLR start "ruleReturnStatement" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:187:1: ruleReturnStatement : ( ( rule__ReturnStatement__Group__0 ) ) ; + public final void ruleReturnStatement() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:191:2: ( ( ( rule__ReturnStatement__Group__0 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:192:1: ( ( rule__ReturnStatement__Group__0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:192:1: ( ( rule__ReturnStatement__Group__0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:193:1: ( rule__ReturnStatement__Group__0 ) + { + before(grammarAccess.getReturnStatementAccess().getGroup()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:194:1: ( rule__ReturnStatement__Group__0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:194:2: rule__ReturnStatement__Group__0 + { + pushFollow(FOLLOW_rule__ReturnStatement__Group__0_in_ruleReturnStatement340); + rule__ReturnStatement__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getReturnStatementAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleReturnStatement" + + + // $ANTLR start "entryRuleEvaluation" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:206:1: entryRuleEvaluation : ruleEvaluation EOF ; + public final void entryRuleEvaluation() throws RecognitionException { + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:207:1: ( ruleEvaluation EOF ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:208:1: ruleEvaluation EOF + { + before(grammarAccess.getEvaluationRule()); + pushFollow(FOLLOW_ruleEvaluation_in_entryRuleEvaluation367); + ruleEvaluation(); + + state._fsp--; + + after(grammarAccess.getEvaluationRule()); + match(input,EOF,FOLLOW_EOF_in_entryRuleEvaluation374); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleEvaluation" + + + // $ANTLR start "ruleEvaluation" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:215:1: ruleEvaluation : ( ( rule__Evaluation__Group__0 ) ) ; + public final void ruleEvaluation() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:219:2: ( ( ( rule__Evaluation__Group__0 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:220:1: ( ( rule__Evaluation__Group__0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:220:1: ( ( rule__Evaluation__Group__0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:221:1: ( rule__Evaluation__Group__0 ) + { + before(grammarAccess.getEvaluationAccess().getGroup()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:222:1: ( rule__Evaluation__Group__0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:222:2: rule__Evaluation__Group__0 + { + pushFollow(FOLLOW_rule__Evaluation__Group__0_in_ruleEvaluation400); + rule__Evaluation__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getEvaluationAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleEvaluation" + + + // $ANTLR start "entryRuleExpression" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:234:1: entryRuleExpression : ruleExpression EOF ; + public final void entryRuleExpression() throws RecognitionException { + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:235:1: ( ruleExpression EOF ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:236:1: ruleExpression EOF + { + before(grammarAccess.getExpressionRule()); + pushFollow(FOLLOW_ruleExpression_in_entryRuleExpression427); + ruleExpression(); + + state._fsp--; + + after(grammarAccess.getExpressionRule()); + match(input,EOF,FOLLOW_EOF_in_entryRuleExpression434); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleExpression" + + + // $ANTLR start "ruleExpression" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:243:1: ruleExpression : ( ruleAddition ) ; + public final void ruleExpression() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:247:2: ( ( ruleAddition ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:248:1: ( ruleAddition ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:248:1: ( ruleAddition ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:249:1: ruleAddition + { + before(grammarAccess.getExpressionAccess().getAdditionParserRuleCall()); + pushFollow(FOLLOW_ruleAddition_in_ruleExpression460); + ruleAddition(); + + state._fsp--; + + after(grammarAccess.getExpressionAccess().getAdditionParserRuleCall()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleExpression" + + + // $ANTLR start "entryRuleAddition" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:262:1: entryRuleAddition : ruleAddition EOF ; + public final void entryRuleAddition() throws RecognitionException { + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:263:1: ( ruleAddition EOF ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:264:1: ruleAddition EOF + { + before(grammarAccess.getAdditionRule()); + pushFollow(FOLLOW_ruleAddition_in_entryRuleAddition486); + ruleAddition(); + + state._fsp--; + + after(grammarAccess.getAdditionRule()); + match(input,EOF,FOLLOW_EOF_in_entryRuleAddition493); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleAddition" + + + // $ANTLR start "ruleAddition" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:271:1: ruleAddition : ( ( rule__Addition__Group__0 ) ) ; + public final void ruleAddition() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:275:2: ( ( ( rule__Addition__Group__0 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:276:1: ( ( rule__Addition__Group__0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:276:1: ( ( rule__Addition__Group__0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:277:1: ( rule__Addition__Group__0 ) + { + before(grammarAccess.getAdditionAccess().getGroup()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:278:1: ( rule__Addition__Group__0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:278:2: rule__Addition__Group__0 + { + pushFollow(FOLLOW_rule__Addition__Group__0_in_ruleAddition519); + rule__Addition__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getAdditionAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleAddition" + + + // $ANTLR start "entryRuleMultiplication" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:290:1: entryRuleMultiplication : ruleMultiplication EOF ; + public final void entryRuleMultiplication() throws RecognitionException { + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:291:1: ( ruleMultiplication EOF ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:292:1: ruleMultiplication EOF + { + before(grammarAccess.getMultiplicationRule()); + pushFollow(FOLLOW_ruleMultiplication_in_entryRuleMultiplication546); + ruleMultiplication(); + + state._fsp--; + + after(grammarAccess.getMultiplicationRule()); + match(input,EOF,FOLLOW_EOF_in_entryRuleMultiplication553); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleMultiplication" + + + // $ANTLR start "ruleMultiplication" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:299:1: ruleMultiplication : ( ( rule__Multiplication__Group__0 ) ) ; + public final void ruleMultiplication() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:303:2: ( ( ( rule__Multiplication__Group__0 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:304:1: ( ( rule__Multiplication__Group__0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:304:1: ( ( rule__Multiplication__Group__0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:305:1: ( rule__Multiplication__Group__0 ) + { + before(grammarAccess.getMultiplicationAccess().getGroup()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:306:1: ( rule__Multiplication__Group__0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:306:2: rule__Multiplication__Group__0 + { + pushFollow(FOLLOW_rule__Multiplication__Group__0_in_ruleMultiplication579); + rule__Multiplication__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getMultiplicationAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleMultiplication" + + + // $ANTLR start "entryRuleNegatedExpression" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:318:1: entryRuleNegatedExpression : ruleNegatedExpression EOF ; + public final void entryRuleNegatedExpression() throws RecognitionException { + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:319:1: ( ruleNegatedExpression EOF ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:320:1: ruleNegatedExpression EOF + { + before(grammarAccess.getNegatedExpressionRule()); + pushFollow(FOLLOW_ruleNegatedExpression_in_entryRuleNegatedExpression606); + ruleNegatedExpression(); + + state._fsp--; + + after(grammarAccess.getNegatedExpressionRule()); + match(input,EOF,FOLLOW_EOF_in_entryRuleNegatedExpression613); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleNegatedExpression" + + + // $ANTLR start "ruleNegatedExpression" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:327:1: ruleNegatedExpression : ( ( rule__NegatedExpression__Group__0 ) ) ; + public final void ruleNegatedExpression() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:331:2: ( ( ( rule__NegatedExpression__Group__0 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:332:1: ( ( rule__NegatedExpression__Group__0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:332:1: ( ( rule__NegatedExpression__Group__0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:333:1: ( rule__NegatedExpression__Group__0 ) + { + before(grammarAccess.getNegatedExpressionAccess().getGroup()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:334:1: ( rule__NegatedExpression__Group__0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:334:2: rule__NegatedExpression__Group__0 + { + pushFollow(FOLLOW_rule__NegatedExpression__Group__0_in_ruleNegatedExpression639); + rule__NegatedExpression__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getNegatedExpressionAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleNegatedExpression" + + + // $ANTLR start "entryRulePrimaryExpression" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:346:1: entryRulePrimaryExpression : rulePrimaryExpression EOF ; + public final void entryRulePrimaryExpression() throws RecognitionException { + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:347:1: ( rulePrimaryExpression EOF ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:348:1: rulePrimaryExpression EOF + { + before(grammarAccess.getPrimaryExpressionRule()); + pushFollow(FOLLOW_rulePrimaryExpression_in_entryRulePrimaryExpression666); + rulePrimaryExpression(); + + state._fsp--; + + after(grammarAccess.getPrimaryExpressionRule()); + match(input,EOF,FOLLOW_EOF_in_entryRulePrimaryExpression673); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRulePrimaryExpression" + + + // $ANTLR start "rulePrimaryExpression" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:355:1: rulePrimaryExpression : ( ( rule__PrimaryExpression__Alternatives ) ) ; + public final void rulePrimaryExpression() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:359:2: ( ( ( rule__PrimaryExpression__Alternatives ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:360:1: ( ( rule__PrimaryExpression__Alternatives ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:360:1: ( ( rule__PrimaryExpression__Alternatives ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:361:1: ( rule__PrimaryExpression__Alternatives ) + { + before(grammarAccess.getPrimaryExpressionAccess().getAlternatives()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:362:1: ( rule__PrimaryExpression__Alternatives ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:362:2: rule__PrimaryExpression__Alternatives + { + pushFollow(FOLLOW_rule__PrimaryExpression__Alternatives_in_rulePrimaryExpression699); + rule__PrimaryExpression__Alternatives(); + + state._fsp--; + + + } + + after(grammarAccess.getPrimaryExpressionAccess().getAlternatives()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rulePrimaryExpression" + + + // $ANTLR start "entryRuleFunctionArgument" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:374:1: entryRuleFunctionArgument : ruleFunctionArgument EOF ; + public final void entryRuleFunctionArgument() throws RecognitionException { + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:375:1: ( ruleFunctionArgument EOF ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:376:1: ruleFunctionArgument EOF + { + before(grammarAccess.getFunctionArgumentRule()); + pushFollow(FOLLOW_ruleFunctionArgument_in_entryRuleFunctionArgument726); + ruleFunctionArgument(); + + state._fsp--; + + after(grammarAccess.getFunctionArgumentRule()); + match(input,EOF,FOLLOW_EOF_in_entryRuleFunctionArgument733); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleFunctionArgument" + + + // $ANTLR start "ruleFunctionArgument" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:383:1: ruleFunctionArgument : ( ( rule__FunctionArgument__Alternatives ) ) ; + public final void ruleFunctionArgument() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:387:2: ( ( ( rule__FunctionArgument__Alternatives ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:388:1: ( ( rule__FunctionArgument__Alternatives ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:388:1: ( ( rule__FunctionArgument__Alternatives ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:389:1: ( rule__FunctionArgument__Alternatives ) + { + before(grammarAccess.getFunctionArgumentAccess().getAlternatives()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:390:1: ( rule__FunctionArgument__Alternatives ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:390:2: rule__FunctionArgument__Alternatives + { + pushFollow(FOLLOW_rule__FunctionArgument__Alternatives_in_ruleFunctionArgument759); + rule__FunctionArgument__Alternatives(); + + state._fsp--; + + + } + + after(grammarAccess.getFunctionArgumentAccess().getAlternatives()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleFunctionArgument" + + + // $ANTLR start "rule__Addition__Alternatives_1_0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:414:1: rule__Addition__Alternatives_1_0 : ( ( ( rule__Addition__Group_1_0_0__0 ) ) | ( ( rule__Addition__Group_1_0_1__0 ) ) ); + public final void rule__Addition__Alternatives_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:418:1: ( ( ( rule__Addition__Group_1_0_0__0 ) ) | ( ( rule__Addition__Group_1_0_1__0 ) ) ) + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0==16) ) { + alt1=1; + } + else if ( (LA1_0==17) ) { + alt1=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 1, 0, input); + + throw nvae; + } + switch (alt1) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:419:1: ( ( rule__Addition__Group_1_0_0__0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:419:1: ( ( rule__Addition__Group_1_0_0__0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:420:1: ( rule__Addition__Group_1_0_0__0 ) + { + before(grammarAccess.getAdditionAccess().getGroup_1_0_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:421:1: ( rule__Addition__Group_1_0_0__0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:421:2: rule__Addition__Group_1_0_0__0 + { + pushFollow(FOLLOW_rule__Addition__Group_1_0_0__0_in_rule__Addition__Alternatives_1_0807); + rule__Addition__Group_1_0_0__0(); + + state._fsp--; + + + } + + after(grammarAccess.getAdditionAccess().getGroup_1_0_0()); + + } + + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:425:6: ( ( rule__Addition__Group_1_0_1__0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:425:6: ( ( rule__Addition__Group_1_0_1__0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:426:1: ( rule__Addition__Group_1_0_1__0 ) + { + before(grammarAccess.getAdditionAccess().getGroup_1_0_1()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:427:1: ( rule__Addition__Group_1_0_1__0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:427:2: rule__Addition__Group_1_0_1__0 + { + pushFollow(FOLLOW_rule__Addition__Group_1_0_1__0_in_rule__Addition__Alternatives_1_0825); + rule__Addition__Group_1_0_1__0(); + + state._fsp--; + + + } + + after(grammarAccess.getAdditionAccess().getGroup_1_0_1()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Alternatives_1_0" + + + // $ANTLR start "rule__Multiplication__Alternatives_1_0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:436:1: rule__Multiplication__Alternatives_1_0 : ( ( ( rule__Multiplication__Group_1_0_0__0 ) ) | ( ( rule__Multiplication__Group_1_0_1__0 ) ) ); + public final void rule__Multiplication__Alternatives_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:440:1: ( ( ( rule__Multiplication__Group_1_0_0__0 ) ) | ( ( rule__Multiplication__Group_1_0_1__0 ) ) ) + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0==18) ) { + alt2=1; + } + else if ( (LA2_0==19) ) { + alt2=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 2, 0, input); + + throw nvae; + } + switch (alt2) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:441:1: ( ( rule__Multiplication__Group_1_0_0__0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:441:1: ( ( rule__Multiplication__Group_1_0_0__0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:442:1: ( rule__Multiplication__Group_1_0_0__0 ) + { + before(grammarAccess.getMultiplicationAccess().getGroup_1_0_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:443:1: ( rule__Multiplication__Group_1_0_0__0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:443:2: rule__Multiplication__Group_1_0_0__0 + { + pushFollow(FOLLOW_rule__Multiplication__Group_1_0_0__0_in_rule__Multiplication__Alternatives_1_0858); + rule__Multiplication__Group_1_0_0__0(); + + state._fsp--; + + + } + + after(grammarAccess.getMultiplicationAccess().getGroup_1_0_0()); + + } + + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:447:6: ( ( rule__Multiplication__Group_1_0_1__0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:447:6: ( ( rule__Multiplication__Group_1_0_1__0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:448:1: ( rule__Multiplication__Group_1_0_1__0 ) + { + before(grammarAccess.getMultiplicationAccess().getGroup_1_0_1()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:449:1: ( rule__Multiplication__Group_1_0_1__0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:449:2: rule__Multiplication__Group_1_0_1__0 + { + pushFollow(FOLLOW_rule__Multiplication__Group_1_0_1__0_in_rule__Multiplication__Alternatives_1_0876); + rule__Multiplication__Group_1_0_1__0(); + + state._fsp--; + + + } + + after(grammarAccess.getMultiplicationAccess().getGroup_1_0_1()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Alternatives_1_0" + + + // $ANTLR start "rule__PrimaryExpression__Alternatives" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:458:1: rule__PrimaryExpression__Alternatives : ( ( ( rule__PrimaryExpression__Group_0__0 ) ) | ( ( rule__PrimaryExpression__Group_1__0 ) ) | ( ( rule__PrimaryExpression__Group_2__0 ) ) | ( ( rule__PrimaryExpression__Group_3__0 ) ) ); + public final void rule__PrimaryExpression__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:462:1: ( ( ( rule__PrimaryExpression__Group_0__0 ) ) | ( ( rule__PrimaryExpression__Group_1__0 ) ) | ( ( rule__PrimaryExpression__Group_2__0 ) ) | ( ( rule__PrimaryExpression__Group_3__0 ) ) ) + int alt3=4; + switch ( input.LA(1) ) { + case RULE_NUMBER: + { + alt3=1; + } + break; + case 20: + { + alt3=2; + } + break; + case RULE_ID: + { + int LA3_3 = input.LA(2); + + if ( (LA3_3==EOF||(LA3_3>=15 && LA3_3<=19)||(LA3_3>=21 && LA3_3<=22)) ) { + alt3=4; + } + else if ( (LA3_3==20) ) { + alt3=3; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 3, 3, input); + + throw nvae; + } + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 3, 0, input); + + throw nvae; + } + + switch (alt3) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:463:1: ( ( rule__PrimaryExpression__Group_0__0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:463:1: ( ( rule__PrimaryExpression__Group_0__0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:464:1: ( rule__PrimaryExpression__Group_0__0 ) + { + before(grammarAccess.getPrimaryExpressionAccess().getGroup_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:465:1: ( rule__PrimaryExpression__Group_0__0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:465:2: rule__PrimaryExpression__Group_0__0 + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_0__0_in_rule__PrimaryExpression__Alternatives909); + rule__PrimaryExpression__Group_0__0(); + + state._fsp--; + + + } + + after(grammarAccess.getPrimaryExpressionAccess().getGroup_0()); + + } + + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:469:6: ( ( rule__PrimaryExpression__Group_1__0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:469:6: ( ( rule__PrimaryExpression__Group_1__0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:470:1: ( rule__PrimaryExpression__Group_1__0 ) + { + before(grammarAccess.getPrimaryExpressionAccess().getGroup_1()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:471:1: ( rule__PrimaryExpression__Group_1__0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:471:2: rule__PrimaryExpression__Group_1__0 + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_1__0_in_rule__PrimaryExpression__Alternatives927); + rule__PrimaryExpression__Group_1__0(); + + state._fsp--; + + + } + + after(grammarAccess.getPrimaryExpressionAccess().getGroup_1()); + + } + + + } + break; + case 3 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:475:6: ( ( rule__PrimaryExpression__Group_2__0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:475:6: ( ( rule__PrimaryExpression__Group_2__0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:476:1: ( rule__PrimaryExpression__Group_2__0 ) + { + before(grammarAccess.getPrimaryExpressionAccess().getGroup_2()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:477:1: ( rule__PrimaryExpression__Group_2__0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:477:2: rule__PrimaryExpression__Group_2__0 + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_2__0_in_rule__PrimaryExpression__Alternatives945); + rule__PrimaryExpression__Group_2__0(); + + state._fsp--; + + + } + + after(grammarAccess.getPrimaryExpressionAccess().getGroup_2()); + + } + + + } + break; + case 4 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:481:6: ( ( rule__PrimaryExpression__Group_3__0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:481:6: ( ( rule__PrimaryExpression__Group_3__0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:482:1: ( rule__PrimaryExpression__Group_3__0 ) + { + before(grammarAccess.getPrimaryExpressionAccess().getGroup_3()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:483:1: ( rule__PrimaryExpression__Group_3__0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:483:2: rule__PrimaryExpression__Group_3__0 + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_3__0_in_rule__PrimaryExpression__Alternatives963); + rule__PrimaryExpression__Group_3__0(); + + state._fsp--; + + + } + + after(grammarAccess.getPrimaryExpressionAccess().getGroup_3()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Alternatives" + + + // $ANTLR start "rule__FunctionArgument__Alternatives" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:492:1: rule__FunctionArgument__Alternatives : ( ( ( rule__FunctionArgument__Group_0__0 ) ) | ( ( rule__FunctionArgument__Group_1__0 ) ) | ( ruleExpression ) ); + public final void rule__FunctionArgument__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:496:1: ( ( ( rule__FunctionArgument__Group_0__0 ) ) | ( ( rule__FunctionArgument__Group_1__0 ) ) | ( ruleExpression ) ) + int alt4=3; + switch ( input.LA(1) ) { + case RULE_BOOLEAN: + { + alt4=1; + } + break; + case RULE_STRING: + { + alt4=2; + } + break; + case RULE_ID: + case RULE_NUMBER: + case 17: + case 20: + { + alt4=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 4, 0, input); + + throw nvae; + } + + switch (alt4) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:497:1: ( ( rule__FunctionArgument__Group_0__0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:497:1: ( ( rule__FunctionArgument__Group_0__0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:498:1: ( rule__FunctionArgument__Group_0__0 ) + { + before(grammarAccess.getFunctionArgumentAccess().getGroup_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:499:1: ( rule__FunctionArgument__Group_0__0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:499:2: rule__FunctionArgument__Group_0__0 + { + pushFollow(FOLLOW_rule__FunctionArgument__Group_0__0_in_rule__FunctionArgument__Alternatives996); + rule__FunctionArgument__Group_0__0(); + + state._fsp--; + + + } + + after(grammarAccess.getFunctionArgumentAccess().getGroup_0()); + + } + + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:503:6: ( ( rule__FunctionArgument__Group_1__0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:503:6: ( ( rule__FunctionArgument__Group_1__0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:504:1: ( rule__FunctionArgument__Group_1__0 ) + { + before(grammarAccess.getFunctionArgumentAccess().getGroup_1()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:505:1: ( rule__FunctionArgument__Group_1__0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:505:2: rule__FunctionArgument__Group_1__0 + { + pushFollow(FOLLOW_rule__FunctionArgument__Group_1__0_in_rule__FunctionArgument__Alternatives1014); + rule__FunctionArgument__Group_1__0(); + + state._fsp--; + + + } + + after(grammarAccess.getFunctionArgumentAccess().getGroup_1()); + + } + + + } + break; + case 3 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:509:6: ( ruleExpression ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:509:6: ( ruleExpression ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:510:1: ruleExpression + { + before(grammarAccess.getFunctionArgumentAccess().getExpressionParserRuleCall_2()); + pushFollow(FOLLOW_ruleExpression_in_rule__FunctionArgument__Alternatives1032); + ruleExpression(); + + state._fsp--; + + after(grammarAccess.getFunctionArgumentAccess().getExpressionParserRuleCall_2()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionArgument__Alternatives" + + + // $ANTLR start "rule__CompartmentTransitionDefinitions__Group__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:525:1: rule__CompartmentTransitionDefinitions__Group__0 : rule__CompartmentTransitionDefinitions__Group__0__Impl rule__CompartmentTransitionDefinitions__Group__1 ; + public final void rule__CompartmentTransitionDefinitions__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:529:1: ( rule__CompartmentTransitionDefinitions__Group__0__Impl rule__CompartmentTransitionDefinitions__Group__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:530:2: rule__CompartmentTransitionDefinitions__Group__0__Impl rule__CompartmentTransitionDefinitions__Group__1 + { + pushFollow(FOLLOW_rule__CompartmentTransitionDefinitions__Group__0__Impl_in_rule__CompartmentTransitionDefinitions__Group__01065); + rule__CompartmentTransitionDefinitions__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__CompartmentTransitionDefinitions__Group__1_in_rule__CompartmentTransitionDefinitions__Group__01068); + rule__CompartmentTransitionDefinitions__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CompartmentTransitionDefinitions__Group__0" + + + // $ANTLR start "rule__CompartmentTransitionDefinitions__Group__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:537:1: rule__CompartmentTransitionDefinitions__Group__0__Impl : ( ( rule__CompartmentTransitionDefinitions__MetamodelAssignment_0 )? ) ; + public final void rule__CompartmentTransitionDefinitions__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:541:1: ( ( ( rule__CompartmentTransitionDefinitions__MetamodelAssignment_0 )? ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:542:1: ( ( rule__CompartmentTransitionDefinitions__MetamodelAssignment_0 )? ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:542:1: ( ( rule__CompartmentTransitionDefinitions__MetamodelAssignment_0 )? ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:543:1: ( rule__CompartmentTransitionDefinitions__MetamodelAssignment_0 )? + { + before(grammarAccess.getCompartmentTransitionDefinitionsAccess().getMetamodelAssignment_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:544:1: ( rule__CompartmentTransitionDefinitions__MetamodelAssignment_0 )? + int alt5=2; + int LA5_0 = input.LA(1); + + if ( (LA5_0==RULE_ID) ) { + int LA5_1 = input.LA(2); + + if ( (LA5_1==RULE_ID||LA5_1==14) ) { + alt5=1; + } + } + switch (alt5) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:544:2: rule__CompartmentTransitionDefinitions__MetamodelAssignment_0 + { + pushFollow(FOLLOW_rule__CompartmentTransitionDefinitions__MetamodelAssignment_0_in_rule__CompartmentTransitionDefinitions__Group__0__Impl1095); + rule__CompartmentTransitionDefinitions__MetamodelAssignment_0(); + + state._fsp--; + + + } + break; + + } + + after(grammarAccess.getCompartmentTransitionDefinitionsAccess().getMetamodelAssignment_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CompartmentTransitionDefinitions__Group__0__Impl" + + + // $ANTLR start "rule__CompartmentTransitionDefinitions__Group__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:554:1: rule__CompartmentTransitionDefinitions__Group__1 : rule__CompartmentTransitionDefinitions__Group__1__Impl ; + public final void rule__CompartmentTransitionDefinitions__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:558:1: ( rule__CompartmentTransitionDefinitions__Group__1__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:559:2: rule__CompartmentTransitionDefinitions__Group__1__Impl + { + pushFollow(FOLLOW_rule__CompartmentTransitionDefinitions__Group__1__Impl_in_rule__CompartmentTransitionDefinitions__Group__11126); + rule__CompartmentTransitionDefinitions__Group__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CompartmentTransitionDefinitions__Group__1" + + + // $ANTLR start "rule__CompartmentTransitionDefinitions__Group__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:565:1: rule__CompartmentTransitionDefinitions__Group__1__Impl : ( ( rule__CompartmentTransitionDefinitions__ExpressionAssignment_1 ) ) ; + public final void rule__CompartmentTransitionDefinitions__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:569:1: ( ( ( rule__CompartmentTransitionDefinitions__ExpressionAssignment_1 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:570:1: ( ( rule__CompartmentTransitionDefinitions__ExpressionAssignment_1 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:570:1: ( ( rule__CompartmentTransitionDefinitions__ExpressionAssignment_1 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:571:1: ( rule__CompartmentTransitionDefinitions__ExpressionAssignment_1 ) + { + before(grammarAccess.getCompartmentTransitionDefinitionsAccess().getExpressionAssignment_1()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:572:1: ( rule__CompartmentTransitionDefinitions__ExpressionAssignment_1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:572:2: rule__CompartmentTransitionDefinitions__ExpressionAssignment_1 + { + pushFollow(FOLLOW_rule__CompartmentTransitionDefinitions__ExpressionAssignment_1_in_rule__CompartmentTransitionDefinitions__Group__1__Impl1153); + rule__CompartmentTransitionDefinitions__ExpressionAssignment_1(); + + state._fsp--; + + + } + + after(grammarAccess.getCompartmentTransitionDefinitionsAccess().getExpressionAssignment_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CompartmentTransitionDefinitions__Group__1__Impl" + + + // $ANTLR start "rule__Block__Group__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:588:1: rule__Block__Group__0 : rule__Block__Group__0__Impl rule__Block__Group__1 ; + public final void rule__Block__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:592:1: ( rule__Block__Group__0__Impl rule__Block__Group__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:593:2: rule__Block__Group__0__Impl rule__Block__Group__1 + { + pushFollow(FOLLOW_rule__Block__Group__0__Impl_in_rule__Block__Group__01189); + rule__Block__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__Block__Group__1_in_rule__Block__Group__01192); + rule__Block__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Block__Group__0" + + + // $ANTLR start "rule__Block__Group__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:600:1: rule__Block__Group__0__Impl : ( () ) ; + public final void rule__Block__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:604:1: ( ( () ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:605:1: ( () ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:605:1: ( () ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:606:1: () + { + before(grammarAccess.getBlockAccess().getBlockAction_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:607:1: () + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:609:1: + { + } + + after(grammarAccess.getBlockAccess().getBlockAction_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Block__Group__0__Impl" + + + // $ANTLR start "rule__Block__Group__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:619:1: rule__Block__Group__1 : rule__Block__Group__1__Impl rule__Block__Group__2 ; + public final void rule__Block__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:623:1: ( rule__Block__Group__1__Impl rule__Block__Group__2 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:624:2: rule__Block__Group__1__Impl rule__Block__Group__2 + { + pushFollow(FOLLOW_rule__Block__Group__1__Impl_in_rule__Block__Group__11250); + rule__Block__Group__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__Block__Group__2_in_rule__Block__Group__11253); + rule__Block__Group__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Block__Group__1" + + + // $ANTLR start "rule__Block__Group__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:631:1: rule__Block__Group__1__Impl : ( ( rule__Block__StatementsAssignment_1 )* ) ; + public final void rule__Block__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:635:1: ( ( ( rule__Block__StatementsAssignment_1 )* ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:636:1: ( ( rule__Block__StatementsAssignment_1 )* ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:636:1: ( ( rule__Block__StatementsAssignment_1 )* ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:637:1: ( rule__Block__StatementsAssignment_1 )* + { + before(grammarAccess.getBlockAccess().getStatementsAssignment_1()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:638:1: ( rule__Block__StatementsAssignment_1 )* + loop6: + do { + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0==RULE_ID) ) { + alt6=1; + } + + + switch (alt6) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:638:2: rule__Block__StatementsAssignment_1 + { + pushFollow(FOLLOW_rule__Block__StatementsAssignment_1_in_rule__Block__Group__1__Impl1280); + rule__Block__StatementsAssignment_1(); + + state._fsp--; + + + } + break; + + default : + break loop6; + } + } while (true); + + after(grammarAccess.getBlockAccess().getStatementsAssignment_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Block__Group__1__Impl" + + + // $ANTLR start "rule__Block__Group__2" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:648:1: rule__Block__Group__2 : rule__Block__Group__2__Impl ; + public final void rule__Block__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:652:1: ( rule__Block__Group__2__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:653:2: rule__Block__Group__2__Impl + { + pushFollow(FOLLOW_rule__Block__Group__2__Impl_in_rule__Block__Group__21311); + rule__Block__Group__2__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Block__Group__2" + + + // $ANTLR start "rule__Block__Group__2__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:659:1: rule__Block__Group__2__Impl : ( ( rule__Block__RetAssignment_2 ) ) ; + public final void rule__Block__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:663:1: ( ( ( rule__Block__RetAssignment_2 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:664:1: ( ( rule__Block__RetAssignment_2 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:664:1: ( ( rule__Block__RetAssignment_2 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:665:1: ( rule__Block__RetAssignment_2 ) + { + before(grammarAccess.getBlockAccess().getRetAssignment_2()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:666:1: ( rule__Block__RetAssignment_2 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:666:2: rule__Block__RetAssignment_2 + { + pushFollow(FOLLOW_rule__Block__RetAssignment_2_in_rule__Block__Group__2__Impl1338); + rule__Block__RetAssignment_2(); + + state._fsp--; + + + } + + after(grammarAccess.getBlockAccess().getRetAssignment_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Block__Group__2__Impl" + + + // $ANTLR start "rule__DefStatement__Group__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:682:1: rule__DefStatement__Group__0 : rule__DefStatement__Group__0__Impl rule__DefStatement__Group__1 ; + public final void rule__DefStatement__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:686:1: ( rule__DefStatement__Group__0__Impl rule__DefStatement__Group__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:687:2: rule__DefStatement__Group__0__Impl rule__DefStatement__Group__1 + { + pushFollow(FOLLOW_rule__DefStatement__Group__0__Impl_in_rule__DefStatement__Group__01374); + rule__DefStatement__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__DefStatement__Group__1_in_rule__DefStatement__Group__01377); + rule__DefStatement__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DefStatement__Group__0" + + + // $ANTLR start "rule__DefStatement__Group__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:694:1: rule__DefStatement__Group__0__Impl : ( ( rule__DefStatement__VarnameAssignment_0 ) ) ; + public final void rule__DefStatement__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:698:1: ( ( ( rule__DefStatement__VarnameAssignment_0 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:699:1: ( ( rule__DefStatement__VarnameAssignment_0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:699:1: ( ( rule__DefStatement__VarnameAssignment_0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:700:1: ( rule__DefStatement__VarnameAssignment_0 ) + { + before(grammarAccess.getDefStatementAccess().getVarnameAssignment_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:701:1: ( rule__DefStatement__VarnameAssignment_0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:701:2: rule__DefStatement__VarnameAssignment_0 + { + pushFollow(FOLLOW_rule__DefStatement__VarnameAssignment_0_in_rule__DefStatement__Group__0__Impl1404); + rule__DefStatement__VarnameAssignment_0(); + + state._fsp--; + + + } + + after(grammarAccess.getDefStatementAccess().getVarnameAssignment_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DefStatement__Group__0__Impl" + + + // $ANTLR start "rule__DefStatement__Group__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:711:1: rule__DefStatement__Group__1 : rule__DefStatement__Group__1__Impl rule__DefStatement__Group__2 ; + public final void rule__DefStatement__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:715:1: ( rule__DefStatement__Group__1__Impl rule__DefStatement__Group__2 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:716:2: rule__DefStatement__Group__1__Impl rule__DefStatement__Group__2 + { + pushFollow(FOLLOW_rule__DefStatement__Group__1__Impl_in_rule__DefStatement__Group__11434); + rule__DefStatement__Group__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__DefStatement__Group__2_in_rule__DefStatement__Group__11437); + rule__DefStatement__Group__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DefStatement__Group__1" + + + // $ANTLR start "rule__DefStatement__Group__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:723:1: rule__DefStatement__Group__1__Impl : ( '=' ) ; + public final void rule__DefStatement__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:727:1: ( ( '=' ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:728:1: ( '=' ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:728:1: ( '=' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:729:1: '=' + { + before(grammarAccess.getDefStatementAccess().getEqualsSignKeyword_1()); + match(input,13,FOLLOW_13_in_rule__DefStatement__Group__1__Impl1465); + after(grammarAccess.getDefStatementAccess().getEqualsSignKeyword_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DefStatement__Group__1__Impl" + + + // $ANTLR start "rule__DefStatement__Group__2" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:742:1: rule__DefStatement__Group__2 : rule__DefStatement__Group__2__Impl ; + public final void rule__DefStatement__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:746:1: ( rule__DefStatement__Group__2__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:747:2: rule__DefStatement__Group__2__Impl + { + pushFollow(FOLLOW_rule__DefStatement__Group__2__Impl_in_rule__DefStatement__Group__21496); + rule__DefStatement__Group__2__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DefStatement__Group__2" + + + // $ANTLR start "rule__DefStatement__Group__2__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:753:1: rule__DefStatement__Group__2__Impl : ( ( rule__DefStatement__ExprAssignment_2 ) ) ; + public final void rule__DefStatement__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:757:1: ( ( ( rule__DefStatement__ExprAssignment_2 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:758:1: ( ( rule__DefStatement__ExprAssignment_2 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:758:1: ( ( rule__DefStatement__ExprAssignment_2 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:759:1: ( rule__DefStatement__ExprAssignment_2 ) + { + before(grammarAccess.getDefStatementAccess().getExprAssignment_2()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:760:1: ( rule__DefStatement__ExprAssignment_2 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:760:2: rule__DefStatement__ExprAssignment_2 + { + pushFollow(FOLLOW_rule__DefStatement__ExprAssignment_2_in_rule__DefStatement__Group__2__Impl1523); + rule__DefStatement__ExprAssignment_2(); + + state._fsp--; + + + } + + after(grammarAccess.getDefStatementAccess().getExprAssignment_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DefStatement__Group__2__Impl" + + + // $ANTLR start "rule__ReturnStatement__Group__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:776:1: rule__ReturnStatement__Group__0 : rule__ReturnStatement__Group__0__Impl rule__ReturnStatement__Group__1 ; + public final void rule__ReturnStatement__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:780:1: ( rule__ReturnStatement__Group__0__Impl rule__ReturnStatement__Group__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:781:2: rule__ReturnStatement__Group__0__Impl rule__ReturnStatement__Group__1 + { + pushFollow(FOLLOW_rule__ReturnStatement__Group__0__Impl_in_rule__ReturnStatement__Group__01559); + rule__ReturnStatement__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__ReturnStatement__Group__1_in_rule__ReturnStatement__Group__01562); + rule__ReturnStatement__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ReturnStatement__Group__0" + + + // $ANTLR start "rule__ReturnStatement__Group__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:788:1: rule__ReturnStatement__Group__0__Impl : ( 'delta' ) ; + public final void rule__ReturnStatement__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:792:1: ( ( 'delta' ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:793:1: ( 'delta' ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:793:1: ( 'delta' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:794:1: 'delta' + { + before(grammarAccess.getReturnStatementAccess().getDeltaKeyword_0()); + match(input,14,FOLLOW_14_in_rule__ReturnStatement__Group__0__Impl1590); + after(grammarAccess.getReturnStatementAccess().getDeltaKeyword_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ReturnStatement__Group__0__Impl" + + + // $ANTLR start "rule__ReturnStatement__Group__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:807:1: rule__ReturnStatement__Group__1 : rule__ReturnStatement__Group__1__Impl ; + public final void rule__ReturnStatement__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:811:1: ( rule__ReturnStatement__Group__1__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:812:2: rule__ReturnStatement__Group__1__Impl + { + pushFollow(FOLLOW_rule__ReturnStatement__Group__1__Impl_in_rule__ReturnStatement__Group__11621); + rule__ReturnStatement__Group__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ReturnStatement__Group__1" + + + // $ANTLR start "rule__ReturnStatement__Group__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:818:1: rule__ReturnStatement__Group__1__Impl : ( ruleEvaluation ) ; + public final void rule__ReturnStatement__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:822:1: ( ( ruleEvaluation ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:823:1: ( ruleEvaluation ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:823:1: ( ruleEvaluation ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:824:1: ruleEvaluation + { + before(grammarAccess.getReturnStatementAccess().getEvaluationParserRuleCall_1()); + pushFollow(FOLLOW_ruleEvaluation_in_rule__ReturnStatement__Group__1__Impl1648); + ruleEvaluation(); + + state._fsp--; + + after(grammarAccess.getReturnStatementAccess().getEvaluationParserRuleCall_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ReturnStatement__Group__1__Impl" + + + // $ANTLR start "rule__Evaluation__Group__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:839:1: rule__Evaluation__Group__0 : rule__Evaluation__Group__0__Impl rule__Evaluation__Group__1 ; + public final void rule__Evaluation__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:843:1: ( rule__Evaluation__Group__0__Impl rule__Evaluation__Group__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:844:2: rule__Evaluation__Group__0__Impl rule__Evaluation__Group__1 + { + pushFollow(FOLLOW_rule__Evaluation__Group__0__Impl_in_rule__Evaluation__Group__01681); + rule__Evaluation__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__Evaluation__Group__1_in_rule__Evaluation__Group__01684); + rule__Evaluation__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Evaluation__Group__0" + + + // $ANTLR start "rule__Evaluation__Group__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:851:1: rule__Evaluation__Group__0__Impl : ( ( rule__Evaluation__ExpressionAssignment_0 ) ) ; + public final void rule__Evaluation__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:855:1: ( ( ( rule__Evaluation__ExpressionAssignment_0 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:856:1: ( ( rule__Evaluation__ExpressionAssignment_0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:856:1: ( ( rule__Evaluation__ExpressionAssignment_0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:857:1: ( rule__Evaluation__ExpressionAssignment_0 ) + { + before(grammarAccess.getEvaluationAccess().getExpressionAssignment_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:858:1: ( rule__Evaluation__ExpressionAssignment_0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:858:2: rule__Evaluation__ExpressionAssignment_0 + { + pushFollow(FOLLOW_rule__Evaluation__ExpressionAssignment_0_in_rule__Evaluation__Group__0__Impl1711); + rule__Evaluation__ExpressionAssignment_0(); + + state._fsp--; + + + } + + after(grammarAccess.getEvaluationAccess().getExpressionAssignment_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Evaluation__Group__0__Impl" + + + // $ANTLR start "rule__Evaluation__Group__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:868:1: rule__Evaluation__Group__1 : rule__Evaluation__Group__1__Impl ; + public final void rule__Evaluation__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:872:1: ( rule__Evaluation__Group__1__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:873:2: rule__Evaluation__Group__1__Impl + { + pushFollow(FOLLOW_rule__Evaluation__Group__1__Impl_in_rule__Evaluation__Group__11741); + rule__Evaluation__Group__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Evaluation__Group__1" + + + // $ANTLR start "rule__Evaluation__Group__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:879:1: rule__Evaluation__Group__1__Impl : ( ';' ) ; + public final void rule__Evaluation__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:883:1: ( ( ';' ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:884:1: ( ';' ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:884:1: ( ';' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:885:1: ';' + { + before(grammarAccess.getEvaluationAccess().getSemicolonKeyword_1()); + match(input,15,FOLLOW_15_in_rule__Evaluation__Group__1__Impl1769); + after(grammarAccess.getEvaluationAccess().getSemicolonKeyword_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Evaluation__Group__1__Impl" + + + // $ANTLR start "rule__Addition__Group__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:902:1: rule__Addition__Group__0 : rule__Addition__Group__0__Impl rule__Addition__Group__1 ; + public final void rule__Addition__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:906:1: ( rule__Addition__Group__0__Impl rule__Addition__Group__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:907:2: rule__Addition__Group__0__Impl rule__Addition__Group__1 + { + pushFollow(FOLLOW_rule__Addition__Group__0__Impl_in_rule__Addition__Group__01804); + rule__Addition__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__Addition__Group__1_in_rule__Addition__Group__01807); + rule__Addition__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group__0" + + + // $ANTLR start "rule__Addition__Group__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:914:1: rule__Addition__Group__0__Impl : ( ruleMultiplication ) ; + public final void rule__Addition__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:918:1: ( ( ruleMultiplication ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:919:1: ( ruleMultiplication ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:919:1: ( ruleMultiplication ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:920:1: ruleMultiplication + { + before(grammarAccess.getAdditionAccess().getMultiplicationParserRuleCall_0()); + pushFollow(FOLLOW_ruleMultiplication_in_rule__Addition__Group__0__Impl1834); + ruleMultiplication(); + + state._fsp--; + + after(grammarAccess.getAdditionAccess().getMultiplicationParserRuleCall_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group__0__Impl" + + + // $ANTLR start "rule__Addition__Group__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:931:1: rule__Addition__Group__1 : rule__Addition__Group__1__Impl ; + public final void rule__Addition__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:935:1: ( rule__Addition__Group__1__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:936:2: rule__Addition__Group__1__Impl + { + pushFollow(FOLLOW_rule__Addition__Group__1__Impl_in_rule__Addition__Group__11863); + rule__Addition__Group__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group__1" + + + // $ANTLR start "rule__Addition__Group__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:942:1: rule__Addition__Group__1__Impl : ( ( rule__Addition__Group_1__0 )* ) ; + public final void rule__Addition__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:946:1: ( ( ( rule__Addition__Group_1__0 )* ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:947:1: ( ( rule__Addition__Group_1__0 )* ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:947:1: ( ( rule__Addition__Group_1__0 )* ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:948:1: ( rule__Addition__Group_1__0 )* + { + before(grammarAccess.getAdditionAccess().getGroup_1()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:949:1: ( rule__Addition__Group_1__0 )* + loop7: + do { + int alt7=2; + int LA7_0 = input.LA(1); + + if ( ((LA7_0>=16 && LA7_0<=17)) ) { + alt7=1; + } + + + switch (alt7) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:949:2: rule__Addition__Group_1__0 + { + pushFollow(FOLLOW_rule__Addition__Group_1__0_in_rule__Addition__Group__1__Impl1890); + rule__Addition__Group_1__0(); + + state._fsp--; + + + } + break; + + default : + break loop7; + } + } while (true); + + after(grammarAccess.getAdditionAccess().getGroup_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group__1__Impl" + + + // $ANTLR start "rule__Addition__Group_1__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:963:1: rule__Addition__Group_1__0 : rule__Addition__Group_1__0__Impl rule__Addition__Group_1__1 ; + public final void rule__Addition__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:967:1: ( rule__Addition__Group_1__0__Impl rule__Addition__Group_1__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:968:2: rule__Addition__Group_1__0__Impl rule__Addition__Group_1__1 + { + pushFollow(FOLLOW_rule__Addition__Group_1__0__Impl_in_rule__Addition__Group_1__01925); + rule__Addition__Group_1__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__Addition__Group_1__1_in_rule__Addition__Group_1__01928); + rule__Addition__Group_1__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group_1__0" + + + // $ANTLR start "rule__Addition__Group_1__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:975:1: rule__Addition__Group_1__0__Impl : ( ( rule__Addition__Alternatives_1_0 ) ) ; + public final void rule__Addition__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:979:1: ( ( ( rule__Addition__Alternatives_1_0 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:980:1: ( ( rule__Addition__Alternatives_1_0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:980:1: ( ( rule__Addition__Alternatives_1_0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:981:1: ( rule__Addition__Alternatives_1_0 ) + { + before(grammarAccess.getAdditionAccess().getAlternatives_1_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:982:1: ( rule__Addition__Alternatives_1_0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:982:2: rule__Addition__Alternatives_1_0 + { + pushFollow(FOLLOW_rule__Addition__Alternatives_1_0_in_rule__Addition__Group_1__0__Impl1955); + rule__Addition__Alternatives_1_0(); + + state._fsp--; + + + } + + after(grammarAccess.getAdditionAccess().getAlternatives_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group_1__0__Impl" + + + // $ANTLR start "rule__Addition__Group_1__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:992:1: rule__Addition__Group_1__1 : rule__Addition__Group_1__1__Impl ; + public final void rule__Addition__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:996:1: ( rule__Addition__Group_1__1__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:997:2: rule__Addition__Group_1__1__Impl + { + pushFollow(FOLLOW_rule__Addition__Group_1__1__Impl_in_rule__Addition__Group_1__11985); + rule__Addition__Group_1__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group_1__1" + + + // $ANTLR start "rule__Addition__Group_1__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1003:1: rule__Addition__Group_1__1__Impl : ( ( rule__Addition__RightAssignment_1_1 ) ) ; + public final void rule__Addition__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1007:1: ( ( ( rule__Addition__RightAssignment_1_1 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1008:1: ( ( rule__Addition__RightAssignment_1_1 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1008:1: ( ( rule__Addition__RightAssignment_1_1 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1009:1: ( rule__Addition__RightAssignment_1_1 ) + { + before(grammarAccess.getAdditionAccess().getRightAssignment_1_1()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1010:1: ( rule__Addition__RightAssignment_1_1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1010:2: rule__Addition__RightAssignment_1_1 + { + pushFollow(FOLLOW_rule__Addition__RightAssignment_1_1_in_rule__Addition__Group_1__1__Impl2012); + rule__Addition__RightAssignment_1_1(); + + state._fsp--; + + + } + + after(grammarAccess.getAdditionAccess().getRightAssignment_1_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group_1__1__Impl" + + + // $ANTLR start "rule__Addition__Group_1_0_0__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1024:1: rule__Addition__Group_1_0_0__0 : rule__Addition__Group_1_0_0__0__Impl rule__Addition__Group_1_0_0__1 ; + public final void rule__Addition__Group_1_0_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1028:1: ( rule__Addition__Group_1_0_0__0__Impl rule__Addition__Group_1_0_0__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1029:2: rule__Addition__Group_1_0_0__0__Impl rule__Addition__Group_1_0_0__1 + { + pushFollow(FOLLOW_rule__Addition__Group_1_0_0__0__Impl_in_rule__Addition__Group_1_0_0__02046); + rule__Addition__Group_1_0_0__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__Addition__Group_1_0_0__1_in_rule__Addition__Group_1_0_0__02049); + rule__Addition__Group_1_0_0__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group_1_0_0__0" + + + // $ANTLR start "rule__Addition__Group_1_0_0__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1036:1: rule__Addition__Group_1_0_0__0__Impl : ( () ) ; + public final void rule__Addition__Group_1_0_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1040:1: ( ( () ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1041:1: ( () ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1041:1: ( () ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1042:1: () + { + before(grammarAccess.getAdditionAccess().getPlusLeftAction_1_0_0_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1043:1: () + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1045:1: + { + } + + after(grammarAccess.getAdditionAccess().getPlusLeftAction_1_0_0_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group_1_0_0__0__Impl" + + + // $ANTLR start "rule__Addition__Group_1_0_0__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1055:1: rule__Addition__Group_1_0_0__1 : rule__Addition__Group_1_0_0__1__Impl ; + public final void rule__Addition__Group_1_0_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1059:1: ( rule__Addition__Group_1_0_0__1__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1060:2: rule__Addition__Group_1_0_0__1__Impl + { + pushFollow(FOLLOW_rule__Addition__Group_1_0_0__1__Impl_in_rule__Addition__Group_1_0_0__12107); + rule__Addition__Group_1_0_0__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group_1_0_0__1" + + + // $ANTLR start "rule__Addition__Group_1_0_0__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1066:1: rule__Addition__Group_1_0_0__1__Impl : ( '+' ) ; + public final void rule__Addition__Group_1_0_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1070:1: ( ( '+' ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1071:1: ( '+' ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1071:1: ( '+' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1072:1: '+' + { + before(grammarAccess.getAdditionAccess().getPlusSignKeyword_1_0_0_1()); + match(input,16,FOLLOW_16_in_rule__Addition__Group_1_0_0__1__Impl2135); + after(grammarAccess.getAdditionAccess().getPlusSignKeyword_1_0_0_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group_1_0_0__1__Impl" + + + // $ANTLR start "rule__Addition__Group_1_0_1__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1089:1: rule__Addition__Group_1_0_1__0 : rule__Addition__Group_1_0_1__0__Impl rule__Addition__Group_1_0_1__1 ; + public final void rule__Addition__Group_1_0_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1093:1: ( rule__Addition__Group_1_0_1__0__Impl rule__Addition__Group_1_0_1__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1094:2: rule__Addition__Group_1_0_1__0__Impl rule__Addition__Group_1_0_1__1 + { + pushFollow(FOLLOW_rule__Addition__Group_1_0_1__0__Impl_in_rule__Addition__Group_1_0_1__02170); + rule__Addition__Group_1_0_1__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__Addition__Group_1_0_1__1_in_rule__Addition__Group_1_0_1__02173); + rule__Addition__Group_1_0_1__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group_1_0_1__0" + + + // $ANTLR start "rule__Addition__Group_1_0_1__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1101:1: rule__Addition__Group_1_0_1__0__Impl : ( () ) ; + public final void rule__Addition__Group_1_0_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1105:1: ( ( () ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1106:1: ( () ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1106:1: ( () ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1107:1: () + { + before(grammarAccess.getAdditionAccess().getMinusLeftAction_1_0_1_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1108:1: () + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1110:1: + { + } + + after(grammarAccess.getAdditionAccess().getMinusLeftAction_1_0_1_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group_1_0_1__0__Impl" + + + // $ANTLR start "rule__Addition__Group_1_0_1__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1120:1: rule__Addition__Group_1_0_1__1 : rule__Addition__Group_1_0_1__1__Impl ; + public final void rule__Addition__Group_1_0_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1124:1: ( rule__Addition__Group_1_0_1__1__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1125:2: rule__Addition__Group_1_0_1__1__Impl + { + pushFollow(FOLLOW_rule__Addition__Group_1_0_1__1__Impl_in_rule__Addition__Group_1_0_1__12231); + rule__Addition__Group_1_0_1__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group_1_0_1__1" + + + // $ANTLR start "rule__Addition__Group_1_0_1__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1131:1: rule__Addition__Group_1_0_1__1__Impl : ( '-' ) ; + public final void rule__Addition__Group_1_0_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1135:1: ( ( '-' ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1136:1: ( '-' ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1136:1: ( '-' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1137:1: '-' + { + before(grammarAccess.getAdditionAccess().getHyphenMinusKeyword_1_0_1_1()); + match(input,17,FOLLOW_17_in_rule__Addition__Group_1_0_1__1__Impl2259); + after(grammarAccess.getAdditionAccess().getHyphenMinusKeyword_1_0_1_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__Group_1_0_1__1__Impl" + + + // $ANTLR start "rule__Multiplication__Group__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1154:1: rule__Multiplication__Group__0 : rule__Multiplication__Group__0__Impl rule__Multiplication__Group__1 ; + public final void rule__Multiplication__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1158:1: ( rule__Multiplication__Group__0__Impl rule__Multiplication__Group__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1159:2: rule__Multiplication__Group__0__Impl rule__Multiplication__Group__1 + { + pushFollow(FOLLOW_rule__Multiplication__Group__0__Impl_in_rule__Multiplication__Group__02294); + rule__Multiplication__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__Multiplication__Group__1_in_rule__Multiplication__Group__02297); + rule__Multiplication__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group__0" + + + // $ANTLR start "rule__Multiplication__Group__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1166:1: rule__Multiplication__Group__0__Impl : ( ruleNegatedExpression ) ; + public final void rule__Multiplication__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1170:1: ( ( ruleNegatedExpression ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1171:1: ( ruleNegatedExpression ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1171:1: ( ruleNegatedExpression ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1172:1: ruleNegatedExpression + { + before(grammarAccess.getMultiplicationAccess().getNegatedExpressionParserRuleCall_0()); + pushFollow(FOLLOW_ruleNegatedExpression_in_rule__Multiplication__Group__0__Impl2324); + ruleNegatedExpression(); + + state._fsp--; + + after(grammarAccess.getMultiplicationAccess().getNegatedExpressionParserRuleCall_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group__0__Impl" + + + // $ANTLR start "rule__Multiplication__Group__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1183:1: rule__Multiplication__Group__1 : rule__Multiplication__Group__1__Impl ; + public final void rule__Multiplication__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1187:1: ( rule__Multiplication__Group__1__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1188:2: rule__Multiplication__Group__1__Impl + { + pushFollow(FOLLOW_rule__Multiplication__Group__1__Impl_in_rule__Multiplication__Group__12353); + rule__Multiplication__Group__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group__1" + + + // $ANTLR start "rule__Multiplication__Group__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1194:1: rule__Multiplication__Group__1__Impl : ( ( rule__Multiplication__Group_1__0 )* ) ; + public final void rule__Multiplication__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1198:1: ( ( ( rule__Multiplication__Group_1__0 )* ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1199:1: ( ( rule__Multiplication__Group_1__0 )* ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1199:1: ( ( rule__Multiplication__Group_1__0 )* ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1200:1: ( rule__Multiplication__Group_1__0 )* + { + before(grammarAccess.getMultiplicationAccess().getGroup_1()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1201:1: ( rule__Multiplication__Group_1__0 )* + loop8: + do { + int alt8=2; + int LA8_0 = input.LA(1); + + if ( ((LA8_0>=18 && LA8_0<=19)) ) { + alt8=1; + } + + + switch (alt8) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1201:2: rule__Multiplication__Group_1__0 + { + pushFollow(FOLLOW_rule__Multiplication__Group_1__0_in_rule__Multiplication__Group__1__Impl2380); + rule__Multiplication__Group_1__0(); + + state._fsp--; + + + } + break; + + default : + break loop8; + } + } while (true); + + after(grammarAccess.getMultiplicationAccess().getGroup_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group__1__Impl" + + + // $ANTLR start "rule__Multiplication__Group_1__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1215:1: rule__Multiplication__Group_1__0 : rule__Multiplication__Group_1__0__Impl rule__Multiplication__Group_1__1 ; + public final void rule__Multiplication__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1219:1: ( rule__Multiplication__Group_1__0__Impl rule__Multiplication__Group_1__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1220:2: rule__Multiplication__Group_1__0__Impl rule__Multiplication__Group_1__1 + { + pushFollow(FOLLOW_rule__Multiplication__Group_1__0__Impl_in_rule__Multiplication__Group_1__02415); + rule__Multiplication__Group_1__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__Multiplication__Group_1__1_in_rule__Multiplication__Group_1__02418); + rule__Multiplication__Group_1__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group_1__0" + + + // $ANTLR start "rule__Multiplication__Group_1__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1227:1: rule__Multiplication__Group_1__0__Impl : ( ( rule__Multiplication__Alternatives_1_0 ) ) ; + public final void rule__Multiplication__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1231:1: ( ( ( rule__Multiplication__Alternatives_1_0 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1232:1: ( ( rule__Multiplication__Alternatives_1_0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1232:1: ( ( rule__Multiplication__Alternatives_1_0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1233:1: ( rule__Multiplication__Alternatives_1_0 ) + { + before(grammarAccess.getMultiplicationAccess().getAlternatives_1_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1234:1: ( rule__Multiplication__Alternatives_1_0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1234:2: rule__Multiplication__Alternatives_1_0 + { + pushFollow(FOLLOW_rule__Multiplication__Alternatives_1_0_in_rule__Multiplication__Group_1__0__Impl2445); + rule__Multiplication__Alternatives_1_0(); + + state._fsp--; + + + } + + after(grammarAccess.getMultiplicationAccess().getAlternatives_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group_1__0__Impl" + + + // $ANTLR start "rule__Multiplication__Group_1__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1244:1: rule__Multiplication__Group_1__1 : rule__Multiplication__Group_1__1__Impl ; + public final void rule__Multiplication__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1248:1: ( rule__Multiplication__Group_1__1__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1249:2: rule__Multiplication__Group_1__1__Impl + { + pushFollow(FOLLOW_rule__Multiplication__Group_1__1__Impl_in_rule__Multiplication__Group_1__12475); + rule__Multiplication__Group_1__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group_1__1" + + + // $ANTLR start "rule__Multiplication__Group_1__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1255:1: rule__Multiplication__Group_1__1__Impl : ( ( rule__Multiplication__RightAssignment_1_1 ) ) ; + public final void rule__Multiplication__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1259:1: ( ( ( rule__Multiplication__RightAssignment_1_1 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1260:1: ( ( rule__Multiplication__RightAssignment_1_1 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1260:1: ( ( rule__Multiplication__RightAssignment_1_1 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1261:1: ( rule__Multiplication__RightAssignment_1_1 ) + { + before(grammarAccess.getMultiplicationAccess().getRightAssignment_1_1()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1262:1: ( rule__Multiplication__RightAssignment_1_1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1262:2: rule__Multiplication__RightAssignment_1_1 + { + pushFollow(FOLLOW_rule__Multiplication__RightAssignment_1_1_in_rule__Multiplication__Group_1__1__Impl2502); + rule__Multiplication__RightAssignment_1_1(); + + state._fsp--; + + + } + + after(grammarAccess.getMultiplicationAccess().getRightAssignment_1_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group_1__1__Impl" + + + // $ANTLR start "rule__Multiplication__Group_1_0_0__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1276:1: rule__Multiplication__Group_1_0_0__0 : rule__Multiplication__Group_1_0_0__0__Impl rule__Multiplication__Group_1_0_0__1 ; + public final void rule__Multiplication__Group_1_0_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1280:1: ( rule__Multiplication__Group_1_0_0__0__Impl rule__Multiplication__Group_1_0_0__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1281:2: rule__Multiplication__Group_1_0_0__0__Impl rule__Multiplication__Group_1_0_0__1 + { + pushFollow(FOLLOW_rule__Multiplication__Group_1_0_0__0__Impl_in_rule__Multiplication__Group_1_0_0__02536); + rule__Multiplication__Group_1_0_0__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__Multiplication__Group_1_0_0__1_in_rule__Multiplication__Group_1_0_0__02539); + rule__Multiplication__Group_1_0_0__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group_1_0_0__0" + + + // $ANTLR start "rule__Multiplication__Group_1_0_0__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1288:1: rule__Multiplication__Group_1_0_0__0__Impl : ( () ) ; + public final void rule__Multiplication__Group_1_0_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1292:1: ( ( () ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1293:1: ( () ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1293:1: ( () ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1294:1: () + { + before(grammarAccess.getMultiplicationAccess().getMultiLeftAction_1_0_0_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1295:1: () + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1297:1: + { + } + + after(grammarAccess.getMultiplicationAccess().getMultiLeftAction_1_0_0_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group_1_0_0__0__Impl" + + + // $ANTLR start "rule__Multiplication__Group_1_0_0__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1307:1: rule__Multiplication__Group_1_0_0__1 : rule__Multiplication__Group_1_0_0__1__Impl ; + public final void rule__Multiplication__Group_1_0_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1311:1: ( rule__Multiplication__Group_1_0_0__1__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1312:2: rule__Multiplication__Group_1_0_0__1__Impl + { + pushFollow(FOLLOW_rule__Multiplication__Group_1_0_0__1__Impl_in_rule__Multiplication__Group_1_0_0__12597); + rule__Multiplication__Group_1_0_0__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group_1_0_0__1" + + + // $ANTLR start "rule__Multiplication__Group_1_0_0__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1318:1: rule__Multiplication__Group_1_0_0__1__Impl : ( '*' ) ; + public final void rule__Multiplication__Group_1_0_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1322:1: ( ( '*' ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1323:1: ( '*' ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1323:1: ( '*' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1324:1: '*' + { + before(grammarAccess.getMultiplicationAccess().getAsteriskKeyword_1_0_0_1()); + match(input,18,FOLLOW_18_in_rule__Multiplication__Group_1_0_0__1__Impl2625); + after(grammarAccess.getMultiplicationAccess().getAsteriskKeyword_1_0_0_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group_1_0_0__1__Impl" + + + // $ANTLR start "rule__Multiplication__Group_1_0_1__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1341:1: rule__Multiplication__Group_1_0_1__0 : rule__Multiplication__Group_1_0_1__0__Impl rule__Multiplication__Group_1_0_1__1 ; + public final void rule__Multiplication__Group_1_0_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1345:1: ( rule__Multiplication__Group_1_0_1__0__Impl rule__Multiplication__Group_1_0_1__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1346:2: rule__Multiplication__Group_1_0_1__0__Impl rule__Multiplication__Group_1_0_1__1 + { + pushFollow(FOLLOW_rule__Multiplication__Group_1_0_1__0__Impl_in_rule__Multiplication__Group_1_0_1__02660); + rule__Multiplication__Group_1_0_1__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__Multiplication__Group_1_0_1__1_in_rule__Multiplication__Group_1_0_1__02663); + rule__Multiplication__Group_1_0_1__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group_1_0_1__0" + + + // $ANTLR start "rule__Multiplication__Group_1_0_1__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1353:1: rule__Multiplication__Group_1_0_1__0__Impl : ( () ) ; + public final void rule__Multiplication__Group_1_0_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1357:1: ( ( () ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1358:1: ( () ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1358:1: ( () ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1359:1: () + { + before(grammarAccess.getMultiplicationAccess().getDivLeftAction_1_0_1_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1360:1: () + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1362:1: + { + } + + after(grammarAccess.getMultiplicationAccess().getDivLeftAction_1_0_1_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group_1_0_1__0__Impl" + + + // $ANTLR start "rule__Multiplication__Group_1_0_1__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1372:1: rule__Multiplication__Group_1_0_1__1 : rule__Multiplication__Group_1_0_1__1__Impl ; + public final void rule__Multiplication__Group_1_0_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1376:1: ( rule__Multiplication__Group_1_0_1__1__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1377:2: rule__Multiplication__Group_1_0_1__1__Impl + { + pushFollow(FOLLOW_rule__Multiplication__Group_1_0_1__1__Impl_in_rule__Multiplication__Group_1_0_1__12721); + rule__Multiplication__Group_1_0_1__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group_1_0_1__1" + + + // $ANTLR start "rule__Multiplication__Group_1_0_1__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1383:1: rule__Multiplication__Group_1_0_1__1__Impl : ( '/' ) ; + public final void rule__Multiplication__Group_1_0_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1387:1: ( ( '/' ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1388:1: ( '/' ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1388:1: ( '/' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1389:1: '/' + { + before(grammarAccess.getMultiplicationAccess().getSolidusKeyword_1_0_1_1()); + match(input,19,FOLLOW_19_in_rule__Multiplication__Group_1_0_1__1__Impl2749); + after(grammarAccess.getMultiplicationAccess().getSolidusKeyword_1_0_1_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__Group_1_0_1__1__Impl" + + + // $ANTLR start "rule__NegatedExpression__Group__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1406:1: rule__NegatedExpression__Group__0 : rule__NegatedExpression__Group__0__Impl rule__NegatedExpression__Group__1 ; + public final void rule__NegatedExpression__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1410:1: ( rule__NegatedExpression__Group__0__Impl rule__NegatedExpression__Group__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1411:2: rule__NegatedExpression__Group__0__Impl rule__NegatedExpression__Group__1 + { + pushFollow(FOLLOW_rule__NegatedExpression__Group__0__Impl_in_rule__NegatedExpression__Group__02784); + rule__NegatedExpression__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__NegatedExpression__Group__1_in_rule__NegatedExpression__Group__02787); + rule__NegatedExpression__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NegatedExpression__Group__0" + + + // $ANTLR start "rule__NegatedExpression__Group__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1418:1: rule__NegatedExpression__Group__0__Impl : ( () ) ; + public final void rule__NegatedExpression__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1422:1: ( ( () ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1423:1: ( () ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1423:1: ( () ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1424:1: () + { + before(grammarAccess.getNegatedExpressionAccess().getPrimaryExpressionAction_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1425:1: () + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1427:1: + { + } + + after(grammarAccess.getNegatedExpressionAccess().getPrimaryExpressionAction_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NegatedExpression__Group__0__Impl" + + + // $ANTLR start "rule__NegatedExpression__Group__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1437:1: rule__NegatedExpression__Group__1 : rule__NegatedExpression__Group__1__Impl rule__NegatedExpression__Group__2 ; + public final void rule__NegatedExpression__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1441:1: ( rule__NegatedExpression__Group__1__Impl rule__NegatedExpression__Group__2 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1442:2: rule__NegatedExpression__Group__1__Impl rule__NegatedExpression__Group__2 + { + pushFollow(FOLLOW_rule__NegatedExpression__Group__1__Impl_in_rule__NegatedExpression__Group__12845); + rule__NegatedExpression__Group__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__NegatedExpression__Group__2_in_rule__NegatedExpression__Group__12848); + rule__NegatedExpression__Group__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NegatedExpression__Group__1" + + + // $ANTLR start "rule__NegatedExpression__Group__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1449:1: rule__NegatedExpression__Group__1__Impl : ( ( rule__NegatedExpression__NegateAssignment_1 )? ) ; + public final void rule__NegatedExpression__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1453:1: ( ( ( rule__NegatedExpression__NegateAssignment_1 )? ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1454:1: ( ( rule__NegatedExpression__NegateAssignment_1 )? ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1454:1: ( ( rule__NegatedExpression__NegateAssignment_1 )? ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1455:1: ( rule__NegatedExpression__NegateAssignment_1 )? + { + before(grammarAccess.getNegatedExpressionAccess().getNegateAssignment_1()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1456:1: ( rule__NegatedExpression__NegateAssignment_1 )? + int alt9=2; + int LA9_0 = input.LA(1); + + if ( (LA9_0==17) ) { + alt9=1; + } + switch (alt9) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1456:2: rule__NegatedExpression__NegateAssignment_1 + { + pushFollow(FOLLOW_rule__NegatedExpression__NegateAssignment_1_in_rule__NegatedExpression__Group__1__Impl2875); + rule__NegatedExpression__NegateAssignment_1(); + + state._fsp--; + + + } + break; + + } + + after(grammarAccess.getNegatedExpressionAccess().getNegateAssignment_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NegatedExpression__Group__1__Impl" + + + // $ANTLR start "rule__NegatedExpression__Group__2" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1466:1: rule__NegatedExpression__Group__2 : rule__NegatedExpression__Group__2__Impl ; + public final void rule__NegatedExpression__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1470:1: ( rule__NegatedExpression__Group__2__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1471:2: rule__NegatedExpression__Group__2__Impl + { + pushFollow(FOLLOW_rule__NegatedExpression__Group__2__Impl_in_rule__NegatedExpression__Group__22906); + rule__NegatedExpression__Group__2__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NegatedExpression__Group__2" + + + // $ANTLR start "rule__NegatedExpression__Group__2__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1477:1: rule__NegatedExpression__Group__2__Impl : ( ( rule__NegatedExpression__ExpAssignment_2 ) ) ; + public final void rule__NegatedExpression__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1481:1: ( ( ( rule__NegatedExpression__ExpAssignment_2 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1482:1: ( ( rule__NegatedExpression__ExpAssignment_2 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1482:1: ( ( rule__NegatedExpression__ExpAssignment_2 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1483:1: ( rule__NegatedExpression__ExpAssignment_2 ) + { + before(grammarAccess.getNegatedExpressionAccess().getExpAssignment_2()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1484:1: ( rule__NegatedExpression__ExpAssignment_2 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1484:2: rule__NegatedExpression__ExpAssignment_2 + { + pushFollow(FOLLOW_rule__NegatedExpression__ExpAssignment_2_in_rule__NegatedExpression__Group__2__Impl2933); + rule__NegatedExpression__ExpAssignment_2(); + + state._fsp--; + + + } + + after(grammarAccess.getNegatedExpressionAccess().getExpAssignment_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NegatedExpression__Group__2__Impl" + + + // $ANTLR start "rule__PrimaryExpression__Group_0__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1500:1: rule__PrimaryExpression__Group_0__0 : rule__PrimaryExpression__Group_0__0__Impl rule__PrimaryExpression__Group_0__1 ; + public final void rule__PrimaryExpression__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1504:1: ( rule__PrimaryExpression__Group_0__0__Impl rule__PrimaryExpression__Group_0__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1505:2: rule__PrimaryExpression__Group_0__0__Impl rule__PrimaryExpression__Group_0__1 + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_0__0__Impl_in_rule__PrimaryExpression__Group_0__02969); + rule__PrimaryExpression__Group_0__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__PrimaryExpression__Group_0__1_in_rule__PrimaryExpression__Group_0__02972); + rule__PrimaryExpression__Group_0__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_0__0" + + + // $ANTLR start "rule__PrimaryExpression__Group_0__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1512:1: rule__PrimaryExpression__Group_0__0__Impl : ( () ) ; + public final void rule__PrimaryExpression__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1516:1: ( ( () ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1517:1: ( () ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1517:1: ( () ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1518:1: () + { + before(grammarAccess.getPrimaryExpressionAccess().getNumberLiteralAction_0_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1519:1: () + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1521:1: + { + } + + after(grammarAccess.getPrimaryExpressionAccess().getNumberLiteralAction_0_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_0__0__Impl" + + + // $ANTLR start "rule__PrimaryExpression__Group_0__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1531:1: rule__PrimaryExpression__Group_0__1 : rule__PrimaryExpression__Group_0__1__Impl ; + public final void rule__PrimaryExpression__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1535:1: ( rule__PrimaryExpression__Group_0__1__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1536:2: rule__PrimaryExpression__Group_0__1__Impl + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_0__1__Impl_in_rule__PrimaryExpression__Group_0__13030); + rule__PrimaryExpression__Group_0__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_0__1" + + + // $ANTLR start "rule__PrimaryExpression__Group_0__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1542:1: rule__PrimaryExpression__Group_0__1__Impl : ( ( rule__PrimaryExpression__ValueAssignment_0_1 ) ) ; + public final void rule__PrimaryExpression__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1546:1: ( ( ( rule__PrimaryExpression__ValueAssignment_0_1 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1547:1: ( ( rule__PrimaryExpression__ValueAssignment_0_1 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1547:1: ( ( rule__PrimaryExpression__ValueAssignment_0_1 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1548:1: ( rule__PrimaryExpression__ValueAssignment_0_1 ) + { + before(grammarAccess.getPrimaryExpressionAccess().getValueAssignment_0_1()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1549:1: ( rule__PrimaryExpression__ValueAssignment_0_1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1549:2: rule__PrimaryExpression__ValueAssignment_0_1 + { + pushFollow(FOLLOW_rule__PrimaryExpression__ValueAssignment_0_1_in_rule__PrimaryExpression__Group_0__1__Impl3057); + rule__PrimaryExpression__ValueAssignment_0_1(); + + state._fsp--; + + + } + + after(grammarAccess.getPrimaryExpressionAccess().getValueAssignment_0_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_0__1__Impl" + + + // $ANTLR start "rule__PrimaryExpression__Group_1__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1563:1: rule__PrimaryExpression__Group_1__0 : rule__PrimaryExpression__Group_1__0__Impl rule__PrimaryExpression__Group_1__1 ; + public final void rule__PrimaryExpression__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1567:1: ( rule__PrimaryExpression__Group_1__0__Impl rule__PrimaryExpression__Group_1__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1568:2: rule__PrimaryExpression__Group_1__0__Impl rule__PrimaryExpression__Group_1__1 + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_1__0__Impl_in_rule__PrimaryExpression__Group_1__03091); + rule__PrimaryExpression__Group_1__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__PrimaryExpression__Group_1__1_in_rule__PrimaryExpression__Group_1__03094); + rule__PrimaryExpression__Group_1__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_1__0" + + + // $ANTLR start "rule__PrimaryExpression__Group_1__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1575:1: rule__PrimaryExpression__Group_1__0__Impl : ( '(' ) ; + public final void rule__PrimaryExpression__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1579:1: ( ( '(' ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1580:1: ( '(' ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1580:1: ( '(' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1581:1: '(' + { + before(grammarAccess.getPrimaryExpressionAccess().getLeftParenthesisKeyword_1_0()); + match(input,20,FOLLOW_20_in_rule__PrimaryExpression__Group_1__0__Impl3122); + after(grammarAccess.getPrimaryExpressionAccess().getLeftParenthesisKeyword_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_1__0__Impl" + + + // $ANTLR start "rule__PrimaryExpression__Group_1__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1594:1: rule__PrimaryExpression__Group_1__1 : rule__PrimaryExpression__Group_1__1__Impl rule__PrimaryExpression__Group_1__2 ; + public final void rule__PrimaryExpression__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1598:1: ( rule__PrimaryExpression__Group_1__1__Impl rule__PrimaryExpression__Group_1__2 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1599:2: rule__PrimaryExpression__Group_1__1__Impl rule__PrimaryExpression__Group_1__2 + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_1__1__Impl_in_rule__PrimaryExpression__Group_1__13153); + rule__PrimaryExpression__Group_1__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__PrimaryExpression__Group_1__2_in_rule__PrimaryExpression__Group_1__13156); + rule__PrimaryExpression__Group_1__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_1__1" + + + // $ANTLR start "rule__PrimaryExpression__Group_1__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1606:1: rule__PrimaryExpression__Group_1__1__Impl : ( ( rule__PrimaryExpression__ExpAssignment_1_1 ) ) ; + public final void rule__PrimaryExpression__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1610:1: ( ( ( rule__PrimaryExpression__ExpAssignment_1_1 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1611:1: ( ( rule__PrimaryExpression__ExpAssignment_1_1 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1611:1: ( ( rule__PrimaryExpression__ExpAssignment_1_1 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1612:1: ( rule__PrimaryExpression__ExpAssignment_1_1 ) + { + before(grammarAccess.getPrimaryExpressionAccess().getExpAssignment_1_1()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1613:1: ( rule__PrimaryExpression__ExpAssignment_1_1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1613:2: rule__PrimaryExpression__ExpAssignment_1_1 + { + pushFollow(FOLLOW_rule__PrimaryExpression__ExpAssignment_1_1_in_rule__PrimaryExpression__Group_1__1__Impl3183); + rule__PrimaryExpression__ExpAssignment_1_1(); + + state._fsp--; + + + } + + after(grammarAccess.getPrimaryExpressionAccess().getExpAssignment_1_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_1__1__Impl" + + + // $ANTLR start "rule__PrimaryExpression__Group_1__2" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1623:1: rule__PrimaryExpression__Group_1__2 : rule__PrimaryExpression__Group_1__2__Impl ; + public final void rule__PrimaryExpression__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1627:1: ( rule__PrimaryExpression__Group_1__2__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1628:2: rule__PrimaryExpression__Group_1__2__Impl + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_1__2__Impl_in_rule__PrimaryExpression__Group_1__23213); + rule__PrimaryExpression__Group_1__2__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_1__2" + + + // $ANTLR start "rule__PrimaryExpression__Group_1__2__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1634:1: rule__PrimaryExpression__Group_1__2__Impl : ( ')' ) ; + public final void rule__PrimaryExpression__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1638:1: ( ( ')' ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1639:1: ( ')' ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1639:1: ( ')' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1640:1: ')' + { + before(grammarAccess.getPrimaryExpressionAccess().getRightParenthesisKeyword_1_2()); + match(input,21,FOLLOW_21_in_rule__PrimaryExpression__Group_1__2__Impl3241); + after(grammarAccess.getPrimaryExpressionAccess().getRightParenthesisKeyword_1_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_1__2__Impl" + + + // $ANTLR start "rule__PrimaryExpression__Group_2__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1659:1: rule__PrimaryExpression__Group_2__0 : rule__PrimaryExpression__Group_2__0__Impl rule__PrimaryExpression__Group_2__1 ; + public final void rule__PrimaryExpression__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1663:1: ( rule__PrimaryExpression__Group_2__0__Impl rule__PrimaryExpression__Group_2__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1664:2: rule__PrimaryExpression__Group_2__0__Impl rule__PrimaryExpression__Group_2__1 + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_2__0__Impl_in_rule__PrimaryExpression__Group_2__03278); + rule__PrimaryExpression__Group_2__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__PrimaryExpression__Group_2__1_in_rule__PrimaryExpression__Group_2__03281); + rule__PrimaryExpression__Group_2__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_2__0" + + + // $ANTLR start "rule__PrimaryExpression__Group_2__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1671:1: rule__PrimaryExpression__Group_2__0__Impl : ( () ) ; + public final void rule__PrimaryExpression__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1675:1: ( ( () ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1676:1: ( () ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1676:1: ( () ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1677:1: () + { + before(grammarAccess.getPrimaryExpressionAccess().getFunctionCallAction_2_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1678:1: () + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1680:1: + { + } + + after(grammarAccess.getPrimaryExpressionAccess().getFunctionCallAction_2_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_2__0__Impl" + + + // $ANTLR start "rule__PrimaryExpression__Group_2__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1690:1: rule__PrimaryExpression__Group_2__1 : rule__PrimaryExpression__Group_2__1__Impl rule__PrimaryExpression__Group_2__2 ; + public final void rule__PrimaryExpression__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1694:1: ( rule__PrimaryExpression__Group_2__1__Impl rule__PrimaryExpression__Group_2__2 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1695:2: rule__PrimaryExpression__Group_2__1__Impl rule__PrimaryExpression__Group_2__2 + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_2__1__Impl_in_rule__PrimaryExpression__Group_2__13339); + rule__PrimaryExpression__Group_2__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__PrimaryExpression__Group_2__2_in_rule__PrimaryExpression__Group_2__13342); + rule__PrimaryExpression__Group_2__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_2__1" + + + // $ANTLR start "rule__PrimaryExpression__Group_2__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1702:1: rule__PrimaryExpression__Group_2__1__Impl : ( ( rule__PrimaryExpression__RefAssignment_2_1 ) ) ; + public final void rule__PrimaryExpression__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1706:1: ( ( ( rule__PrimaryExpression__RefAssignment_2_1 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1707:1: ( ( rule__PrimaryExpression__RefAssignment_2_1 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1707:1: ( ( rule__PrimaryExpression__RefAssignment_2_1 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1708:1: ( rule__PrimaryExpression__RefAssignment_2_1 ) + { + before(grammarAccess.getPrimaryExpressionAccess().getRefAssignment_2_1()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1709:1: ( rule__PrimaryExpression__RefAssignment_2_1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1709:2: rule__PrimaryExpression__RefAssignment_2_1 + { + pushFollow(FOLLOW_rule__PrimaryExpression__RefAssignment_2_1_in_rule__PrimaryExpression__Group_2__1__Impl3369); + rule__PrimaryExpression__RefAssignment_2_1(); + + state._fsp--; + + + } + + after(grammarAccess.getPrimaryExpressionAccess().getRefAssignment_2_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_2__1__Impl" + + + // $ANTLR start "rule__PrimaryExpression__Group_2__2" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1719:1: rule__PrimaryExpression__Group_2__2 : rule__PrimaryExpression__Group_2__2__Impl ; + public final void rule__PrimaryExpression__Group_2__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1723:1: ( rule__PrimaryExpression__Group_2__2__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1724:2: rule__PrimaryExpression__Group_2__2__Impl + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_2__2__Impl_in_rule__PrimaryExpression__Group_2__23399); + rule__PrimaryExpression__Group_2__2__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_2__2" + + + // $ANTLR start "rule__PrimaryExpression__Group_2__2__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1730:1: rule__PrimaryExpression__Group_2__2__Impl : ( ( rule__PrimaryExpression__Group_2_2__0 ) ) ; + public final void rule__PrimaryExpression__Group_2__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1734:1: ( ( ( rule__PrimaryExpression__Group_2_2__0 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1735:1: ( ( rule__PrimaryExpression__Group_2_2__0 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1735:1: ( ( rule__PrimaryExpression__Group_2_2__0 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1736:1: ( rule__PrimaryExpression__Group_2_2__0 ) + { + before(grammarAccess.getPrimaryExpressionAccess().getGroup_2_2()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1737:1: ( rule__PrimaryExpression__Group_2_2__0 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1737:2: rule__PrimaryExpression__Group_2_2__0 + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_2_2__0_in_rule__PrimaryExpression__Group_2__2__Impl3426); + rule__PrimaryExpression__Group_2_2__0(); + + state._fsp--; + + + } + + after(grammarAccess.getPrimaryExpressionAccess().getGroup_2_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_2__2__Impl" + + + // $ANTLR start "rule__PrimaryExpression__Group_2_2__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1753:1: rule__PrimaryExpression__Group_2_2__0 : rule__PrimaryExpression__Group_2_2__0__Impl rule__PrimaryExpression__Group_2_2__1 ; + public final void rule__PrimaryExpression__Group_2_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1757:1: ( rule__PrimaryExpression__Group_2_2__0__Impl rule__PrimaryExpression__Group_2_2__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1758:2: rule__PrimaryExpression__Group_2_2__0__Impl rule__PrimaryExpression__Group_2_2__1 + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_2_2__0__Impl_in_rule__PrimaryExpression__Group_2_2__03462); + rule__PrimaryExpression__Group_2_2__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__PrimaryExpression__Group_2_2__1_in_rule__PrimaryExpression__Group_2_2__03465); + rule__PrimaryExpression__Group_2_2__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_2_2__0" + + + // $ANTLR start "rule__PrimaryExpression__Group_2_2__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1765:1: rule__PrimaryExpression__Group_2_2__0__Impl : ( '(' ) ; + public final void rule__PrimaryExpression__Group_2_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1769:1: ( ( '(' ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1770:1: ( '(' ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1770:1: ( '(' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1771:1: '(' + { + before(grammarAccess.getPrimaryExpressionAccess().getLeftParenthesisKeyword_2_2_0()); + match(input,20,FOLLOW_20_in_rule__PrimaryExpression__Group_2_2__0__Impl3493); + after(grammarAccess.getPrimaryExpressionAccess().getLeftParenthesisKeyword_2_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_2_2__0__Impl" + + + // $ANTLR start "rule__PrimaryExpression__Group_2_2__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1784:1: rule__PrimaryExpression__Group_2_2__1 : rule__PrimaryExpression__Group_2_2__1__Impl rule__PrimaryExpression__Group_2_2__2 ; + public final void rule__PrimaryExpression__Group_2_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1788:1: ( rule__PrimaryExpression__Group_2_2__1__Impl rule__PrimaryExpression__Group_2_2__2 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1789:2: rule__PrimaryExpression__Group_2_2__1__Impl rule__PrimaryExpression__Group_2_2__2 + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_2_2__1__Impl_in_rule__PrimaryExpression__Group_2_2__13524); + rule__PrimaryExpression__Group_2_2__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__PrimaryExpression__Group_2_2__2_in_rule__PrimaryExpression__Group_2_2__13527); + rule__PrimaryExpression__Group_2_2__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_2_2__1" + + + // $ANTLR start "rule__PrimaryExpression__Group_2_2__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1796:1: rule__PrimaryExpression__Group_2_2__1__Impl : ( ( rule__PrimaryExpression__ArgsAssignment_2_2_1 )? ) ; + public final void rule__PrimaryExpression__Group_2_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1800:1: ( ( ( rule__PrimaryExpression__ArgsAssignment_2_2_1 )? ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1801:1: ( ( rule__PrimaryExpression__ArgsAssignment_2_2_1 )? ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1801:1: ( ( rule__PrimaryExpression__ArgsAssignment_2_2_1 )? ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1802:1: ( rule__PrimaryExpression__ArgsAssignment_2_2_1 )? + { + before(grammarAccess.getPrimaryExpressionAccess().getArgsAssignment_2_2_1()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1803:1: ( rule__PrimaryExpression__ArgsAssignment_2_2_1 )? + int alt10=2; + int LA10_0 = input.LA(1); + + if ( ((LA10_0>=RULE_ID && LA10_0<=RULE_STRING)||LA10_0==17||LA10_0==20) ) { + alt10=1; + } + switch (alt10) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1803:2: rule__PrimaryExpression__ArgsAssignment_2_2_1 + { + pushFollow(FOLLOW_rule__PrimaryExpression__ArgsAssignment_2_2_1_in_rule__PrimaryExpression__Group_2_2__1__Impl3554); + rule__PrimaryExpression__ArgsAssignment_2_2_1(); + + state._fsp--; + + + } + break; + + } + + after(grammarAccess.getPrimaryExpressionAccess().getArgsAssignment_2_2_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_2_2__1__Impl" + + + // $ANTLR start "rule__PrimaryExpression__Group_2_2__2" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1813:1: rule__PrimaryExpression__Group_2_2__2 : rule__PrimaryExpression__Group_2_2__2__Impl rule__PrimaryExpression__Group_2_2__3 ; + public final void rule__PrimaryExpression__Group_2_2__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1817:1: ( rule__PrimaryExpression__Group_2_2__2__Impl rule__PrimaryExpression__Group_2_2__3 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1818:2: rule__PrimaryExpression__Group_2_2__2__Impl rule__PrimaryExpression__Group_2_2__3 + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_2_2__2__Impl_in_rule__PrimaryExpression__Group_2_2__23585); + rule__PrimaryExpression__Group_2_2__2__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__PrimaryExpression__Group_2_2__3_in_rule__PrimaryExpression__Group_2_2__23588); + rule__PrimaryExpression__Group_2_2__3(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_2_2__2" + + + // $ANTLR start "rule__PrimaryExpression__Group_2_2__2__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1825:1: rule__PrimaryExpression__Group_2_2__2__Impl : ( ( rule__PrimaryExpression__Group_2_2_2__0 )* ) ; + public final void rule__PrimaryExpression__Group_2_2__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1829:1: ( ( ( rule__PrimaryExpression__Group_2_2_2__0 )* ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1830:1: ( ( rule__PrimaryExpression__Group_2_2_2__0 )* ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1830:1: ( ( rule__PrimaryExpression__Group_2_2_2__0 )* ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1831:1: ( rule__PrimaryExpression__Group_2_2_2__0 )* + { + before(grammarAccess.getPrimaryExpressionAccess().getGroup_2_2_2()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1832:1: ( rule__PrimaryExpression__Group_2_2_2__0 )* + loop11: + do { + int alt11=2; + int LA11_0 = input.LA(1); + + if ( (LA11_0==22) ) { + alt11=1; + } + + + switch (alt11) { + case 1 : + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1832:2: rule__PrimaryExpression__Group_2_2_2__0 + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_2_2_2__0_in_rule__PrimaryExpression__Group_2_2__2__Impl3615); + rule__PrimaryExpression__Group_2_2_2__0(); + + state._fsp--; + + + } + break; + + default : + break loop11; + } + } while (true); + + after(grammarAccess.getPrimaryExpressionAccess().getGroup_2_2_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_2_2__2__Impl" + + + // $ANTLR start "rule__PrimaryExpression__Group_2_2__3" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1842:1: rule__PrimaryExpression__Group_2_2__3 : rule__PrimaryExpression__Group_2_2__3__Impl ; + public final void rule__PrimaryExpression__Group_2_2__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1846:1: ( rule__PrimaryExpression__Group_2_2__3__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1847:2: rule__PrimaryExpression__Group_2_2__3__Impl + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_2_2__3__Impl_in_rule__PrimaryExpression__Group_2_2__33646); + rule__PrimaryExpression__Group_2_2__3__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_2_2__3" + + + // $ANTLR start "rule__PrimaryExpression__Group_2_2__3__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1853:1: rule__PrimaryExpression__Group_2_2__3__Impl : ( ')' ) ; + public final void rule__PrimaryExpression__Group_2_2__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1857:1: ( ( ')' ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1858:1: ( ')' ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1858:1: ( ')' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1859:1: ')' + { + before(grammarAccess.getPrimaryExpressionAccess().getRightParenthesisKeyword_2_2_3()); + match(input,21,FOLLOW_21_in_rule__PrimaryExpression__Group_2_2__3__Impl3674); + after(grammarAccess.getPrimaryExpressionAccess().getRightParenthesisKeyword_2_2_3()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_2_2__3__Impl" + + + // $ANTLR start "rule__PrimaryExpression__Group_2_2_2__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1880:1: rule__PrimaryExpression__Group_2_2_2__0 : rule__PrimaryExpression__Group_2_2_2__0__Impl rule__PrimaryExpression__Group_2_2_2__1 ; + public final void rule__PrimaryExpression__Group_2_2_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1884:1: ( rule__PrimaryExpression__Group_2_2_2__0__Impl rule__PrimaryExpression__Group_2_2_2__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1885:2: rule__PrimaryExpression__Group_2_2_2__0__Impl rule__PrimaryExpression__Group_2_2_2__1 + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_2_2_2__0__Impl_in_rule__PrimaryExpression__Group_2_2_2__03713); + rule__PrimaryExpression__Group_2_2_2__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__PrimaryExpression__Group_2_2_2__1_in_rule__PrimaryExpression__Group_2_2_2__03716); + rule__PrimaryExpression__Group_2_2_2__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_2_2_2__0" + + + // $ANTLR start "rule__PrimaryExpression__Group_2_2_2__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1892:1: rule__PrimaryExpression__Group_2_2_2__0__Impl : ( ',' ) ; + public final void rule__PrimaryExpression__Group_2_2_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1896:1: ( ( ',' ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1897:1: ( ',' ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1897:1: ( ',' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1898:1: ',' + { + before(grammarAccess.getPrimaryExpressionAccess().getCommaKeyword_2_2_2_0()); + match(input,22,FOLLOW_22_in_rule__PrimaryExpression__Group_2_2_2__0__Impl3744); + after(grammarAccess.getPrimaryExpressionAccess().getCommaKeyword_2_2_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_2_2_2__0__Impl" + + + // $ANTLR start "rule__PrimaryExpression__Group_2_2_2__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1911:1: rule__PrimaryExpression__Group_2_2_2__1 : rule__PrimaryExpression__Group_2_2_2__1__Impl ; + public final void rule__PrimaryExpression__Group_2_2_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1915:1: ( rule__PrimaryExpression__Group_2_2_2__1__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1916:2: rule__PrimaryExpression__Group_2_2_2__1__Impl + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_2_2_2__1__Impl_in_rule__PrimaryExpression__Group_2_2_2__13775); + rule__PrimaryExpression__Group_2_2_2__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_2_2_2__1" + + + // $ANTLR start "rule__PrimaryExpression__Group_2_2_2__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1922:1: rule__PrimaryExpression__Group_2_2_2__1__Impl : ( ( rule__PrimaryExpression__ArgsAssignment_2_2_2_1 ) ) ; + public final void rule__PrimaryExpression__Group_2_2_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1926:1: ( ( ( rule__PrimaryExpression__ArgsAssignment_2_2_2_1 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1927:1: ( ( rule__PrimaryExpression__ArgsAssignment_2_2_2_1 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1927:1: ( ( rule__PrimaryExpression__ArgsAssignment_2_2_2_1 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1928:1: ( rule__PrimaryExpression__ArgsAssignment_2_2_2_1 ) + { + before(grammarAccess.getPrimaryExpressionAccess().getArgsAssignment_2_2_2_1()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1929:1: ( rule__PrimaryExpression__ArgsAssignment_2_2_2_1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1929:2: rule__PrimaryExpression__ArgsAssignment_2_2_2_1 + { + pushFollow(FOLLOW_rule__PrimaryExpression__ArgsAssignment_2_2_2_1_in_rule__PrimaryExpression__Group_2_2_2__1__Impl3802); + rule__PrimaryExpression__ArgsAssignment_2_2_2_1(); + + state._fsp--; + + + } + + after(grammarAccess.getPrimaryExpressionAccess().getArgsAssignment_2_2_2_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_2_2_2__1__Impl" + + + // $ANTLR start "rule__PrimaryExpression__Group_3__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1943:1: rule__PrimaryExpression__Group_3__0 : rule__PrimaryExpression__Group_3__0__Impl rule__PrimaryExpression__Group_3__1 ; + public final void rule__PrimaryExpression__Group_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1947:1: ( rule__PrimaryExpression__Group_3__0__Impl rule__PrimaryExpression__Group_3__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1948:2: rule__PrimaryExpression__Group_3__0__Impl rule__PrimaryExpression__Group_3__1 + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_3__0__Impl_in_rule__PrimaryExpression__Group_3__03836); + rule__PrimaryExpression__Group_3__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__PrimaryExpression__Group_3__1_in_rule__PrimaryExpression__Group_3__03839); + rule__PrimaryExpression__Group_3__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_3__0" + + + // $ANTLR start "rule__PrimaryExpression__Group_3__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1955:1: rule__PrimaryExpression__Group_3__0__Impl : ( () ) ; + public final void rule__PrimaryExpression__Group_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1959:1: ( ( () ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1960:1: ( () ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1960:1: ( () ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1961:1: () + { + before(grammarAccess.getPrimaryExpressionAccess().getVariableReferenceAction_3_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1962:1: () + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1964:1: + { + } + + after(grammarAccess.getPrimaryExpressionAccess().getVariableReferenceAction_3_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_3__0__Impl" + + + // $ANTLR start "rule__PrimaryExpression__Group_3__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1974:1: rule__PrimaryExpression__Group_3__1 : rule__PrimaryExpression__Group_3__1__Impl ; + public final void rule__PrimaryExpression__Group_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1978:1: ( rule__PrimaryExpression__Group_3__1__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1979:2: rule__PrimaryExpression__Group_3__1__Impl + { + pushFollow(FOLLOW_rule__PrimaryExpression__Group_3__1__Impl_in_rule__PrimaryExpression__Group_3__13897); + rule__PrimaryExpression__Group_3__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_3__1" + + + // $ANTLR start "rule__PrimaryExpression__Group_3__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1985:1: rule__PrimaryExpression__Group_3__1__Impl : ( ( rule__PrimaryExpression__RefAssignment_3_1 ) ) ; + public final void rule__PrimaryExpression__Group_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1989:1: ( ( ( rule__PrimaryExpression__RefAssignment_3_1 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1990:1: ( ( rule__PrimaryExpression__RefAssignment_3_1 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1990:1: ( ( rule__PrimaryExpression__RefAssignment_3_1 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1991:1: ( rule__PrimaryExpression__RefAssignment_3_1 ) + { + before(grammarAccess.getPrimaryExpressionAccess().getRefAssignment_3_1()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1992:1: ( rule__PrimaryExpression__RefAssignment_3_1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:1992:2: rule__PrimaryExpression__RefAssignment_3_1 + { + pushFollow(FOLLOW_rule__PrimaryExpression__RefAssignment_3_1_in_rule__PrimaryExpression__Group_3__1__Impl3924); + rule__PrimaryExpression__RefAssignment_3_1(); + + state._fsp--; + + + } + + after(grammarAccess.getPrimaryExpressionAccess().getRefAssignment_3_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__Group_3__1__Impl" + + + // $ANTLR start "rule__FunctionArgument__Group_0__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2006:1: rule__FunctionArgument__Group_0__0 : rule__FunctionArgument__Group_0__0__Impl rule__FunctionArgument__Group_0__1 ; + public final void rule__FunctionArgument__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2010:1: ( rule__FunctionArgument__Group_0__0__Impl rule__FunctionArgument__Group_0__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2011:2: rule__FunctionArgument__Group_0__0__Impl rule__FunctionArgument__Group_0__1 + { + pushFollow(FOLLOW_rule__FunctionArgument__Group_0__0__Impl_in_rule__FunctionArgument__Group_0__03958); + rule__FunctionArgument__Group_0__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__FunctionArgument__Group_0__1_in_rule__FunctionArgument__Group_0__03961); + rule__FunctionArgument__Group_0__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionArgument__Group_0__0" + + + // $ANTLR start "rule__FunctionArgument__Group_0__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2018:1: rule__FunctionArgument__Group_0__0__Impl : ( () ) ; + public final void rule__FunctionArgument__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2022:1: ( ( () ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2023:1: ( () ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2023:1: ( () ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2024:1: () + { + before(grammarAccess.getFunctionArgumentAccess().getBooleanLiteralAction_0_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2025:1: () + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2027:1: + { + } + + after(grammarAccess.getFunctionArgumentAccess().getBooleanLiteralAction_0_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionArgument__Group_0__0__Impl" + + + // $ANTLR start "rule__FunctionArgument__Group_0__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2037:1: rule__FunctionArgument__Group_0__1 : rule__FunctionArgument__Group_0__1__Impl ; + public final void rule__FunctionArgument__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2041:1: ( rule__FunctionArgument__Group_0__1__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2042:2: rule__FunctionArgument__Group_0__1__Impl + { + pushFollow(FOLLOW_rule__FunctionArgument__Group_0__1__Impl_in_rule__FunctionArgument__Group_0__14019); + rule__FunctionArgument__Group_0__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionArgument__Group_0__1" + + + // $ANTLR start "rule__FunctionArgument__Group_0__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2048:1: rule__FunctionArgument__Group_0__1__Impl : ( ( rule__FunctionArgument__ValueAssignment_0_1 ) ) ; + public final void rule__FunctionArgument__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2052:1: ( ( ( rule__FunctionArgument__ValueAssignment_0_1 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2053:1: ( ( rule__FunctionArgument__ValueAssignment_0_1 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2053:1: ( ( rule__FunctionArgument__ValueAssignment_0_1 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2054:1: ( rule__FunctionArgument__ValueAssignment_0_1 ) + { + before(grammarAccess.getFunctionArgumentAccess().getValueAssignment_0_1()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2055:1: ( rule__FunctionArgument__ValueAssignment_0_1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2055:2: rule__FunctionArgument__ValueAssignment_0_1 + { + pushFollow(FOLLOW_rule__FunctionArgument__ValueAssignment_0_1_in_rule__FunctionArgument__Group_0__1__Impl4046); + rule__FunctionArgument__ValueAssignment_0_1(); + + state._fsp--; + + + } + + after(grammarAccess.getFunctionArgumentAccess().getValueAssignment_0_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionArgument__Group_0__1__Impl" + + + // $ANTLR start "rule__FunctionArgument__Group_1__0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2069:1: rule__FunctionArgument__Group_1__0 : rule__FunctionArgument__Group_1__0__Impl rule__FunctionArgument__Group_1__1 ; + public final void rule__FunctionArgument__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2073:1: ( rule__FunctionArgument__Group_1__0__Impl rule__FunctionArgument__Group_1__1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2074:2: rule__FunctionArgument__Group_1__0__Impl rule__FunctionArgument__Group_1__1 + { + pushFollow(FOLLOW_rule__FunctionArgument__Group_1__0__Impl_in_rule__FunctionArgument__Group_1__04080); + rule__FunctionArgument__Group_1__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_rule__FunctionArgument__Group_1__1_in_rule__FunctionArgument__Group_1__04083); + rule__FunctionArgument__Group_1__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionArgument__Group_1__0" + + + // $ANTLR start "rule__FunctionArgument__Group_1__0__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2081:1: rule__FunctionArgument__Group_1__0__Impl : ( () ) ; + public final void rule__FunctionArgument__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2085:1: ( ( () ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2086:1: ( () ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2086:1: ( () ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2087:1: () + { + before(grammarAccess.getFunctionArgumentAccess().getStringLiteralAction_1_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2088:1: () + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2090:1: + { + } + + after(grammarAccess.getFunctionArgumentAccess().getStringLiteralAction_1_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionArgument__Group_1__0__Impl" + + + // $ANTLR start "rule__FunctionArgument__Group_1__1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2100:1: rule__FunctionArgument__Group_1__1 : rule__FunctionArgument__Group_1__1__Impl ; + public final void rule__FunctionArgument__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2104:1: ( rule__FunctionArgument__Group_1__1__Impl ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2105:2: rule__FunctionArgument__Group_1__1__Impl + { + pushFollow(FOLLOW_rule__FunctionArgument__Group_1__1__Impl_in_rule__FunctionArgument__Group_1__14141); + rule__FunctionArgument__Group_1__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionArgument__Group_1__1" + + + // $ANTLR start "rule__FunctionArgument__Group_1__1__Impl" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2111:1: rule__FunctionArgument__Group_1__1__Impl : ( ( rule__FunctionArgument__ValueAssignment_1_1 ) ) ; + public final void rule__FunctionArgument__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2115:1: ( ( ( rule__FunctionArgument__ValueAssignment_1_1 ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2116:1: ( ( rule__FunctionArgument__ValueAssignment_1_1 ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2116:1: ( ( rule__FunctionArgument__ValueAssignment_1_1 ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2117:1: ( rule__FunctionArgument__ValueAssignment_1_1 ) + { + before(grammarAccess.getFunctionArgumentAccess().getValueAssignment_1_1()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2118:1: ( rule__FunctionArgument__ValueAssignment_1_1 ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2118:2: rule__FunctionArgument__ValueAssignment_1_1 + { + pushFollow(FOLLOW_rule__FunctionArgument__ValueAssignment_1_1_in_rule__FunctionArgument__Group_1__1__Impl4168); + rule__FunctionArgument__ValueAssignment_1_1(); + + state._fsp--; + + + } + + after(grammarAccess.getFunctionArgumentAccess().getValueAssignment_1_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionArgument__Group_1__1__Impl" + + + // $ANTLR start "rule__CompartmentTransitionDefinitions__MetamodelAssignment_0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2135:1: rule__CompartmentTransitionDefinitions__MetamodelAssignment_0 : ( ( RULE_ID ) ) ; + public final void rule__CompartmentTransitionDefinitions__MetamodelAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2139:1: ( ( ( RULE_ID ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2140:1: ( ( RULE_ID ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2140:1: ( ( RULE_ID ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2141:1: ( RULE_ID ) + { + before(grammarAccess.getCompartmentTransitionDefinitionsAccess().getMetamodelMetamodelResourceCrossReference_0_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2142:1: ( RULE_ID ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2143:1: RULE_ID + { + before(grammarAccess.getCompartmentTransitionDefinitionsAccess().getMetamodelMetamodelResourceIDTerminalRuleCall_0_0_1()); + match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__CompartmentTransitionDefinitions__MetamodelAssignment_04213); + after(grammarAccess.getCompartmentTransitionDefinitionsAccess().getMetamodelMetamodelResourceIDTerminalRuleCall_0_0_1()); + + } + + after(grammarAccess.getCompartmentTransitionDefinitionsAccess().getMetamodelMetamodelResourceCrossReference_0_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CompartmentTransitionDefinitions__MetamodelAssignment_0" + + + // $ANTLR start "rule__CompartmentTransitionDefinitions__ExpressionAssignment_1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2154:1: rule__CompartmentTransitionDefinitions__ExpressionAssignment_1 : ( ruleTransitionBlock ) ; + public final void rule__CompartmentTransitionDefinitions__ExpressionAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2158:1: ( ( ruleTransitionBlock ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2159:1: ( ruleTransitionBlock ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2159:1: ( ruleTransitionBlock ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2160:1: ruleTransitionBlock + { + before(grammarAccess.getCompartmentTransitionDefinitionsAccess().getExpressionTransitionBlockParserRuleCall_1_0()); + pushFollow(FOLLOW_ruleTransitionBlock_in_rule__CompartmentTransitionDefinitions__ExpressionAssignment_14248); + ruleTransitionBlock(); + + state._fsp--; + + after(grammarAccess.getCompartmentTransitionDefinitionsAccess().getExpressionTransitionBlockParserRuleCall_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__CompartmentTransitionDefinitions__ExpressionAssignment_1" + + + // $ANTLR start "rule__TransitionBlock__BlockAssignment" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2172:1: rule__TransitionBlock__BlockAssignment : ( ruleBlock ) ; + public final void rule__TransitionBlock__BlockAssignment() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2176:1: ( ( ruleBlock ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2177:1: ( ruleBlock ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2177:1: ( ruleBlock ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2178:1: ruleBlock + { + before(grammarAccess.getTransitionBlockAccess().getBlockBlockParserRuleCall_0()); + pushFollow(FOLLOW_ruleBlock_in_rule__TransitionBlock__BlockAssignment4282); + ruleBlock(); + + state._fsp--; + + after(grammarAccess.getTransitionBlockAccess().getBlockBlockParserRuleCall_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__TransitionBlock__BlockAssignment" + + + // $ANTLR start "rule__Block__StatementsAssignment_1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2190:1: rule__Block__StatementsAssignment_1 : ( ruleDefStatement ) ; + public final void rule__Block__StatementsAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2194:1: ( ( ruleDefStatement ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2195:1: ( ruleDefStatement ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2195:1: ( ruleDefStatement ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2196:1: ruleDefStatement + { + before(grammarAccess.getBlockAccess().getStatementsDefStatementParserRuleCall_1_0()); + pushFollow(FOLLOW_ruleDefStatement_in_rule__Block__StatementsAssignment_14316); + ruleDefStatement(); + + state._fsp--; + + after(grammarAccess.getBlockAccess().getStatementsDefStatementParserRuleCall_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Block__StatementsAssignment_1" + + + // $ANTLR start "rule__Block__RetAssignment_2" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2205:1: rule__Block__RetAssignment_2 : ( ruleReturnStatement ) ; + public final void rule__Block__RetAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2209:1: ( ( ruleReturnStatement ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2210:1: ( ruleReturnStatement ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2210:1: ( ruleReturnStatement ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2211:1: ruleReturnStatement + { + before(grammarAccess.getBlockAccess().getRetReturnStatementParserRuleCall_2_0()); + pushFollow(FOLLOW_ruleReturnStatement_in_rule__Block__RetAssignment_24347); + ruleReturnStatement(); + + state._fsp--; + + after(grammarAccess.getBlockAccess().getRetReturnStatementParserRuleCall_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Block__RetAssignment_2" + + + // $ANTLR start "rule__DefStatement__VarnameAssignment_0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2220:1: rule__DefStatement__VarnameAssignment_0 : ( RULE_ID ) ; + public final void rule__DefStatement__VarnameAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2224:1: ( ( RULE_ID ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2225:1: ( RULE_ID ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2225:1: ( RULE_ID ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2226:1: RULE_ID + { + before(grammarAccess.getDefStatementAccess().getVarnameIDTerminalRuleCall_0_0()); + match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__DefStatement__VarnameAssignment_04378); + after(grammarAccess.getDefStatementAccess().getVarnameIDTerminalRuleCall_0_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DefStatement__VarnameAssignment_0" + + + // $ANTLR start "rule__DefStatement__ExprAssignment_2" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2235:1: rule__DefStatement__ExprAssignment_2 : ( ruleEvaluation ) ; + public final void rule__DefStatement__ExprAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2239:1: ( ( ruleEvaluation ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2240:1: ( ruleEvaluation ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2240:1: ( ruleEvaluation ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2241:1: ruleEvaluation + { + before(grammarAccess.getDefStatementAccess().getExprEvaluationParserRuleCall_2_0()); + pushFollow(FOLLOW_ruleEvaluation_in_rule__DefStatement__ExprAssignment_24409); + ruleEvaluation(); + + state._fsp--; + + after(grammarAccess.getDefStatementAccess().getExprEvaluationParserRuleCall_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DefStatement__ExprAssignment_2" + + + // $ANTLR start "rule__Evaluation__ExpressionAssignment_0" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2250:1: rule__Evaluation__ExpressionAssignment_0 : ( ruleExpression ) ; + public final void rule__Evaluation__ExpressionAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2254:1: ( ( ruleExpression ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2255:1: ( ruleExpression ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2255:1: ( ruleExpression ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2256:1: ruleExpression + { + before(grammarAccess.getEvaluationAccess().getExpressionExpressionParserRuleCall_0_0()); + pushFollow(FOLLOW_ruleExpression_in_rule__Evaluation__ExpressionAssignment_04440); + ruleExpression(); + + state._fsp--; + + after(grammarAccess.getEvaluationAccess().getExpressionExpressionParserRuleCall_0_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Evaluation__ExpressionAssignment_0" + + + // $ANTLR start "rule__Addition__RightAssignment_1_1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2265:1: rule__Addition__RightAssignment_1_1 : ( ruleMultiplication ) ; + public final void rule__Addition__RightAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2269:1: ( ( ruleMultiplication ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2270:1: ( ruleMultiplication ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2270:1: ( ruleMultiplication ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2271:1: ruleMultiplication + { + before(grammarAccess.getAdditionAccess().getRightMultiplicationParserRuleCall_1_1_0()); + pushFollow(FOLLOW_ruleMultiplication_in_rule__Addition__RightAssignment_1_14471); + ruleMultiplication(); + + state._fsp--; + + after(grammarAccess.getAdditionAccess().getRightMultiplicationParserRuleCall_1_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Addition__RightAssignment_1_1" + + + // $ANTLR start "rule__Multiplication__RightAssignment_1_1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2280:1: rule__Multiplication__RightAssignment_1_1 : ( ruleNegatedExpression ) ; + public final void rule__Multiplication__RightAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2284:1: ( ( ruleNegatedExpression ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2285:1: ( ruleNegatedExpression ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2285:1: ( ruleNegatedExpression ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2286:1: ruleNegatedExpression + { + before(grammarAccess.getMultiplicationAccess().getRightNegatedExpressionParserRuleCall_1_1_0()); + pushFollow(FOLLOW_ruleNegatedExpression_in_rule__Multiplication__RightAssignment_1_14502); + ruleNegatedExpression(); + + state._fsp--; + + after(grammarAccess.getMultiplicationAccess().getRightNegatedExpressionParserRuleCall_1_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Multiplication__RightAssignment_1_1" + + + // $ANTLR start "rule__NegatedExpression__NegateAssignment_1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2295:1: rule__NegatedExpression__NegateAssignment_1 : ( ( '-' ) ) ; + public final void rule__NegatedExpression__NegateAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2299:1: ( ( ( '-' ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2300:1: ( ( '-' ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2300:1: ( ( '-' ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2301:1: ( '-' ) + { + before(grammarAccess.getNegatedExpressionAccess().getNegateHyphenMinusKeyword_1_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2302:1: ( '-' ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2303:1: '-' + { + before(grammarAccess.getNegatedExpressionAccess().getNegateHyphenMinusKeyword_1_0()); + match(input,17,FOLLOW_17_in_rule__NegatedExpression__NegateAssignment_14538); + after(grammarAccess.getNegatedExpressionAccess().getNegateHyphenMinusKeyword_1_0()); + + } + + after(grammarAccess.getNegatedExpressionAccess().getNegateHyphenMinusKeyword_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NegatedExpression__NegateAssignment_1" + + + // $ANTLR start "rule__NegatedExpression__ExpAssignment_2" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2318:1: rule__NegatedExpression__ExpAssignment_2 : ( rulePrimaryExpression ) ; + public final void rule__NegatedExpression__ExpAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2322:1: ( ( rulePrimaryExpression ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2323:1: ( rulePrimaryExpression ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2323:1: ( rulePrimaryExpression ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2324:1: rulePrimaryExpression + { + before(grammarAccess.getNegatedExpressionAccess().getExpPrimaryExpressionParserRuleCall_2_0()); + pushFollow(FOLLOW_rulePrimaryExpression_in_rule__NegatedExpression__ExpAssignment_24577); + rulePrimaryExpression(); + + state._fsp--; + + after(grammarAccess.getNegatedExpressionAccess().getExpPrimaryExpressionParserRuleCall_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__NegatedExpression__ExpAssignment_2" + + + // $ANTLR start "rule__PrimaryExpression__ValueAssignment_0_1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2333:1: rule__PrimaryExpression__ValueAssignment_0_1 : ( RULE_NUMBER ) ; + public final void rule__PrimaryExpression__ValueAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2337:1: ( ( RULE_NUMBER ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2338:1: ( RULE_NUMBER ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2338:1: ( RULE_NUMBER ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2339:1: RULE_NUMBER + { + before(grammarAccess.getPrimaryExpressionAccess().getValueNUMBERTerminalRuleCall_0_1_0()); + match(input,RULE_NUMBER,FOLLOW_RULE_NUMBER_in_rule__PrimaryExpression__ValueAssignment_0_14608); + after(grammarAccess.getPrimaryExpressionAccess().getValueNUMBERTerminalRuleCall_0_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__ValueAssignment_0_1" + + + // $ANTLR start "rule__PrimaryExpression__ExpAssignment_1_1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2348:1: rule__PrimaryExpression__ExpAssignment_1_1 : ( ruleExpression ) ; + public final void rule__PrimaryExpression__ExpAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2352:1: ( ( ruleExpression ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2353:1: ( ruleExpression ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2353:1: ( ruleExpression ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2354:1: ruleExpression + { + before(grammarAccess.getPrimaryExpressionAccess().getExpExpressionParserRuleCall_1_1_0()); + pushFollow(FOLLOW_ruleExpression_in_rule__PrimaryExpression__ExpAssignment_1_14639); + ruleExpression(); + + state._fsp--; + + after(grammarAccess.getPrimaryExpressionAccess().getExpExpressionParserRuleCall_1_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__ExpAssignment_1_1" + + + // $ANTLR start "rule__PrimaryExpression__RefAssignment_2_1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2363:1: rule__PrimaryExpression__RefAssignment_2_1 : ( ( RULE_ID ) ) ; + public final void rule__PrimaryExpression__RefAssignment_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2367:1: ( ( ( RULE_ID ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2368:1: ( ( RULE_ID ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2368:1: ( ( RULE_ID ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2369:1: ( RULE_ID ) + { + before(grammarAccess.getPrimaryExpressionAccess().getRefFunctionReferenceCrossReference_2_1_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2370:1: ( RULE_ID ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2371:1: RULE_ID + { + before(grammarAccess.getPrimaryExpressionAccess().getRefFunctionReferenceIDTerminalRuleCall_2_1_0_1()); + match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__PrimaryExpression__RefAssignment_2_14674); + after(grammarAccess.getPrimaryExpressionAccess().getRefFunctionReferenceIDTerminalRuleCall_2_1_0_1()); + + } + + after(grammarAccess.getPrimaryExpressionAccess().getRefFunctionReferenceCrossReference_2_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__RefAssignment_2_1" + + + // $ANTLR start "rule__PrimaryExpression__ArgsAssignment_2_2_1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2382:1: rule__PrimaryExpression__ArgsAssignment_2_2_1 : ( ruleFunctionArgument ) ; + public final void rule__PrimaryExpression__ArgsAssignment_2_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2386:1: ( ( ruleFunctionArgument ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2387:1: ( ruleFunctionArgument ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2387:1: ( ruleFunctionArgument ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2388:1: ruleFunctionArgument + { + before(grammarAccess.getPrimaryExpressionAccess().getArgsFunctionArgumentParserRuleCall_2_2_1_0()); + pushFollow(FOLLOW_ruleFunctionArgument_in_rule__PrimaryExpression__ArgsAssignment_2_2_14709); + ruleFunctionArgument(); + + state._fsp--; + + after(grammarAccess.getPrimaryExpressionAccess().getArgsFunctionArgumentParserRuleCall_2_2_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__ArgsAssignment_2_2_1" + + + // $ANTLR start "rule__PrimaryExpression__ArgsAssignment_2_2_2_1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2397:1: rule__PrimaryExpression__ArgsAssignment_2_2_2_1 : ( ruleFunctionArgument ) ; + public final void rule__PrimaryExpression__ArgsAssignment_2_2_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2401:1: ( ( ruleFunctionArgument ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2402:1: ( ruleFunctionArgument ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2402:1: ( ruleFunctionArgument ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2403:1: ruleFunctionArgument + { + before(grammarAccess.getPrimaryExpressionAccess().getArgsFunctionArgumentParserRuleCall_2_2_2_1_0()); + pushFollow(FOLLOW_ruleFunctionArgument_in_rule__PrimaryExpression__ArgsAssignment_2_2_2_14740); + ruleFunctionArgument(); + + state._fsp--; + + after(grammarAccess.getPrimaryExpressionAccess().getArgsFunctionArgumentParserRuleCall_2_2_2_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__ArgsAssignment_2_2_2_1" + + + // $ANTLR start "rule__PrimaryExpression__RefAssignment_3_1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2412:1: rule__PrimaryExpression__RefAssignment_3_1 : ( ( RULE_ID ) ) ; + public final void rule__PrimaryExpression__RefAssignment_3_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2416:1: ( ( ( RULE_ID ) ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2417:1: ( ( RULE_ID ) ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2417:1: ( ( RULE_ID ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2418:1: ( RULE_ID ) + { + before(grammarAccess.getPrimaryExpressionAccess().getRefScopedVariableReferenceCrossReference_3_1_0()); + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2419:1: ( RULE_ID ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2420:1: RULE_ID + { + before(grammarAccess.getPrimaryExpressionAccess().getRefScopedVariableReferenceIDTerminalRuleCall_3_1_0_1()); + match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__PrimaryExpression__RefAssignment_3_14775); + after(grammarAccess.getPrimaryExpressionAccess().getRefScopedVariableReferenceIDTerminalRuleCall_3_1_0_1()); + + } + + after(grammarAccess.getPrimaryExpressionAccess().getRefScopedVariableReferenceCrossReference_3_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__PrimaryExpression__RefAssignment_3_1" + + + // $ANTLR start "rule__FunctionArgument__ValueAssignment_0_1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2431:1: rule__FunctionArgument__ValueAssignment_0_1 : ( RULE_BOOLEAN ) ; + public final void rule__FunctionArgument__ValueAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2435:1: ( ( RULE_BOOLEAN ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2436:1: ( RULE_BOOLEAN ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2436:1: ( RULE_BOOLEAN ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2437:1: RULE_BOOLEAN + { + before(grammarAccess.getFunctionArgumentAccess().getValueBOOLEANTerminalRuleCall_0_1_0()); + match(input,RULE_BOOLEAN,FOLLOW_RULE_BOOLEAN_in_rule__FunctionArgument__ValueAssignment_0_14810); + after(grammarAccess.getFunctionArgumentAccess().getValueBOOLEANTerminalRuleCall_0_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionArgument__ValueAssignment_0_1" + + + // $ANTLR start "rule__FunctionArgument__ValueAssignment_1_1" + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2446:1: rule__FunctionArgument__ValueAssignment_1_1 : ( RULE_STRING ) ; + public final void rule__FunctionArgument__ValueAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2450:1: ( ( RULE_STRING ) ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2451:1: ( RULE_STRING ) + { + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2451:1: ( RULE_STRING ) + // ../org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/contentassist/antlr/internal/InternalCTDL.g:2452:1: RULE_STRING + { + before(grammarAccess.getFunctionArgumentAccess().getValueSTRINGTerminalRuleCall_1_1_0()); + match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__FunctionArgument__ValueAssignment_1_14841); + after(grammarAccess.getFunctionArgumentAccess().getValueSTRINGTerminalRuleCall_1_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__FunctionArgument__ValueAssignment_1_1" + + // Delegated rules + + + + + public static final BitSet FOLLOW_ruleCompartmentTransitionDefinitions_in_entryRuleCompartmentTransitionDefinitions61 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleCompartmentTransitionDefinitions68 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__CompartmentTransitionDefinitions__Group__0_in_ruleCompartmentTransitionDefinitions94 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleTransitionBlock_in_entryRuleTransitionBlock123 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleTransitionBlock130 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__TransitionBlock__BlockAssignment_in_ruleTransitionBlock156 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleBlock_in_entryRuleBlock187 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleBlock194 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Block__Group__0_in_ruleBlock220 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleDefStatement_in_entryRuleDefStatement247 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleDefStatement254 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__DefStatement__Group__0_in_ruleDefStatement280 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleReturnStatement_in_entryRuleReturnStatement307 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleReturnStatement314 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__ReturnStatement__Group__0_in_ruleReturnStatement340 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleEvaluation_in_entryRuleEvaluation367 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleEvaluation374 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Evaluation__Group__0_in_ruleEvaluation400 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleExpression_in_entryRuleExpression427 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleExpression434 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleAddition_in_ruleExpression460 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleAddition_in_entryRuleAddition486 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleAddition493 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Addition__Group__0_in_ruleAddition519 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleMultiplication_in_entryRuleMultiplication546 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleMultiplication553 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Multiplication__Group__0_in_ruleMultiplication579 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleNegatedExpression_in_entryRuleNegatedExpression606 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleNegatedExpression613 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__NegatedExpression__Group__0_in_ruleNegatedExpression639 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rulePrimaryExpression_in_entryRulePrimaryExpression666 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRulePrimaryExpression673 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Alternatives_in_rulePrimaryExpression699 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleFunctionArgument_in_entryRuleFunctionArgument726 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleFunctionArgument733 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__FunctionArgument__Alternatives_in_ruleFunctionArgument759 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Addition__Group_1_0_0__0_in_rule__Addition__Alternatives_1_0807 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Addition__Group_1_0_1__0_in_rule__Addition__Alternatives_1_0825 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Multiplication__Group_1_0_0__0_in_rule__Multiplication__Alternatives_1_0858 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Multiplication__Group_1_0_1__0_in_rule__Multiplication__Alternatives_1_0876 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_0__0_in_rule__PrimaryExpression__Alternatives909 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_1__0_in_rule__PrimaryExpression__Alternatives927 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_2__0_in_rule__PrimaryExpression__Alternatives945 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_3__0_in_rule__PrimaryExpression__Alternatives963 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__FunctionArgument__Group_0__0_in_rule__FunctionArgument__Alternatives996 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__FunctionArgument__Group_1__0_in_rule__FunctionArgument__Alternatives1014 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleExpression_in_rule__FunctionArgument__Alternatives1032 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__CompartmentTransitionDefinitions__Group__0__Impl_in_rule__CompartmentTransitionDefinitions__Group__01065 = new BitSet(new long[]{0x0000000000004010L}); + public static final BitSet FOLLOW_rule__CompartmentTransitionDefinitions__Group__1_in_rule__CompartmentTransitionDefinitions__Group__01068 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__CompartmentTransitionDefinitions__MetamodelAssignment_0_in_rule__CompartmentTransitionDefinitions__Group__0__Impl1095 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__CompartmentTransitionDefinitions__Group__1__Impl_in_rule__CompartmentTransitionDefinitions__Group__11126 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__CompartmentTransitionDefinitions__ExpressionAssignment_1_in_rule__CompartmentTransitionDefinitions__Group__1__Impl1153 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Block__Group__0__Impl_in_rule__Block__Group__01189 = new BitSet(new long[]{0x0000000000004010L}); + public static final BitSet FOLLOW_rule__Block__Group__1_in_rule__Block__Group__01192 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Block__Group__1__Impl_in_rule__Block__Group__11250 = new BitSet(new long[]{0x0000000000004010L}); + public static final BitSet FOLLOW_rule__Block__Group__2_in_rule__Block__Group__11253 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Block__StatementsAssignment_1_in_rule__Block__Group__1__Impl1280 = new BitSet(new long[]{0x0000000000000012L}); + public static final BitSet FOLLOW_rule__Block__Group__2__Impl_in_rule__Block__Group__21311 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Block__RetAssignment_2_in_rule__Block__Group__2__Impl1338 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__DefStatement__Group__0__Impl_in_rule__DefStatement__Group__01374 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_rule__DefStatement__Group__1_in_rule__DefStatement__Group__01377 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__DefStatement__VarnameAssignment_0_in_rule__DefStatement__Group__0__Impl1404 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__DefStatement__Group__1__Impl_in_rule__DefStatement__Group__11434 = new BitSet(new long[]{0x0000000000120030L}); + public static final BitSet FOLLOW_rule__DefStatement__Group__2_in_rule__DefStatement__Group__11437 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_13_in_rule__DefStatement__Group__1__Impl1465 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__DefStatement__Group__2__Impl_in_rule__DefStatement__Group__21496 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__DefStatement__ExprAssignment_2_in_rule__DefStatement__Group__2__Impl1523 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__ReturnStatement__Group__0__Impl_in_rule__ReturnStatement__Group__01559 = new BitSet(new long[]{0x0000000000120030L}); + public static final BitSet FOLLOW_rule__ReturnStatement__Group__1_in_rule__ReturnStatement__Group__01562 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_14_in_rule__ReturnStatement__Group__0__Impl1590 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__ReturnStatement__Group__1__Impl_in_rule__ReturnStatement__Group__11621 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleEvaluation_in_rule__ReturnStatement__Group__1__Impl1648 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Evaluation__Group__0__Impl_in_rule__Evaluation__Group__01681 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_rule__Evaluation__Group__1_in_rule__Evaluation__Group__01684 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Evaluation__ExpressionAssignment_0_in_rule__Evaluation__Group__0__Impl1711 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Evaluation__Group__1__Impl_in_rule__Evaluation__Group__11741 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_15_in_rule__Evaluation__Group__1__Impl1769 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Addition__Group__0__Impl_in_rule__Addition__Group__01804 = new BitSet(new long[]{0x0000000000030000L}); + public static final BitSet FOLLOW_rule__Addition__Group__1_in_rule__Addition__Group__01807 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleMultiplication_in_rule__Addition__Group__0__Impl1834 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Addition__Group__1__Impl_in_rule__Addition__Group__11863 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Addition__Group_1__0_in_rule__Addition__Group__1__Impl1890 = new BitSet(new long[]{0x0000000000030002L}); + public static final BitSet FOLLOW_rule__Addition__Group_1__0__Impl_in_rule__Addition__Group_1__01925 = new BitSet(new long[]{0x0000000000120030L}); + public static final BitSet FOLLOW_rule__Addition__Group_1__1_in_rule__Addition__Group_1__01928 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Addition__Alternatives_1_0_in_rule__Addition__Group_1__0__Impl1955 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Addition__Group_1__1__Impl_in_rule__Addition__Group_1__11985 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Addition__RightAssignment_1_1_in_rule__Addition__Group_1__1__Impl2012 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Addition__Group_1_0_0__0__Impl_in_rule__Addition__Group_1_0_0__02046 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_rule__Addition__Group_1_0_0__1_in_rule__Addition__Group_1_0_0__02049 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Addition__Group_1_0_0__1__Impl_in_rule__Addition__Group_1_0_0__12107 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_16_in_rule__Addition__Group_1_0_0__1__Impl2135 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Addition__Group_1_0_1__0__Impl_in_rule__Addition__Group_1_0_1__02170 = new BitSet(new long[]{0x0000000000030000L}); + public static final BitSet FOLLOW_rule__Addition__Group_1_0_1__1_in_rule__Addition__Group_1_0_1__02173 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Addition__Group_1_0_1__1__Impl_in_rule__Addition__Group_1_0_1__12231 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_17_in_rule__Addition__Group_1_0_1__1__Impl2259 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Multiplication__Group__0__Impl_in_rule__Multiplication__Group__02294 = new BitSet(new long[]{0x00000000000C0000L}); + public static final BitSet FOLLOW_rule__Multiplication__Group__1_in_rule__Multiplication__Group__02297 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleNegatedExpression_in_rule__Multiplication__Group__0__Impl2324 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Multiplication__Group__1__Impl_in_rule__Multiplication__Group__12353 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Multiplication__Group_1__0_in_rule__Multiplication__Group__1__Impl2380 = new BitSet(new long[]{0x00000000000C0002L}); + public static final BitSet FOLLOW_rule__Multiplication__Group_1__0__Impl_in_rule__Multiplication__Group_1__02415 = new BitSet(new long[]{0x0000000000120030L}); + public static final BitSet FOLLOW_rule__Multiplication__Group_1__1_in_rule__Multiplication__Group_1__02418 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Multiplication__Alternatives_1_0_in_rule__Multiplication__Group_1__0__Impl2445 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Multiplication__Group_1__1__Impl_in_rule__Multiplication__Group_1__12475 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Multiplication__RightAssignment_1_1_in_rule__Multiplication__Group_1__1__Impl2502 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Multiplication__Group_1_0_0__0__Impl_in_rule__Multiplication__Group_1_0_0__02536 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_rule__Multiplication__Group_1_0_0__1_in_rule__Multiplication__Group_1_0_0__02539 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Multiplication__Group_1_0_0__1__Impl_in_rule__Multiplication__Group_1_0_0__12597 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_18_in_rule__Multiplication__Group_1_0_0__1__Impl2625 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Multiplication__Group_1_0_1__0__Impl_in_rule__Multiplication__Group_1_0_1__02660 = new BitSet(new long[]{0x00000000000C0000L}); + public static final BitSet FOLLOW_rule__Multiplication__Group_1_0_1__1_in_rule__Multiplication__Group_1_0_1__02663 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__Multiplication__Group_1_0_1__1__Impl_in_rule__Multiplication__Group_1_0_1__12721 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_19_in_rule__Multiplication__Group_1_0_1__1__Impl2749 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__NegatedExpression__Group__0__Impl_in_rule__NegatedExpression__Group__02784 = new BitSet(new long[]{0x0000000000120030L}); + public static final BitSet FOLLOW_rule__NegatedExpression__Group__1_in_rule__NegatedExpression__Group__02787 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__NegatedExpression__Group__1__Impl_in_rule__NegatedExpression__Group__12845 = new BitSet(new long[]{0x0000000000120030L}); + public static final BitSet FOLLOW_rule__NegatedExpression__Group__2_in_rule__NegatedExpression__Group__12848 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__NegatedExpression__NegateAssignment_1_in_rule__NegatedExpression__Group__1__Impl2875 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__NegatedExpression__Group__2__Impl_in_rule__NegatedExpression__Group__22906 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__NegatedExpression__ExpAssignment_2_in_rule__NegatedExpression__Group__2__Impl2933 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_0__0__Impl_in_rule__PrimaryExpression__Group_0__02969 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_0__1_in_rule__PrimaryExpression__Group_0__02972 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_0__1__Impl_in_rule__PrimaryExpression__Group_0__13030 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__ValueAssignment_0_1_in_rule__PrimaryExpression__Group_0__1__Impl3057 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_1__0__Impl_in_rule__PrimaryExpression__Group_1__03091 = new BitSet(new long[]{0x0000000000120030L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_1__1_in_rule__PrimaryExpression__Group_1__03094 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_20_in_rule__PrimaryExpression__Group_1__0__Impl3122 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_1__1__Impl_in_rule__PrimaryExpression__Group_1__13153 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_1__2_in_rule__PrimaryExpression__Group_1__13156 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__ExpAssignment_1_1_in_rule__PrimaryExpression__Group_1__1__Impl3183 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_1__2__Impl_in_rule__PrimaryExpression__Group_1__23213 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_21_in_rule__PrimaryExpression__Group_1__2__Impl3241 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_2__0__Impl_in_rule__PrimaryExpression__Group_2__03278 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_2__1_in_rule__PrimaryExpression__Group_2__03281 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_2__1__Impl_in_rule__PrimaryExpression__Group_2__13339 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_2__2_in_rule__PrimaryExpression__Group_2__13342 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__RefAssignment_2_1_in_rule__PrimaryExpression__Group_2__1__Impl3369 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_2__2__Impl_in_rule__PrimaryExpression__Group_2__23399 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_2_2__0_in_rule__PrimaryExpression__Group_2__2__Impl3426 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_2_2__0__Impl_in_rule__PrimaryExpression__Group_2_2__03462 = new BitSet(new long[]{0x00000000007200F0L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_2_2__1_in_rule__PrimaryExpression__Group_2_2__03465 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_20_in_rule__PrimaryExpression__Group_2_2__0__Impl3493 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_2_2__1__Impl_in_rule__PrimaryExpression__Group_2_2__13524 = new BitSet(new long[]{0x00000000007200F0L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_2_2__2_in_rule__PrimaryExpression__Group_2_2__13527 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__ArgsAssignment_2_2_1_in_rule__PrimaryExpression__Group_2_2__1__Impl3554 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_2_2__2__Impl_in_rule__PrimaryExpression__Group_2_2__23585 = new BitSet(new long[]{0x00000000007200F0L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_2_2__3_in_rule__PrimaryExpression__Group_2_2__23588 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_2_2_2__0_in_rule__PrimaryExpression__Group_2_2__2__Impl3615 = new BitSet(new long[]{0x0000000000400002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_2_2__3__Impl_in_rule__PrimaryExpression__Group_2_2__33646 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_21_in_rule__PrimaryExpression__Group_2_2__3__Impl3674 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_2_2_2__0__Impl_in_rule__PrimaryExpression__Group_2_2_2__03713 = new BitSet(new long[]{0x00000000001200F0L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_2_2_2__1_in_rule__PrimaryExpression__Group_2_2_2__03716 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_22_in_rule__PrimaryExpression__Group_2_2_2__0__Impl3744 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_2_2_2__1__Impl_in_rule__PrimaryExpression__Group_2_2_2__13775 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__ArgsAssignment_2_2_2_1_in_rule__PrimaryExpression__Group_2_2_2__1__Impl3802 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_3__0__Impl_in_rule__PrimaryExpression__Group_3__03836 = new BitSet(new long[]{0x0000000000120030L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_3__1_in_rule__PrimaryExpression__Group_3__03839 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__Group_3__1__Impl_in_rule__PrimaryExpression__Group_3__13897 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__PrimaryExpression__RefAssignment_3_1_in_rule__PrimaryExpression__Group_3__1__Impl3924 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__FunctionArgument__Group_0__0__Impl_in_rule__FunctionArgument__Group_0__03958 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_rule__FunctionArgument__Group_0__1_in_rule__FunctionArgument__Group_0__03961 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__FunctionArgument__Group_0__1__Impl_in_rule__FunctionArgument__Group_0__14019 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__FunctionArgument__ValueAssignment_0_1_in_rule__FunctionArgument__Group_0__1__Impl4046 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__FunctionArgument__Group_1__0__Impl_in_rule__FunctionArgument__Group_1__04080 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_rule__FunctionArgument__Group_1__1_in_rule__FunctionArgument__Group_1__04083 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__FunctionArgument__Group_1__1__Impl_in_rule__FunctionArgument__Group_1__14141 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule__FunctionArgument__ValueAssignment_1_1_in_rule__FunctionArgument__Group_1__1__Impl4168 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_ID_in_rule__CompartmentTransitionDefinitions__MetamodelAssignment_04213 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleTransitionBlock_in_rule__CompartmentTransitionDefinitions__ExpressionAssignment_14248 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleBlock_in_rule__TransitionBlock__BlockAssignment4282 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleDefStatement_in_rule__Block__StatementsAssignment_14316 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleReturnStatement_in_rule__Block__RetAssignment_24347 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_ID_in_rule__DefStatement__VarnameAssignment_04378 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleEvaluation_in_rule__DefStatement__ExprAssignment_24409 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleExpression_in_rule__Evaluation__ExpressionAssignment_04440 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleMultiplication_in_rule__Addition__RightAssignment_1_14471 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleNegatedExpression_in_rule__Multiplication__RightAssignment_1_14502 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_17_in_rule__NegatedExpression__NegateAssignment_14538 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rulePrimaryExpression_in_rule__NegatedExpression__ExpAssignment_24577 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_NUMBER_in_rule__PrimaryExpression__ValueAssignment_0_14608 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleExpression_in_rule__PrimaryExpression__ExpAssignment_1_14639 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_ID_in_rule__PrimaryExpression__RefAssignment_2_14674 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleFunctionArgument_in_rule__PrimaryExpression__ArgsAssignment_2_2_14709 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleFunctionArgument_in_rule__PrimaryExpression__ArgsAssignment_2_2_2_14740 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_ID_in_rule__PrimaryExpression__RefAssignment_3_14775 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_BOOLEAN_in_rule__FunctionArgument__ValueAssignment_0_14810 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_STRING_in_rule__FunctionArgument__ValueAssignment_1_14841 = new BitSet(new long[]{0x0000000000000002L}); + +}
\ No newline at end of file diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/internal/CTDLActivator.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/internal/CTDLActivator.java new file mode 100644 index 000000000..e3bf35ae8 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src-gen/org/eclipse/stem/model/ctdl/ui/internal/CTDLActivator.java @@ -0,0 +1,95 @@ +/* + * generated by Xtext + */ +package org.eclipse.stem.model.ctdl.ui.internal; + +import java.util.Collections; +import java.util.Map; + +import org.apache.log4j.Logger; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.eclipse.xtext.ui.shared.SharedStateModule; +import org.eclipse.xtext.util.Modules2; +import org.osgi.framework.BundleContext; + +import com.google.common.collect.Maps; +import com.google.inject.Guice; +import com.google.inject.Injector; +import com.google.inject.Module; + +/** + * This class was generated. Customizations should only happen in a newly + * introduced subclass. + */ +public class CTDLActivator extends AbstractUIPlugin { + + public static final String ORG_ECLIPSE_STEM_MODEL_CTDL_CTDL = "org.eclipse.stem.model.ctdl.CTDL"; + + private static final Logger logger = Logger.getLogger(CTDLActivator.class); + + private static CTDLActivator INSTANCE; + + private Map<String, Injector> injectors = Collections.synchronizedMap(Maps.<String, Injector> newHashMapWithExpectedSize(1)); + + @Override + public void start(BundleContext context) throws Exception { + super.start(context); + INSTANCE = this; + } + + @Override + public void stop(BundleContext context) throws Exception { + injectors.clear(); + INSTANCE = null; + super.stop(context); + } + + public static CTDLActivator getInstance() { + return INSTANCE; + } + + public Injector getInjector(String language) { + synchronized (injectors) { + Injector injector = injectors.get(language); + if (injector == null) { + injectors.put(language, injector = createInjector(language)); + } + return injector; + } + } + + protected Injector createInjector(String language) { + try { + Module runtimeModule = getRuntimeModule(language); + Module sharedStateModule = getSharedStateModule(); + Module uiModule = getUiModule(language); + Module mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule); + return Guice.createInjector(mergedModule); + } catch (Exception e) { + logger.error("Failed to create injector for " + language); + logger.error(e.getMessage(), e); + throw new RuntimeException("Failed to create injector for " + language, e); + } + } + + protected Module getRuntimeModule(String grammar) { + if (ORG_ECLIPSE_STEM_MODEL_CTDL_CTDL.equals(grammar)) { + return new org.eclipse.stem.model.ctdl.CTDLRuntimeModule(); + } + + throw new IllegalArgumentException(grammar); + } + + protected Module getUiModule(String grammar) { + if (ORG_ECLIPSE_STEM_MODEL_CTDL_CTDL.equals(grammar)) { + return new org.eclipse.stem.model.ctdl.ui.CTDLUiModule(this); + } + + throw new IllegalArgumentException(grammar); + } + + protected Module getSharedStateModule() { + return new SharedStateModule(); + } + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/CTDLUiModule.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/CTDLUiModule.java new file mode 100644 index 000000000..2f1e3ee8d --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/CTDLUiModule.java @@ -0,0 +1,33 @@ +/* + * generated by Xtext + */ +package org.eclipse.stem.model.ctdl.ui; + +import org.eclipse.stem.model.ctdl.ui.highlight.CTDLHighlightConfiguration; +import org.eclipse.stem.model.ctdl.ui.highlight.CTDLSemanticHighlighter; +import org.eclipse.stem.model.ctdl.ui.hover.CTDLHoverProvider; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.eclipse.xtext.ui.editor.hover.IEObjectHoverProvider; +import org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightingConfiguration; +import org.eclipse.xtext.ui.editor.syntaxcoloring.ISemanticHighlightingCalculator; + +/** + * Use this class to register components to be used within the IDE. + */ +public class CTDLUiModule extends org.eclipse.stem.model.ctdl.ui.AbstractCTDLUiModule { + public CTDLUiModule(AbstractUIPlugin plugin) { + super(plugin); + } + + public Class<? extends IEObjectHoverProvider> bindIEObjectHoverProvider() { + return CTDLHoverProvider.class; + } + + public Class<? extends ISemanticHighlightingCalculator> bindISemanticHighlightingCalculator() { + return CTDLSemanticHighlighter.class; + } + + public Class<? extends IHighlightingConfiguration> bindIHighlightingConfiguration() { + return CTDLHighlightConfiguration.class; + } +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/contentassist/CTDLProposalProvider.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/contentassist/CTDLProposalProvider.java new file mode 100644 index 000000000..6f1ef7d8f --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/contentassist/CTDLProposalProvider.java @@ -0,0 +1,59 @@ +/* +* generated by Xtext +*/ +package org.eclipse.stem.model.ctdl.ui.contentassist; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.jface.text.contentassist.ICompletionProposal; +import org.eclipse.xtext.Assignment; +import org.eclipse.xtext.resource.IEObjectDescription; +import org.eclipse.xtext.ui.editor.contentassist.ConfigurableCompletionProposal; +import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext; +import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor; + +import com.google.common.base.Function; +/** + * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#contentAssist on how to customize content assistant + */ +public class CTDLProposalProvider extends AbstractCTDLProposalProvider +{ + /** + * sets the selection on the arguments for proposed functions. + */ + @Override + public void completePrimaryExpression_Ref(EObject model, + Assignment assignment, ContentAssistContext context, + final ICompletionProposalAcceptor acceptor) { + super.completePrimaryExpression_Ref(model, assignment, context, new ICompletionProposalAcceptor.Delegate(acceptor) { + + public void accept(ICompletionProposal proposal) { + if (proposal instanceof ConfigurableCompletionProposal) { + ConfigurableCompletionProposal ccp = (ConfigurableCompletionProposal) proposal; + String string = ccp.getReplacementString(); + int indexOfOpenPar = string.indexOf('('); + if (indexOfOpenPar!=-1) { + int oldSelectionStart = ccp.getSelectionStart(); + ccp.setSelectionStart(oldSelectionStart-string.length()+indexOfOpenPar+1); + ccp.setSelectionLength(oldSelectionStart-ccp.getSelectionStart()-1); + } + } + super.accept(proposal); + } + + }); + } + + @Override + protected String getDisplayString(EObject element, + String qualifiedNameAsString, String shortName) { + return super.getDisplayString(element, qualifiedNameAsString, shortName); + } + + @Override + protected Function<IEObjectDescription, ICompletionProposal> getProposalFactory( + String ruleName, ContentAssistContext contentAssistContext) { + // hackish: ignore concrete syntax constraints since we export functions with parenths + return super.getProposalFactory(null, contentAssistContext); + } + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/embed/EmbeddedEditorDialog.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/embed/EmbeddedEditorDialog.java new file mode 100644 index 000000000..d9f4ccd7e --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/embed/EmbeddedEditorDialog.java @@ -0,0 +1,129 @@ +package org.eclipse.stem.model.ctdl.ui.embed; + +import java.io.IOException; +import java.util.Collections; +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.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.stem.model.metamodel.Package; +import org.eclipse.stem.model.metamodel.Transition; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Dialog; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Shell; + +public class EmbeddedEditorDialog extends Dialog +{ + Shell shell; + + public EmbeddedEditorDialog(Shell parent, int style) { + super(parent, style); + + } + + public boolean open() + { + + Shell parent = getParent(); + shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.MAX | SWT.APPLICATION_MODAL); + + shell.setMinimumSize( new Point(600, 400)); + shell.setLayout(new FillLayout()); + shell.setText("Xtext Editor Embed"); + + shell.addListener(SWT.Resize, new Listener() { + public void handleEvent(Event e) { + } + }); + + + createLayout(); + + shell.pack(); + shell.open(); + + Display display = parent.getDisplay(); + while (!shell.isDisposed()) { + if (!display.readAndDispatch()) display.sleep(); + } + return true; + + } + + + private void createLayout() + { + Composite page = new Composite(shell, SWT.NONE); + page.setLayout(new FillLayout()); + + List<Transition> transitions = getTransitionsFromFirstModel(loadMetamodel()); + EmbeddedExpressionEditorComposite editor = new EmbeddedExpressionEditorComposite(page, SWT.NONE); + if (transitions != null && transitions.size() > 0) { + editor.setTransition(transitions.get(0)); + } + + + } + + private List<Transition> getTransitionsFromFirstModel(Package pkg) + { + + if (pkg != null && pkg.getModels().size() > 0) { + return pkg.getModels().get(0).getTransitions(); + } + return null; + } + + private Package loadMetamodel() + { + String uri = "platform:/resource/org.eclipse.stem.dm.example1/model/example1.metamodel"; + + + ResourceSet rs = new ResourceSetImpl(); + Resource r = rs.createResource(URI.createURI(uri)); + + try { + r.load(Collections.emptyMap()); + } catch (IOException ioe) { + ioe.printStackTrace(); + } + + Package pkg = null; + if (r.getContents().size() > 0) { + pkg = (Package)r.getContents().get(0); + } + return pkg; + + } + +// private String getDocument() +// { +// try { +// URI u = URI.createURI("platform:/resource/org.eclipse.stem."); +// URIConverter conv = new ExtensibleURIConverterImpl(); +// InputStream is = conv.createInputStream(u); +// +// ByteArrayOutputStream baos = new ByteArrayOutputStream(); +// +// byte[] buf = new byte[256]; +// +// while (is.read(buf) > -1) { +// baos.write(buf); +// } +// +// return new String(baos.toByteArray()); +// } catch (Exception e) { +// e.printStackTrace(); +// return ""; +// } +// } + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/embed/EmbeddedEditorView.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/embed/EmbeddedEditorView.java new file mode 100644 index 000000000..bf5256982 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/embed/EmbeddedEditorView.java @@ -0,0 +1,39 @@ +package org.eclipse.stem.model.ctdl.ui.embed; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.part.ViewPart; + +public class EmbeddedEditorView extends ViewPart { + + @Override + public void createPartControl(final Composite parent) { + + Button b = new Button(parent, SWT.PUSH); + b.setText("Open"); + b.addSelectionListener(new SelectionListener() { + + @Override + public void widgetSelected(SelectionEvent e) { + EmbeddedEditorDialog d = new EmbeddedEditorDialog(parent.getShell(), SWT.NONE); + d.open(); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + // TODO Auto-generated method stub + + } + }); + } + + @Override + public void setFocus() { + + } + + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/embed/EmbeddedExpressionEditorComposite.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/embed/EmbeddedExpressionEditorComposite.java new file mode 100644 index 000000000..02d58abc3 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/embed/EmbeddedExpressionEditorComposite.java @@ -0,0 +1,249 @@ +package org.eclipse.stem.model.ctdl.ui.embed; + +import java.util.List; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.text.DocumentEvent; +import org.eclipse.stem.model.ctdl.ContextSensitiveResourceWrapper; +import org.eclipse.stem.model.ctdl.scoping.CTDLScopeProvider; +import org.eclipse.stem.model.ctdl.scoping.MetamodelContextLinker; +import org.eclipse.stem.model.ctdl.ui.internal.CTDLActivator; +import org.eclipse.stem.model.metamodel.Transition; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.xtext.linking.ILinkingService; +import org.eclipse.xtext.linking.lazy.LazyLinkingResource; +import org.eclipse.xtext.resource.XtextResource; +import org.eclipse.xtext.ui.editor.embedded.EmbeddedEditor; +import org.eclipse.xtext.ui.editor.embedded.EmbeddedEditorFactory; +import org.eclipse.xtext.ui.editor.embedded.EmbeddedEditorModelAccess; +import org.eclipse.xtext.ui.editor.embedded.IEditedResourceProvider; +import org.eclipse.xtext.ui.editor.model.IXtextDocumentContentObserver; +import org.eclipse.xtext.ui.editor.model.XtextDocument; +import org.eclipse.xtext.ui.editor.validation.IValidationIssueProcessor; +import org.eclipse.xtext.validation.Issue; + +import com.google.inject.Injector; + +@SuppressWarnings("restriction") +public class EmbeddedExpressionEditorComposite extends Composite +{ + protected EmbeddedEditorFactory factory; + protected EmbeddedEditorFactory.Builder builder; + protected EmbeddedEditor embeddedEditor; + protected EmbeddedEditorModelAccess partialEditorModelAccess; + + protected XtextResource resource; + protected IEditedResourceProvider resourceProvider; + protected ILinkingService linker; + protected Injector injector; + + protected Transition transition; + + protected Button applyButton, revertButton; + + public EmbeddedExpressionEditorComposite(Composite parent, int style) + { + super(parent, style); + setLayout(new GridLayout(2, false)); + setupEditor(); + setupEditorButtons(); + } + + + public void setTransition(Transition transition) + { + if (transition == null) { + return; + } + + this.transition = transition; + + if (resource != null + && resource instanceof LazyLinkingResource + && ((LazyLinkingResource)resource).getLinkingService() instanceof MetamodelContextLinker) { + MetamodelContextLinker linker = (MetamodelContextLinker)((LazyLinkingResource)resource).getLinkingService(); + linker.setTransition(transition); + + if (linker.getScopeProvider() instanceof CTDLScopeProvider) { + ((CTDLScopeProvider)linker.getScopeProvider()).setTransition(transition); + } + +// ILinkingService linkingService2 = injector.getInstance(ILinkingService.class); +// IScopeProvider scopeProvider2 = injector.getInstance(IScopeProvider.class); + + if (resource instanceof ContextSensitiveResourceWrapper) { + ((ContextSensitiveResourceWrapper) resource).setTransition(transition); + } + + System.out.println("done"); + } + + //embeddedEditor.getDocument().get + String expr = transition.getExpression(); + + if (!isNullOrEmpty(expr)) { + embeddedEditor.getDocument().set(expr); + } else { + embeddedEditor.getDocument().set(""); + } + //partialEditorModelAccess.updateModel("", transition.getExpression(), ""); + + embeddedEditor.getViewer().getTextWidget().setEditable(true); + //embeddedEditor.getViewer().getControl().setEnabled(true); + disableButtons(); + + + } + + static boolean isNullOrEmpty(String s) + { + return (s == null || "".equals(s.trim())); + } + + protected void applyChanges() + { + XtextDocument doc = getDocument(); + if (doc != null && transition != null) { + transition.setExpression(doc.get()); + } + disableButtons(); + } + + protected void revertChanges() + { + XtextDocument doc = getDocument(); + if (doc != null && transition != null) { + doc.set(transition.getExpression()); + //embeddedEditor.getViewer().refresh(); + //partialEditorModelAccess.updateModel("", transition.getExpression(), ""); + + //partialEditorModelAccess. + } + disableButtons(); + } + + protected void disableButtons() + { + applyButton.setEnabled(false); + revertButton.setEnabled(false); + } + + protected void enableButtons() + { + applyButton.setEnabled(true); + revertButton.setEnabled(true); + } + + protected XtextDocument getDocument() + { + return embeddedEditor.getDocument(); + } + + protected void setupEditorButtons() + { + applyButton = new Button(this, SWT.PUSH); + applyButton.setText("Apply Changes"); + applyButton.setEnabled(false); + applyButton.addSelectionListener(new SelectionAdapter() { + + @Override + public void widgetSelected(SelectionEvent e) { + + if (MessageDialog.openConfirm( + getShell(), "Apply Changes", "Are you sure you wish to apply your changes?")) { + applyChanges(); + } + + } + + }); + + revertButton = new Button(this, SWT.PUSH); + revertButton.setText("Revert Changes"); + revertButton.setEnabled(false); + revertButton.addSelectionListener(new SelectionAdapter() { + + @Override + public void widgetSelected(SelectionEvent e) { + if (MessageDialog.openConfirm( + getShell(), "Revert Changes", "Are you sure you wish to revert? All changes will be lost.")) { + revertChanges(); + } + } + }); + } + + protected void setupEditor() + { + Composite editorCanvas = new Composite(this, SWT.NONE); + GridData canvasData = new GridData(GridData.FILL_BOTH); + canvasData.horizontalSpan = 2; + editorCanvas.setLayoutData(canvasData); + editorCanvas.setLayout(new GridLayout()); + CTDLActivator activator = CTDLActivator.getInstance(); + injector = activator.getInjector(CTDLActivator.ORG_ECLIPSE_STEM_MODEL_CTDL_CTDL); + factory = injector.getInstance(EmbeddedEditorFactory.class); + + linker = (ILinkingService)injector.getInstance(ILinkingService.class); + resourceProvider = createResourceProvider(); + builder = factory.newEditor(resourceProvider); + + embeddedEditor = builder + .processIssuesBy(new EmbeddedEditorIssueProcessor()) + .showErrorAndWarningAnnotations() + .withParent(editorCanvas); + partialEditorModelAccess = embeddedEditor.createPartialEditor(true); + + embeddedEditor.getDocument().addXtextDocumentContentObserver(new IXtextDocumentContentObserver() { + + @Override + public void documentChanged(DocumentEvent event) { + enableButtons(); + } + + @Override + public void documentAboutToBeChanged(DocumentEvent event) { + } + + @Override + public void performNecessaryUpdates(Processor processor) { + } + }); + } + + private IEditedResourceProvider createResourceProvider() + { + return new IEditedResourceProvider() { + public XtextResource createResource() { + System.out.println("Create resource"); + ResourceSet resourceSet = new ResourceSetImpl(); + resource = (XtextResource) resourceSet.createResource(URI.createURI("empty.sctd")); + resourceSet.getResources().add(resource); + return resource; + }}; + } + + private class EmbeddedEditorIssueProcessor implements IValidationIssueProcessor + { + + @Override + public void processIssues(List<Issue> issues, IProgressMonitor monitor) + { + for (Issue issue : issues) { + System.err.println(issue.getMessage()); + } + + } + + } +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/highlight/CTDLHighlightConfiguration.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/highlight/CTDLHighlightConfiguration.java new file mode 100644 index 000000000..c49c7b8fb --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/highlight/CTDLHighlightConfiguration.java @@ -0,0 +1,85 @@ +package org.eclipse.stem.model.ctdl.ui.highlight; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.RGB; +import org.eclipse.xtext.ui.editor.syntaxcoloring.DefaultHighlightingConfiguration; +import org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightingConfigurationAcceptor; +import org.eclipse.xtext.ui.editor.utils.TextStyle; + +public class CTDLHighlightConfiguration extends DefaultHighlightingConfiguration +{ + public static final String FUNCTION_ID = "function"; + public static final String RELATIVE_COMPARTMENT_ID = "compartmentRelative"; + public static final String ABSOLUTE_COMPARTMENT_ID = "compartmentAbsolute"; + public static final String GLOBAL_VARIABLE_ID = "variableGlobal"; + public static final String LOCAL_VARIABLE_ID = "variableLocal"; + public static final String MODEL_PARAMETER_ID = "modelParameter"; + + public static final String BOOLEAN_ID = "boolean"; + + @Override + public void configure(IHighlightingConfigurationAcceptor acceptor) { + super.configure(acceptor); + + acceptor.acceptDefaultHighlighting(BOOLEAN_ID, "Boolean", booleanTextStyle()); + + acceptor.acceptDefaultHighlighting(MODEL_PARAMETER_ID, "Model Parameter", modelParameterTextStyle()); + acceptor.acceptDefaultHighlighting(GLOBAL_VARIABLE_ID, "Global Variable", globalVariableTextStyle()); + acceptor.acceptDefaultHighlighting(LOCAL_VARIABLE_ID, "Local Variable", localVariableTextStyle()); + + acceptor.acceptDefaultHighlighting(RELATIVE_COMPARTMENT_ID, "Relative Compartment", relativeCompartmentTextStyle()); + acceptor.acceptDefaultHighlighting(ABSOLUTE_COMPARTMENT_ID, "Absolute Compartment", absoluteCompartmentTextStyle()); + acceptor.acceptDefaultHighlighting(FUNCTION_ID, "Function", functionTextStyle()); + } + + public TextStyle numberTextStyle() { + TextStyle textStyle = defaultTextStyle().copy(); + textStyle.setColor(new RGB(102, 102, 102)); + return textStyle; + } + + public TextStyle booleanTextStyle() { + TextStyle textStyle = defaultTextStyle().copy(); + textStyle.setColor(new RGB(128,0,128)); + return textStyle; + } + + public TextStyle modelParameterTextStyle() { + TextStyle textStyle = defaultTextStyle().copy(); + textStyle.setColor(new RGB(165,0,0)); + return textStyle; + } + + public TextStyle globalVariableTextStyle() { + TextStyle textStyle = defaultTextStyle().copy(); + textStyle.setColor(new RGB(64,0,128)); + return textStyle; + } + + public TextStyle localVariableTextStyle() { + TextStyle textStyle = globalVariableTextStyle().copy(); + textStyle.setStyle(SWT.BOLD); + return textStyle; + } + + public TextStyle relativeCompartmentTextStyle() { + TextStyle textStyle = defaultTextStyle().copy(); + textStyle.setColor(new RGB(0, 128, 0)); + return textStyle; + } + + public TextStyle absoluteCompartmentTextStyle() { + TextStyle textStyle = relativeCompartmentTextStyle().copy(); + textStyle.setStyle(SWT.BOLD); + return textStyle; + } + + public TextStyle functionTextStyle() { + TextStyle textStyle = defaultTextStyle().copy(); + textStyle.setColor(new RGB(0, 64, 128)); + textStyle.setStyle(SWT.BOLD); + return textStyle; + } + + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/highlight/CTDLSemanticHighlighter.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/highlight/CTDLSemanticHighlighter.java new file mode 100644 index 000000000..e95f0d776 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/highlight/CTDLSemanticHighlighter.java @@ -0,0 +1,140 @@ +package org.eclipse.stem.model.ctdl.ui.highlight; + +import static org.eclipse.stem.model.ctdl.ui.highlight.CTDLHighlightConfiguration.ABSOLUTE_COMPARTMENT_ID; +import static org.eclipse.stem.model.ctdl.ui.highlight.CTDLHighlightConfiguration.BOOLEAN_ID; +import static org.eclipse.stem.model.ctdl.ui.highlight.CTDLHighlightConfiguration.FUNCTION_ID; +import static org.eclipse.stem.model.ctdl.ui.highlight.CTDLHighlightConfiguration.GLOBAL_VARIABLE_ID; +import static org.eclipse.stem.model.ctdl.ui.highlight.CTDLHighlightConfiguration.LOCAL_VARIABLE_ID; +import static org.eclipse.stem.model.ctdl.ui.highlight.CTDLHighlightConfiguration.MODEL_PARAMETER_ID; +import static org.eclipse.stem.model.ctdl.ui.highlight.CTDLHighlightConfiguration.RELATIVE_COMPARTMENT_ID; +import static org.eclipse.xtext.ui.editor.syntaxcoloring.DefaultHighlightingConfiguration.NUMBER_ID; +import static org.eclipse.xtext.ui.editor.syntaxcoloring.DefaultHighlightingConfiguration.STRING_ID; + +import org.eclipse.stem.model.ctdl.ctdl.AbsoluteCompartmentValueReference; +import org.eclipse.stem.model.ctdl.ctdl.BooleanLiteral; +import org.eclipse.stem.model.ctdl.ctdl.DefStatement; +import org.eclipse.stem.model.ctdl.ctdl.DefStatementReference; +import org.eclipse.stem.model.ctdl.ctdl.FunctionCall; +import org.eclipse.stem.model.ctdl.ctdl.GlobalVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.LocalVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.ModelParamReference; +import org.eclipse.stem.model.ctdl.ctdl.NumberLiteral; +import org.eclipse.stem.model.ctdl.ctdl.RelativeCompartmentValueReference; +import org.eclipse.stem.model.ctdl.ctdl.StringLiteral; +import org.eclipse.stem.model.ctdl.ctdl.VariableReference; +import org.eclipse.stem.model.ctdl.ctdl.util.CtdlSwitch; +import org.eclipse.xtext.CrossReference; +import org.eclipse.xtext.RuleCall; +import org.eclipse.xtext.nodemodel.INode; +import org.eclipse.xtext.resource.XtextResource; +import org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightedPositionAcceptor; +import org.eclipse.xtext.ui.editor.syntaxcoloring.ISemanticHighlightingCalculator; + +public class CTDLSemanticHighlighter implements ISemanticHighlightingCalculator +{ + + @Override + public void provideHighlightingFor(XtextResource resource, + IHighlightedPositionAcceptor acceptor) { + + if (resource == null) return; + + INode root = resource.getParseResult().getRootNode(); + for (INode node : root.getAsTreeIterable()) { + + System.out.println("Node: "+ node.getText() + " -> "+ node.getSemanticElement() +" -> "+ node.getGrammarElement()); + + String configRef = null; + + if (node.getSemanticElement() instanceof FunctionCall && node.getGrammarElement() instanceof CrossReference) { + configRef = FUNCTION_ID; + } else if (node.getSemanticElement() instanceof DefStatement && node.getGrammarElement() instanceof RuleCall) { + configRef = LOCAL_VARIABLE_ID; + } else { + configRef = semanticLookup.doSwitch(node.getSemanticElement()); + } + + if (configRef != null) { + acceptor.addPosition(node.getOffset(), node.getLength(), configRef); + System.out.println(" Config Ref -> "+configRef); + } + + } + } + + private static final CtdlSwitch<String> semanticLookup = new CtdlSwitch<String>() { + + @Override + public String caseVariableReference(VariableReference object) { + return doSwitch(object.getRef()); + } + + + + @Override + public String caseDefStatement(DefStatement object) { + return null; + } + + + + @Override + public String caseDefStatementReference(DefStatementReference object) { + return LOCAL_VARIABLE_ID; + } + + + + @Override + public String caseAbsoluteCompartmentValueReference( + AbsoluteCompartmentValueReference object) { + return ABSOLUTE_COMPARTMENT_ID; + } + + @Override + public String caseRelativeCompartmentValueReference( + RelativeCompartmentValueReference object) { + return RELATIVE_COMPARTMENT_ID; + } + + @Override + public String caseFunctionCall(FunctionCall object) { + return null; + } + + @Override + public String caseLocalVariableReference(LocalVariableReference object) { + return LOCAL_VARIABLE_ID; + } + + @Override + public String caseModelParamReference(ModelParamReference object) { + return MODEL_PARAMETER_ID; + } + + @Override + public String caseGlobalVariableReference(GlobalVariableReference object) { + return GLOBAL_VARIABLE_ID; + } + + @Override + public String caseNumberLiteral(NumberLiteral object) { + return NUMBER_ID; + } + + @Override + public String caseStringLiteral(StringLiteral object) { + return STRING_ID; + } + + @Override + public String caseBooleanLiteral(BooleanLiteral object) { + return BOOLEAN_ID; + } + + + + + }; + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/hover/CTDLHoverProvider.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/hover/CTDLHoverProvider.java new file mode 100644 index 000000000..446657988 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/hover/CTDLHoverProvider.java @@ -0,0 +1,32 @@ +package org.eclipse.stem.model.ctdl.ui.hover; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.jface.text.IInformationControlCreator; +import org.eclipse.jface.text.IRegion; +import org.eclipse.jface.text.ITextViewer; +import org.eclipse.xtext.ui.editor.hover.html.DefaultEObjectHoverProvider; + +public class CTDLHoverProvider extends DefaultEObjectHoverProvider +{ + public CTDLHoverProvider() + { + + } + + @Override + protected String getHoverInfoAsHtml(EObject o) { + return "<strong>"+o.getClass().getName()+"</strong>\nThis is some documentation that needs to be filled in."; + } + + public IInformationControlCreatorProvider getHoverInfo(final EObject object, final ITextViewer viewer, final IRegion region) { + return new IInformationControlCreatorProvider() { + + public IInformationControlCreator getHoverControlCreator() { + return CTDLHoverProvider.this.getHoverControlCreator(); + } + + public Object getInfo() { + return getHoverInfo(object, region, null); + }}; + } +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/labeling/CTDLDescriptionLabelProvider.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/labeling/CTDLDescriptionLabelProvider.java new file mode 100644 index 000000000..715c36576 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/labeling/CTDLDescriptionLabelProvider.java @@ -0,0 +1,27 @@ +/* +* generated by Xtext +*/ +package org.eclipse.stem.model.ctdl.ui.labeling; + +import org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider; + +/** + * Provides labels for a IEObjectDescriptions and IResourceDescriptions. + * + * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider + */ +public class CTDLDescriptionLabelProvider extends DefaultDescriptionLabelProvider { + +/* + //Labels and icons can be computed like this: + + String text(IEObjectDescription ele) { + return "my "+ele.getName(); + } + + String image(IEObjectDescription ele) { + return ele.getEClass().getName() + ".gif"; + } +*/ + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/labeling/CTDLLabelProvider.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/labeling/CTDLLabelProvider.java new file mode 100644 index 000000000..a141f8d3c --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/labeling/CTDLLabelProvider.java @@ -0,0 +1,34 @@ +/* +* generated by Xtext +*/ +package org.eclipse.stem.model.ctdl.ui.labeling; + +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; +import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider; + +import com.google.inject.Inject; + +/** + * Provides labels for a EObjects. + * + * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider + */ +public class CTDLLabelProvider extends DefaultEObjectLabelProvider { + + @Inject + public CTDLLabelProvider(AdapterFactoryLabelProvider delegate) { + super(delegate); + } + +/* + //Labels and icons can be computed like this: + + String text(MyModel ele) { + return "my "+ele.getName(); + } + + String image(MyModel ele) { + return "MyModel.gif"; + } +*/ +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/outline/CTDLOutlineTreeProvider.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/outline/CTDLOutlineTreeProvider.java new file mode 100644 index 000000000..359bcefd6 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/outline/CTDLOutlineTreeProvider.java @@ -0,0 +1,14 @@ +/* +* generated by Xtext +*/ +package org.eclipse.stem.model.ctdl.ui.outline; + +import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider; + +/** + * customization of the default outline structure + * + */ +public class CTDLOutlineTreeProvider extends DefaultOutlineTreeProvider { + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/quickfix/CTDLQuickfixProvider.java b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/quickfix/CTDLQuickfixProvider.java new file mode 100644 index 000000000..9c166aced --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl.ui/src/org/eclipse/stem/model/ctdl/ui/quickfix/CTDLQuickfixProvider.java @@ -0,0 +1,19 @@ + +package org.eclipse.stem.model.ctdl.ui.quickfix; + +import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider; + +public class CTDLQuickfixProvider extends DefaultQuickfixProvider { + +// @Fix(MyJavaValidator.INVALID_NAME) +// public void capitalizeName(final Issue issue, IssueResolutionAcceptor acceptor) { +// acceptor.accept(issue, "Capitalize name", "Capitalize the name.", "upcase.png", new IModification() { +// public void apply(IModificationContext context) throws BadLocationException { +// IXtextDocument xtextDocument = context.getXtextDocument(); +// String firstLetter = xtextDocument.get(issue.getOffset(), 1); +// xtextDocument.replace(issue.getOffset(), 1, firstLetter.toUpperCase()); +// } +// }); +// } + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl/.classpath b/modelgen/org.eclipse.stem.model.ctdl/.classpath new file mode 100644 index 000000000..6ea81b1e6 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/.classpath @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="src" path="src-gen"/> + <classpathentry kind="src" path="xtend-gen"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/modelgen/org.eclipse.stem.model.ctdl/.launch/Generate Language Infrastructure (org.eclipse.stem.model.ctdl).launch b/modelgen/org.eclipse.stem.model.ctdl/.launch/Generate Language Infrastructure (org.eclipse.stem.model.ctdl).launch new file mode 100644 index 000000000..91a4832d1 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/.launch/Generate Language Infrastructure (org.eclipse.stem.model.ctdl).launch @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.emf.mwe2.launch.Mwe2LaunchConfigurationType"> +<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:<?xml version="1.0" encoding="UTF-8"?> <launchConfigurationWorkingSet factoryID="org.eclipse.ui.internal.WorkingSetFactory" id="1299248699643_13" label="working set" name="working set"> <item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/org.eclipse.stem.model.ctdl" type="4"/> <item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/org.eclipse.stem.model.ctdl.generator" type="4"/> <item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/org.eclipse.stem.model.ctdl.tests" type="4"/> <item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/org.eclipse.stem.model.ctdl.ui" type="4"/> </launchConfigurationWorkingSet>}"/> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> +<listEntry value="/org.eclipse.stem.model.ctdl"/> +</listAttribute> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> +<listEntry value="4"/> +</listAttribute> +<listAttribute key="org.eclipse.debug.ui.favoriteGroups"> +<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/> +<listEntry value="org.eclipse.debug.ui.launchGroup.run"/> +</listAttribute> +<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher"/> +<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="src/org/eclipse/stem/model/ctdl/GenerateCTDL.mwe2"/> +<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.stem.model.ctdl"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx512m"/> +</launchConfiguration> diff --git a/modelgen/org.eclipse.stem.model.ctdl/.launch/Launch Runtime Eclipse.launch b/modelgen/org.eclipse.stem.model.ctdl/.launch/Launch Runtime Eclipse.launch new file mode 100644 index 000000000..bcf062c4b --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/.launch/Launch Runtime Eclipse.launch @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench"> +<booleanAttribute key="append.args" value="true"/> +<booleanAttribute key="askclear" value="true"/> +<booleanAttribute key="automaticAdd" value="true"/> +<booleanAttribute key="automaticValidate" value="false"/> +<stringAttribute key="bad_container_name" value="/org.eclipse.stem.xtext.generate/.launch/"/> +<stringAttribute key="bootstrap" value=""/> +<stringAttribute key="checked" value="[NONE]"/> +<booleanAttribute key="clearConfig" value="false"/> +<booleanAttribute key="clearws" value="false"/> +<booleanAttribute key="clearwslog" value="false"/> +<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/Launch Runtime Eclipse"/> +<booleanAttribute key="default" value="true"/> +<booleanAttribute key="includeOptional" value="true"/> +<stringAttribute key="location" value="${workspace_loc}/../runtime-EclipseXtext"/> +<listAttribute key="org.eclipse.debug.ui.favoriteGroups"> +<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/> +<listEntry value="org.eclipse.debug.ui.launchGroup.run"/> +</listAttribute> +<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> +<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/> +<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx512m -XX:MaxPermSize=256m"/> +<stringAttribute key="pde.version" value="3.3"/> +<stringAttribute key="product" value="org.eclipse.platform.ide"/> +<booleanAttribute key="show_selected_only" value="false"/> +<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/> +<booleanAttribute key="tracing" value="false"/> +<booleanAttribute key="useCustomFeatures" value="false"/> +<booleanAttribute key="useDefaultConfig" value="true"/> +<booleanAttribute key="useDefaultConfigArea" value="true"/> +<booleanAttribute key="useProduct" value="true"/> +<booleanAttribute key="usefeatures" value="false"/> +</launchConfiguration> diff --git a/modelgen/org.eclipse.stem.model.ctdl/.project b/modelgen/org.eclipse.stem.model.ctdl/.project new file mode 100644 index 000000000..87da545eb --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/.project @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.stem.model.ctdl</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + </natures> +</projectDescription> diff --git a/modelgen/org.eclipse.stem.model.ctdl/.settings/org.eclipse.core.resources.prefs b/modelgen/org.eclipse.stem.model.ctdl/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 000000000..da9de7b16 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +encoding//src/org/eclipse/stem/model/ctdl/generator/CTDLGenerator.xtend=UTF-8 +encoding/<project>=UTF-8 diff --git a/modelgen/org.eclipse.stem.model.ctdl/.settings/org.eclipse.jdt.core.prefs b/modelgen/org.eclipse.stem.model.ctdl/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..c537b6306 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/modelgen/org.eclipse.stem.model.ctdl/META-INF/MANIFEST.MF b/modelgen/org.eclipse.stem.model.ctdl/META-INF/MANIFEST.MF new file mode 100644 index 000000000..a002d4626 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/META-INF/MANIFEST.MF @@ -0,0 +1,40 @@ +Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.stem.model.ctdl
+Bundle-Vendor: Eclipse.org
+Bundle-Version: 2.0.0.qualifier
+Bundle-SymbolicName: org.eclipse.stem.model.ctdl; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.xtext;visibility:=reexport,
+ org.eclipse.xtext.xbase;resolution:=optional;visibility:=reexport,
+ org.eclipse.xtext.generator;resolution:=optional,
+ org.eclipse.xtext.xbase.lib;visibility:=reexport,
+ org.apache.commons.logging;bundle-version="1.0.4";resolution:=optional,
+ org.eclipse.emf.codegen.ecore;resolution:=optional,
+ org.eclipse.emf.mwe.utils;resolution:=optional,
+ org.eclipse.emf.mwe2.launch;resolution:=optional,
+ org.eclipse.stem.core,
+ org.eclipse.stem.model,
+ org.eclipse.stem.model.ctdl.functions,
+ org.eclipse.xtext.util,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.common,
+ org.antlr.runtime,
+ org.eclipse.xtext.common.types,
+ org.eclipse.xtend.core
+Import-Package: org.apache.log4j,
+ org.eclipse.xtext.xbase.lib
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6,
+ J2SE-1.5
+Export-Package: org.eclipse.stem.model.ctdl,
+ org.eclipse.stem.model.ctdl.services,
+ org.eclipse.stem.model.ctdl.ctdl,
+ org.eclipse.stem.model.ctdl.ctdl.impl,
+ org.eclipse.stem.model.ctdl.ctdl.util,
+ org.eclipse.stem.model.ctdl.serializer,
+ org.eclipse.stem.model.ctdl.parser.antlr,
+ org.eclipse.stem.model.ctdl.parser.antlr.internal,
+ org.eclipse.stem.model.ctdl.validation,
+ org.eclipse.stem.model.ctdl.scoping,
+ org.eclipse.stem.model.ctdl.generator,
+ org.eclipse.stem.model.ctdl.formatting
diff --git a/modelgen/org.eclipse.stem.model.ctdl/build.properties b/modelgen/org.eclipse.stem.model.ctdl/build.properties new file mode 100644 index 000000000..dfa0491cc --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/build.properties @@ -0,0 +1,10 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = META-INF/,\ + .,\ + plugin.xml + +customBuildCallbacks = customBuildCallbacks.xml +customBuildCallbacks.failonerror = true +customBuildCallbacks.inheritall = true diff --git a/modelgen/org.eclipse.stem.model.ctdl/customBuildCallbacks.xml b/modelgen/org.eclipse.stem.model.ctdl/customBuildCallbacks.xml new file mode 100644 index 000000000..44cb96db6 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/customBuildCallbacks.xml @@ -0,0 +1,194 @@ +<!-- ===================================================================== --> +<!-- Custom targets called from a project's generated build.xml --> +<!-- Set customBuildCallbacks=<path/to/this/file> in your build.properties.--> +<!-- ===================================================================== --> +<project name="Build specific targets and properties" default="noDefault"> + + <!-- ===================================================================== --> + <!-- Default target --> + <!-- ===================================================================== --> + <target name="noDefault"> + <echo message="This file must be called with explicit targets" /> + </target> + + <!-- ===================================================================== --> + <!-- Steps to do before the target build.jars --> + <!-- Available parameters : --> + <!-- build.result.folder - folder to contain the build results --> + <!-- ===================================================================== --> + <target name="pre.build.jars"> + </target> + + <!-- ===================================================================== --> + <!-- Steps to do after the target build.jars --> + <!-- Available parameters : --> + <!-- build.result.folder - folder to contain the build results --> + <!-- ===================================================================== --> + <target name="post.build.jars"> + </target> + + <!-- ===================================================================== --> + <!-- Steps to do before the target build.sources --> + <!-- Available parameters : --> + <!-- build.result.folder - folder to contain the build results --> + <!-- ===================================================================== --> + <target name="pre.build.sources"> + </target> + + <!-- ===================================================================== --> + <!-- Steps to do after the target build.sources --> + <!-- Available parameters : --> + <!-- build.result.folder - folder to contain the build results --> + <!-- ===================================================================== --> + <target name="post.build.sources"> + </target> + + <!-- ===================================================================== --> + <!-- Steps to do before the compilation target <name> --> + <!-- Substitute "name" with the name of the compilation target, eg @dot --> + <!-- Available parameters : --> + <!-- source.foldern : n = 1 ... N, the source folders --> + <!-- target.folder : where the results of the compilation go --> + <!-- <name>.classpath : name = name of the compilation target. A --> + <!-- reference to the classpath structure. --> + <!-- ===================================================================== --> + <target name="pre.name"> + </target> + + <target name="pre.@dot"> + <path id="gen.classpath"> + <path refid="@dot.classpath" /> + <pathelement location="src" /> + </path> + + <!--<java classname="org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher" + classpathref="gen.classpath" fork="true"> + <arg value="src/org/eclipse/stem/model/ctdl/GenerateCTDL.mwe2" /> + </java> + + <eclipse.incrementalBuild project="org.eclipse.stem.model.ctdl" kind="clean"/>--> + + <antcall target="compile-xtend" inheritRefs="true" /> + </target> + + <target name="compile-xtend"> + <path id="gen.classpath"> + <path refid="@dot.classpath" /> + <pathelement location="src" /> + </path> + <pathconvert pathsep="${path.separator}" + property="classpath-string" + refid="gen.classpath"> + </pathconvert> + <echo>${classpath-string}</echo> + <java classpathref="gen.classpath" + classname="org.eclipse.xtend.core.compiler.batch.Main" + fork="true" + failonerror="yes"> + <jvmarg line="-Dfile.encoding=UTF-8" /> + <arg value="-cp" /> + <arg value="${classpath-string}" /> + <arg value="-d" /> + <arg value="${basedir}/xtend-gen" /> + <arg value="${basedir}/src-gen${path.separator}${basedir}/src" /> + </java> + </target> + + <!-- ===================================================================== --> + <!-- Steps to do during the compilation target <name>, after the compile --> + <!-- but before jaring. Substitute "name" with the name of the compilation--> + <!-- target, eg @dot --> + <!-- Available parameters : --> + <!-- source.foldern : n = 1 ... N, the source folders --> + <!-- target.folder : where the results of the compilation go --> + <!-- <name>.classpath : name = name of the compilation target. A --> + <!-- reference to the classpath structure. --> + <!-- ===================================================================== --> + <target name="post.compile.name"> + </target> + + <target name="post.compile.@dot"> + </target> + + <!-- ===================================================================== --> + <!-- Steps to do after the compilation target <name> --> + <!-- Substitute "name" with the name of the compilation target, eg @dot --> + <!-- Available parameters : --> + <!-- jar.Location - the location of the compilation results --> + <!-- <name>.classpath : name = name of the compilation target. A --> + <!-- reference to the classpath structure. --> + <!-- ===================================================================== --> + <target name="post.name"> + </target> + + <target name="post.@dot"> + </target> + + <!-- ===================================================================== --> + <!-- Steps to do before the target gather.bin.parts --> + <!-- Available parameters : --> + <!-- build.result.folder - folder containing the build results --> + <!-- target.folder - destination folder --> + <!-- ===================================================================== --> + <target name="pre.gather.bin.parts"> + </target> + + <!-- ===================================================================== --> + <!-- Steps to do after the target gather.bin.parts --> + <!-- Available parameters : --> + <!-- build.result.folder - folder containing the build results --> + <!-- target.folder - destination folder --> + <!-- ===================================================================== --> + <target name="post.gather.bin.parts"> + </target> + + <!-- ===================================================================== --> + <!-- Steps to do before the target gather.sources --> + <!-- Available parameters : --> + <!-- destination.temp.folder - destination folder --> + <!-- ===================================================================== --> + <target name="pre.gather.sources"> + </target> + + <!-- ===================================================================== --> + <!-- Steps to do after the target gather.sources --> + <!-- Available parameters : --> + <!-- destination.temp.folder - destination folder --> + <!-- ===================================================================== --> + <target name="post.gather.sources"> + </target> + + <!-- ===================================================================== --> + <!-- Steps to do before the target gather.logs --> + <!-- Available parameters : --> + <!-- destination.temp.folder - destination folder --> + <!-- ===================================================================== --> + <target name="pre.gather.logs"> + </target> + + <!-- ===================================================================== --> + <!-- Steps to do after the target gather.logs --> + <!-- Available parameters : --> + <!-- destination.temp.folder - destination folder --> + <!-- ===================================================================== --> + <target name="post.gather.logs"> + </target> + + <!-- ===================================================================== --> + <!-- Steps to do before the target clean --> + <!-- Available parameters : --> + <!-- destination.temp.folder - destination folder --> + <!-- ===================================================================== --> + <target name="pre.clean"> + </target> + + <!-- ===================================================================== --> + <!-- Steps to do after the target clean --> + <!-- Available parameters : --> + <!-- plugin.destination - final destination of the build --> + <!-- build.result.folder - results of the compilation --> + <!-- temp.folder - temporary folder --> + <!-- ===================================================================== --> + <target name="post.clean"> + </target> +</project>
\ No newline at end of file diff --git a/modelgen/org.eclipse.stem.model.ctdl/plugin.xml b/modelgen/org.eclipse.stem.model.ctdl/plugin.xml new file mode 100644 index 000000000..8c0209700 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/plugin.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.0"?> + +<plugin> + + <extension point="org.eclipse.emf.ecore.generated_package"> + <package + uri = "http:///org/eclipse/stem/model/ctdl.ecore" + class = "org.eclipse.stem.model.ctdl.ctdl.CtdlPackage" + genModel = "org/eclipse/stem/model/ctdl/CTDL.genmodel" /> + + </extension> + + + + +</plugin> diff --git a/modelgen/org.eclipse.stem.model.ctdl/plugin.xml_gen b/modelgen/org.eclipse.stem.model.ctdl/plugin.xml_gen new file mode 100644 index 000000000..8c0209700 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/plugin.xml_gen @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.0"?> + +<plugin> + + <extension point="org.eclipse.emf.ecore.generated_package"> + <package + uri = "http:///org/eclipse/stem/model/ctdl.ecore" + class = "org.eclipse.stem.model.ctdl.ctdl.CtdlPackage" + genModel = "org/eclipse/stem/model/ctdl/CTDL.genmodel" /> + + </extension> + + + + +</plugin> diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/AbstractCTDLRuntimeModule.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/AbstractCTDLRuntimeModule.java new file mode 100644 index 000000000..b01c6d709 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/AbstractCTDLRuntimeModule.java @@ -0,0 +1,172 @@ +/* + * generated by Xtext + */ +package org.eclipse.stem.model.ctdl; + +import java.util.Properties; + +import org.eclipse.xtext.Constants; +import org.eclipse.xtext.service.DefaultRuntimeModule; + +import com.google.inject.Binder; +import com.google.inject.name.Names; + +/** + * Manual modifications go to {org.eclipse.stem.model.ctdl.CTDLRuntimeModule} + */ + @SuppressWarnings("all") +public abstract class AbstractCTDLRuntimeModule extends DefaultRuntimeModule { + + protected Properties properties = null; + + @Override + public void configure(Binder binder) { + properties = tryBindProperties(binder, "org/eclipse/stem/model/ctdl/CTDL.properties"); + super.configure(binder); + } + + public void configureLanguageName(Binder binder) { + binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("org.eclipse.stem.model.ctdl.CTDL"); + } + + 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("sctd"); + } + + // contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment + public Class<? extends org.eclipse.xtext.IGrammarAccess> bindIGrammarAccess() { + return org.eclipse.stem.model.ctdl.services.CTDLGrammarAccess.class; + } + + // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment + public Class<? extends org.eclipse.xtext.serializer.sequencer.ISemanticSequencer> bindISemanticSequencer() { + return org.eclipse.stem.model.ctdl.serializer.CTDLSemanticSequencer.class; + } + + // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment + public Class<? extends org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer> bindISyntacticSequencer() { + return org.eclipse.stem.model.ctdl.serializer.CTDLSyntacticSequencer.class; + } + + // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment + public Class<? extends org.eclipse.xtext.serializer.ISerializer> bindISerializer() { + return org.eclipse.xtext.serializer.impl.Serializer.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public Class<? extends org.eclipse.xtext.parser.IParser> bindIParser() { + return org.eclipse.stem.model.ctdl.parser.antlr.CTDLParser.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public Class<? extends org.eclipse.xtext.parser.ITokenToStringConverter> bindITokenToStringConverter() { + return org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public Class<? extends org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider> bindIAntlrTokenFileProvider() { + return org.eclipse.stem.model.ctdl.parser.antlr.CTDLAntlrTokenFileProvider.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public Class<? extends org.eclipse.xtext.parser.antlr.Lexer> bindLexer() { + return org.eclipse.stem.model.ctdl.parser.antlr.internal.InternalCTDLLexer.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public com.google.inject.Provider<org.eclipse.stem.model.ctdl.parser.antlr.internal.InternalCTDLLexer> provideInternalCTDLLexer() { + return org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.stem.model.ctdl.parser.antlr.internal.InternalCTDLLexer.class); + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public void configureRuntimeLexer(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.parser.antlr.LexerBindings.RUNTIME)).to(org.eclipse.stem.model.ctdl.parser.antlr.internal.InternalCTDLLexer.class); + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public Class<? extends org.eclipse.xtext.parser.antlr.ITokenDefProvider> bindITokenDefProvider() { + return org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class; + } + + // contributed by org.eclipse.xtext.generator.validation.JavaValidatorFragment + @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class<? extends org.eclipse.stem.model.ctdl.validation.CTDLJavaValidator> bindCTDLJavaValidator() { + return org.eclipse.stem.model.ctdl.validation.CTDLJavaValidator.class; + } + + // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment + public Class<? extends org.eclipse.xtext.scoping.IScopeProvider> bindIScopeProvider() { + return org.eclipse.stem.model.ctdl.scoping.CTDLScopeProvider.class; + } + + // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment + public void configureIScopeProviderDelegate(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider.class); + } + + // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment + public void configureIgnoreCaseLinking(com.google.inject.Binder binder) { + binder.bindConstant().annotatedWith(org.eclipse.xtext.scoping.IgnoreCaseLinking.class).to(false); + } + + // contributed by org.eclipse.xtext.generator.exporting.QualifiedNamesFragment + public Class<? extends org.eclipse.xtext.naming.IQualifiedNameProvider> bindIQualifiedNameProvider() { + return org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider.class; + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public Class<? extends org.eclipse.xtext.resource.IContainer.Manager> bindIContainer$Manager() { + return org.eclipse.xtext.resource.containers.StateBasedContainerManager.class; + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public Class<? extends org.eclipse.xtext.resource.containers.IAllContainersState.Provider> bindIAllContainersState$Provider() { + return org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider.class; + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public void configureIResourceDescriptions(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class); + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class); + } + + // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment + public Class<? extends org.eclipse.xtext.generator.IGenerator> bindIGenerator() { + return org.eclipse.stem.model.ctdl.generator.CTDLGenerator.class; + } + + // contributed by org.eclipse.xtext.generator.formatting.FormatterFragment + public Class<? extends org.eclipse.xtext.formatting.IFormatter> bindIFormatter() { + return org.eclipse.stem.model.ctdl.formatting.CTDLFormatter.class; + } + + // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment + public java.lang.ClassLoader bindClassLoaderToInstance() { + return getClass().getClassLoader(); + } + + // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment + public org.eclipse.xtext.common.types.TypesFactory bindTypesFactoryToInstance() { + return org.eclipse.xtext.common.types.TypesFactory.eINSTANCE; + } + + // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment + public Class<? extends org.eclipse.xtext.common.types.access.IJvmTypeProvider.Factory> bindIJvmTypeProvider$Factory() { + return org.eclipse.xtext.common.types.access.ClasspathTypeProviderFactory.class; + } + + // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment + public Class<? extends org.eclipse.xtext.common.types.xtext.AbstractTypeScopeProvider> bindAbstractTypeScopeProvider() { + return org.eclipse.xtext.common.types.xtext.ClasspathBasedTypeScopeProvider.class; + } + + // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment + public Class<? extends org.eclipse.xtext.scoping.IGlobalScopeProvider> bindIGlobalScopeProvider() { + return org.eclipse.xtext.common.types.xtext.TypesAwareDefaultGlobalScopeProvider.class; + } + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/CTDL.ecore b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/CTDL.ecore new file mode 100644 index 000000000..8c306d1ff --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/CTDL.ecore @@ -0,0 +1,109 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ecore:EPackage xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="ctdl" + nsURI="http:///org/eclipse/stem/model/ctdl.ecore" nsPrefix="ctdl"> + <eClassifiers xsi:type="ecore:EClass" name="CompartmentTransitionDefinitions"> + <eStructuralFeatures xsi:type="ecore:EReference" name="metamodel" eType="#//MetamodelResource"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="#//TransitionBlock" + containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="MetamodelResource"> + <eStructuralFeatures xsi:type="ecore:EReference" name="package" eType="ecore:EClass ../../../../../../../org.eclipse.stem.model/model/metamodel.ecore#//Package"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="model" eType="ecore:EClass ../../../../../../../org.eclipse.stem.model/model/metamodel.ecore#//Model"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="transition" eType="ecore:EClass ../../../../../../../org.eclipse.stem.model/model/metamodel.ecore#//Transition"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="TransitionBlock"> + <eStructuralFeatures xsi:type="ecore:EReference" name="block" eType="#//Block" + containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Block"> + <eStructuralFeatures xsi:type="ecore:EReference" name="statements" upperBound="-1" + eType="#//DefStatement" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="ret" eType="#//ReturnStatement" + containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="DefStatement"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="varname" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="expr" eType="#//Evaluation" + containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ReturnStatement"/> + <eClassifiers xsi:type="ecore:EClass" name="Evaluation" eSuperTypes="#//ReturnStatement"> + <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="#//Expression" + containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Expression"> + <eStructuralFeatures xsi:type="ecore:EReference" name="exp" eType="#//Expression" + containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="FunctionReference"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ScopedVariableReference"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="LocalVariableReference" eSuperTypes="#//ScopedVariableReference"/> + <eClassifiers xsi:type="ecore:EClass" name="CompartmentReference" eSuperTypes="#//ScopedVariableReference"> + <eStructuralFeatures xsi:type="ecore:EReference" name="obj" eType="ecore:EClass ../../../../../../../org.eclipse.stem.model/model/metamodel.ecore#//Compartment"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ModelParamReference" eSuperTypes="#//ScopedVariableReference"> + <eStructuralFeatures xsi:type="ecore:EReference" name="obj" eType="ecore:EClass ../../../../../../../org.eclipse.stem.model/model/metamodel.ecore#//ModelParam"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="GlobalVariable"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Plus" eSuperTypes="#//Expression"> + <eStructuralFeatures xsi:type="ecore:EReference" name="left" eType="#//Expression" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="right" eType="#//Expression" + containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Minus" eSuperTypes="#//Expression"> + <eStructuralFeatures xsi:type="ecore:EReference" name="left" eType="#//Expression" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="right" eType="#//Expression" + containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Multi" eSuperTypes="#//Expression"> + <eStructuralFeatures xsi:type="ecore:EReference" name="left" eType="#//Expression" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="right" eType="#//Expression" + containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Div" eSuperTypes="#//Expression"> + <eStructuralFeatures xsi:type="ecore:EReference" name="left" eType="#//Expression" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="right" eType="#//Expression" + containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="PrimaryExpression" eSuperTypes="#//Expression"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="negate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="NumberLiteral" eSuperTypes="#//Expression"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="FunctionCall" eSuperTypes="#//Expression"> + <eStructuralFeatures xsi:type="ecore:EReference" name="ref" eType="#//FunctionReference"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="args" upperBound="-1" eType="#//Expression" + containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VariableReference" eSuperTypes="#//Expression"> + <eStructuralFeatures xsi:type="ecore:EReference" name="ref" eType="#//ScopedVariableReference"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="BooleanLiteral" eSuperTypes="#//Expression"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="StringLiteral" eSuperTypes="#//Expression"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ExternalFunctionReference" eSuperTypes="#//FunctionReference"> + <eStructuralFeatures xsi:type="ecore:EReference" name="func" eType="ecore:EClass ../../../../../../../org.eclipse.stem.model.ctdl.functions/model/ExternalFunctions.ecore#//ExternalFunctionDefinition"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="GlobalVariableReference" eSuperTypes="#//ScopedVariableReference"/> + <eClassifiers xsi:type="ecore:EClass" name="DefStatementReference" eSuperTypes="#//LocalVariableReference"> + <eStructuralFeatures xsi:type="ecore:EReference" name="obj" eType="#//DefStatement"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="AbsoluteCompartmentValueReference" eSuperTypes="#//CompartmentReference"/> + <eClassifiers xsi:type="ecore:EClass" name="RelativeCompartmentValueReference" eSuperTypes="#//CompartmentReference"/> +</ecore:EPackage> diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/CTDL.genmodel b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/CTDL.genmodel new file mode 100644 index 000000000..889941f9c --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/CTDL.genmodel @@ -0,0 +1,100 @@ +<?xml version="1.0" encoding="UTF-8"?> +<genmodel:GenModel xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" + xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.stem.model.ctdl/src-gen" + editDirectory="/org.eclipse.stem.model.ctdl.edit/src" editorDirectory="/org.eclipse.stem.model.ctdl.editor/src" + modelPluginID="org.eclipse.stem.model.ctdl" forceOverwrite="true" modelName="CTDL" + updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" + complianceLevel="5.0" copyrightFields="false" editPluginID="org.eclipse.stem.model.ctdl.edit" + editorPluginID="org.eclipse.stem.model.ctdl.editor" runtimeVersion="2.7" usedGenPackages="../../../../../../../org.eclipse.stem.model.ctdl.functions/model/ExternalFunctions.genmodel#//functions ../../../../../../../org.eclipse.stem.model/model/metamodel.genmodel#//metamodel"> + <genPackages prefix="Ctdl" basePackage="org.eclipse.stem.model.ctdl" disposableProviderFactory="true" + ecorePackage="CTDL.ecore#/"> + <genClasses ecoreClass="CTDL.ecore#//CompartmentTransitionDefinitions"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference CTDL.ecore#//CompartmentTransitionDefinitions/metamodel"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference CTDL.ecore#//CompartmentTransitionDefinitions/expression"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//MetamodelResource"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference CTDL.ecore#//MetamodelResource/package"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference CTDL.ecore#//MetamodelResource/model"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference CTDL.ecore#//MetamodelResource/transition"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//TransitionBlock"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference CTDL.ecore#//TransitionBlock/block"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//Block"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference CTDL.ecore#//Block/statements"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference CTDL.ecore#//Block/ret"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//DefStatement"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute CTDL.ecore#//DefStatement/varname"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference CTDL.ecore#//DefStatement/expr"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//ReturnStatement"/> + <genClasses ecoreClass="CTDL.ecore#//Evaluation"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference CTDL.ecore#//Evaluation/expression"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//Expression"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference CTDL.ecore#//Expression/exp"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//FunctionReference"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute CTDL.ecore#//FunctionReference/name"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//ScopedVariableReference"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute CTDL.ecore#//ScopedVariableReference/name"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//LocalVariableReference"/> + <genClasses ecoreClass="CTDL.ecore#//CompartmentReference"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference CTDL.ecore#//CompartmentReference/obj"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//ModelParamReference"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference CTDL.ecore#//ModelParamReference/obj"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//GlobalVariable"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute CTDL.ecore#//GlobalVariable/name"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//Plus"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference CTDL.ecore#//Plus/left"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference CTDL.ecore#//Plus/right"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//Minus"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference CTDL.ecore#//Minus/left"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference CTDL.ecore#//Minus/right"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//Multi"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference CTDL.ecore#//Multi/left"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference CTDL.ecore#//Multi/right"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//Div"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference CTDL.ecore#//Div/left"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference CTDL.ecore#//Div/right"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//PrimaryExpression"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute CTDL.ecore#//PrimaryExpression/negate"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//NumberLiteral"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute CTDL.ecore#//NumberLiteral/value"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//FunctionCall"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference CTDL.ecore#//FunctionCall/ref"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference CTDL.ecore#//FunctionCall/args"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//VariableReference"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference CTDL.ecore#//VariableReference/ref"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//BooleanLiteral"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute CTDL.ecore#//BooleanLiteral/value"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//StringLiteral"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute CTDL.ecore#//StringLiteral/value"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//ExternalFunctionReference"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference CTDL.ecore#//ExternalFunctionReference/func"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//GlobalVariableReference"/> + <genClasses ecoreClass="CTDL.ecore#//DefStatementReference"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference CTDL.ecore#//DefStatementReference/obj"/> + </genClasses> + <genClasses ecoreClass="CTDL.ecore#//AbsoluteCompartmentValueReference"/> + <genClasses ecoreClass="CTDL.ecore#//RelativeCompartmentValueReference"/> + </genPackages> +</genmodel:GenModel> diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/CTDL.xmi b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/CTDL.xmi new file mode 100644 index 000000000..35fc4aec8 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/CTDL.xmi @@ -0,0 +1,679 @@ +<?xml version="1.0" encoding="ASCII"?> +<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:xtext="http://www.eclipse.org/2008/Xtext"> + <xtext:Grammar name="org.eclipse.stem.model.ctdl.CTDL" usedGrammars="/1"> + <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore"> + <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/> + </metamodelDeclarations> + <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="metamodel"> + <ePackage href="http:///org/eclipse/stem/model/metamodel.ecore#/"/> + </metamodelDeclarations> + <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="extFunc"> + <ePackage href="http:///org/eclipse/stem/model/ctdl/functions.ecore#/"/> + </metamodelDeclarations> + <metamodelDeclarations xsi:type="xtext:GeneratedMetamodel" name="ctdl"> + <ePackage href="http:///org/eclipse/stem/model/ctdl.ecore#/"/> + </metamodelDeclarations> + <rules xsi:type="xtext:ParserRule" name="CompartmentTransitionDefinitions"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//CompartmentTransitionDefinitions"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Assignment" cardinality="?" feature="metamodel" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//MetamodelResource"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> + </terminal> + </elements> + <elements xsi:type="xtext:Assignment" feature="expression" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="MetamodelResource"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//MetamodelResource"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="metamodel "/> + <elements xsi:type="xtext:Assignment" feature="package" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.1"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/metamodel.ecore#//Package"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/> + </terminal> + </elements> + <elements xsi:type="xtext:Keyword" value="model "/> + <elements xsi:type="xtext:Assignment" feature="model" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.1"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/metamodel.ecore#//Model"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> + </terminal> + </elements> + <elements xsi:type="xtext:Keyword" value="transition "/> + <elements xsi:type="xtext:Assignment" feature="transition" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.1"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/metamodel.ecore#//Transition"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> + </terminal> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="TransitionBlock"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//TransitionBlock"/> + </type> + <alternatives xsi:type="xtext:Assignment" feature="block" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.5"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="Transition"> + <type metamodel="/0/@metamodelDeclarations.1"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/metamodel.ecore#//Transition"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Action"> + <type metamodel="/0/@metamodelDeclarations.1"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/metamodel.ecore#//Transition"/> + </type> + </elements> + <elements xsi:type="xtext:Assignment" feature="source" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.1"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/metamodel.ecore#//Compartment"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> + </terminal> + </elements> + <elements xsi:type="xtext:Keyword" value="->"/> + <elements xsi:type="xtext:Assignment" feature="target" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.1"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/metamodel.ecore#//Compartment"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> + </terminal> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="Compartment"> + <type metamodel="/0/@metamodelDeclarations.1"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/metamodel.ecore#//Compartment"/> + </type> + <alternatives xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="Block"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//Block"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Action"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//Block"/> + </type> + </elements> + <elements xsi:type="xtext:Assignment" cardinality="*" feature="statements" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.6"/> + </elements> + <elements xsi:type="xtext:Assignment" feature="ret" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.7"/> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="DefStatement"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//DefStatement"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Assignment" feature="varname" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> + </elements> + <elements xsi:type="xtext:Keyword" value="="/> + <elements xsi:type="xtext:Assignment" feature="expr" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.8"/> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="ReturnStatement"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//ReturnStatement"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="delta"/> + <elements xsi:type="xtext:RuleCall" rule="/0/@rules.8"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="Evaluation"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//Evaluation"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Assignment" feature="expression" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.9"/> + </elements> + <elements xsi:type="xtext:Keyword" value=";"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="Expression"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//Expression"/> + </type> + <alternatives xsi:type="xtext:RuleCall" rule="/0/@rules.10"/> + </rules> + <rules xsi:type="xtext:ParserRule" name="Addition"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//Expression"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:RuleCall" rule="/0/@rules.11"/> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Action" feature="left" operator="="> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//Plus"/> + </type> + </elements> + <elements xsi:type="xtext:Keyword" value="+"/> + </elements> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Action" feature="left" operator="="> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//Minus"/> + </type> + </elements> + <elements xsi:type="xtext:Keyword" value="-"/> + </elements> + </elements> + <elements xsi:type="xtext:Assignment" feature="right" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.11"/> + </elements> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="Multiplication"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//Expression"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:RuleCall" rule="/0/@rules.12"/> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Action" feature="left" operator="="> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//Multi"/> + </type> + </elements> + <elements xsi:type="xtext:Keyword" value="*"/> + </elements> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Action" feature="left" operator="="> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//Div"/> + </type> + </elements> + <elements xsi:type="xtext:Keyword" value="/"/> + </elements> + </elements> + <elements xsi:type="xtext:Assignment" feature="right" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.12"/> + </elements> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="NegatedExpression"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//Expression"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Action"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//PrimaryExpression"/> + </type> + </elements> + <elements xsi:type="xtext:Assignment" cardinality="?" feature="negate" operator="?="> + <terminal xsi:type="xtext:Keyword" value="-"/> + </elements> + <elements xsi:type="xtext:Assignment" feature="exp" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="PrimaryExpression"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//Expression"/> + </type> + <alternatives xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Action"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//NumberLiteral"/> + </type> + </elements> + <elements xsi:type="xtext:Assignment" feature="value" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/> + </elements> + </elements> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="("/> + <elements xsi:type="xtext:Assignment" feature="exp" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.9"/> + </elements> + <elements xsi:type="xtext:Keyword" value=")"/> + </elements> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Action"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//FunctionCall"/> + </type> + </elements> + <elements xsi:type="xtext:Assignment" feature="ref" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//FunctionReference"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> + </terminal> + </elements> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="("/> + <elements xsi:type="xtext:Assignment" cardinality="?" feature="args" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="args" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value=")"/> + </elements> + </elements> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Action"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//VariableReference"/> + </type> + </elements> + <elements xsi:type="xtext:Assignment" feature="ref" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//ScopedVariableReference"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> + </terminal> + </elements> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="FunctionArgument"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//Expression"/> + </type> + <alternatives xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Action"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//BooleanLiteral"/> + </type> + </elements> + <elements xsi:type="xtext:Assignment" feature="value" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/> + </elements> + </elements> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Action"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//StringLiteral"/> + </type> + </elements> + <elements xsi:type="xtext:Assignment" feature="value" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/> + </elements> + </elements> + <elements xsi:type="xtext:RuleCall" rule="/0/@rules.9"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="FunctionReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//FunctionReference"/> + </type> + <alternatives xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> + </elements> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Action"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//ExternalFunctionReference"/> + </type> + </elements> + <elements xsi:type="xtext:Assignment" feature="func" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.2"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl/functions.ecore#//ExternalFunctionDefinition"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> + </terminal> + </elements> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="ScopedVariableReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//ScopedVariableReference"/> + </type> + <alternatives xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> + </elements> + <elements xsi:type="xtext:Action"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//LocalVariableReference"/> + </type> + </elements> + <elements xsi:type="xtext:Action"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//GlobalVariableReference"/> + </type> + </elements> + <elements xsi:type="xtext:Action"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//CompartmentReference"/> + </type> + </elements> + <elements xsi:type="xtext:Action"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//ModelParamReference"/> + </type> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="LocalVariableReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//LocalVariableReference"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Action"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//DefStatementReference"/> + </type> + </elements> + <elements xsi:type="xtext:Assignment" feature="obj" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//DefStatement"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> + </terminal> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="CompartmentReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//CompartmentReference"/> + </type> + <alternatives xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Assignment" feature="obj" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.1"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/metamodel.ecore#//Compartment"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> + </terminal> + </elements> + <elements xsi:type="xtext:Action"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//AbsoluteCompartmentValueReference"/> + </type> + </elements> + <elements xsi:type="xtext:Action"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//RelativeCompartmentValueReference"/> + </type> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="ModelParamReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//ModelParamReference"/> + </type> + <alternatives xsi:type="xtext:Assignment" feature="obj" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.1"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/metamodel.ecore#//ModelParam"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> + </terminal> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="GlobalVariable"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http:///org/eclipse/stem/model/ctdl.ecore#//GlobalVariable"/> + </type> + <alternatives xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> + </alternatives> + </rules> + <rules xsi:type="xtext:TerminalRule" name="BOOLEAN"> + <type metamodel="/0/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + </type> + <alternatives xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Keyword" value="true"/> + <elements xsi:type="xtext:Keyword" value="false"/> + </alternatives> + </rules> + <rules xsi:type="xtext:TerminalRule" name="NUMBER"> + <type metamodel="/0/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDouble"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:CharacterRange" cardinality="+"> + <left value="0"/> + <right value="9"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="."/> + <elements xsi:type="xtext:CharacterRange" cardinality="*"> + <left value="0"/> + <right value="9"/> + </elements> + </elements> + </elements> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="."/> + <elements xsi:type="xtext:CharacterRange" cardinality="+"> + <left value="0"/> + <right value="9"/> + </elements> + </elements> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Keyword" value="e"/> + <elements xsi:type="xtext:Keyword" value="E"/> + </elements> + <elements xsi:type="xtext:Alternatives" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="+"/> + <elements xsi:type="xtext:Keyword" value="-"/> + </elements> + <elements xsi:type="xtext:CharacterRange" cardinality="+"> + <left value="0"/> + <right value="9"/> + </elements> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:TerminalRule" name="INT"> + <type metamodel="/0/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/> + </type> + <alternatives xsi:type="xtext:Keyword" value="this one has been deactivated"/> + </rules> + </xtext:Grammar> + <xtext:Grammar name="org.eclipse.xtext.common.Terminals" definesHiddenTokens="true" hiddenTokens="/1/@rules.5 /1/@rules.3 /1/@rules.4"> + <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore"> + <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/> + </metamodelDeclarations> + <rules xsi:type="xtext:TerminalRule" name="ID"> + <type metamodel="/1/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" cardinality="?" value="^"/> + <elements xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:CharacterRange"> + <left value="a"/> + <right value="z"/> + </elements> + <elements xsi:type="xtext:CharacterRange"> + <left value="A"/> + <right value="Z"/> + </elements> + <elements xsi:type="xtext:Keyword" value="_"/> + </elements> + <elements xsi:type="xtext:Alternatives" cardinality="*"> + <elements xsi:type="xtext:CharacterRange"> + <left value="a"/> + <right value="z"/> + </elements> + <elements xsi:type="xtext:CharacterRange"> + <left value="A"/> + <right value="Z"/> + </elements> + <elements xsi:type="xtext:Keyword" value="_"/> + <elements xsi:type="xtext:CharacterRange"> + <left value="0"/> + <right value="9"/> + </elements> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:TerminalRule" name="INT"> + <type metamodel="/1/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/> + </type> + <alternatives xsi:type="xtext:CharacterRange" cardinality="+"> + <left value="0"/> + <right value="9"/> + </alternatives> + </rules> + <rules xsi:type="xtext:TerminalRule" name="STRING"> + <type metamodel="/1/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </type> + <alternatives xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="""/> + <elements xsi:type="xtext:Alternatives" cardinality="*"> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="\"/> + <elements xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Keyword" value="b"/> + <elements xsi:type="xtext:Keyword" value="t"/> + <elements xsi:type="xtext:Keyword" value="n"/> + <elements xsi:type="xtext:Keyword" value="f"/> + <elements xsi:type="xtext:Keyword" value="r"/> + <elements xsi:type="xtext:Keyword" value="u"/> + <elements xsi:type="xtext:Keyword" value="""/> + <elements xsi:type="xtext:Keyword" value="'"/> + <elements xsi:type="xtext:Keyword" value="\"/> + </elements> + </elements> + <elements xsi:type="xtext:NegatedToken"> + <terminal xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Keyword" value="\"/> + <elements xsi:type="xtext:Keyword" value="""/> + </terminal> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="""/> + </elements> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="'"/> + <elements xsi:type="xtext:Alternatives" cardinality="*"> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="\"/> + <elements xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Keyword" value="b"/> + <elements xsi:type="xtext:Keyword" value="t"/> + <elements xsi:type="xtext:Keyword" value="n"/> + <elements xsi:type="xtext:Keyword" value="f"/> + <elements xsi:type="xtext:Keyword" value="r"/> + <elements xsi:type="xtext:Keyword" value="u"/> + <elements xsi:type="xtext:Keyword" value="""/> + <elements xsi:type="xtext:Keyword" value="'"/> + <elements xsi:type="xtext:Keyword" value="\"/> + </elements> + </elements> + <elements xsi:type="xtext:NegatedToken"> + <terminal xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Keyword" value="\"/> + <elements xsi:type="xtext:Keyword" value="'"/> + </terminal> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="'"/> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:TerminalRule" name="ML_COMMENT"> + <type metamodel="/1/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="/*"/> + <elements xsi:type="xtext:UntilToken"> + <terminal xsi:type="xtext:Keyword" value="*/"/> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:TerminalRule" name="SL_COMMENT"> + <type metamodel="/1/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="//"/> + <elements xsi:type="xtext:NegatedToken" cardinality="*"> + <terminal xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Keyword" value="
"/> + <elements xsi:type="xtext:Keyword" value="
"/> + </terminal> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" cardinality="?" value="
"/> + <elements xsi:type="xtext:Keyword" value="
"/> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:TerminalRule" name="WS"> + <type metamodel="/1/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </type> + <alternatives xsi:type="xtext:Alternatives" cardinality="+"> + <elements xsi:type="xtext:Keyword" value=" "/> + <elements xsi:type="xtext:Keyword" value="	"/> + <elements xsi:type="xtext:Keyword" value="
"/> + <elements xsi:type="xtext:Keyword" value="
"/> + </alternatives> + </rules> + <rules xsi:type="xtext:TerminalRule" name="ANY_OTHER"> + <type metamodel="/1/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </type> + <alternatives xsi:type="xtext:Wildcard"/> + </rules> + </xtext:Grammar> +</xmi:XMI> diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/CTDLStandaloneSetupGenerated.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/CTDLStandaloneSetupGenerated.java new file mode 100644 index 000000000..39ab25db4 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/CTDLStandaloneSetupGenerated.java @@ -0,0 +1,43 @@ + +package org.eclipse.stem.model.ctdl; + +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.xtext.ISetup; + +import com.google.inject.Guice; +import com.google.inject.Injector; + +/** + * Generated from StandaloneSetup.xpt! + */ +@SuppressWarnings("all") +public class CTDLStandaloneSetupGenerated implements ISetup { + + public Injector createInjectorAndDoEMFRegistration() { + org.eclipse.xtext.common.TerminalsStandaloneSetup.doSetup(); + + Injector injector = createInjector(); + register(injector); + return injector; + } + + public Injector createInjector() { + return Guice.createInjector(new org.eclipse.stem.model.ctdl.CTDLRuntimeModule()); + } + + public void register(Injector injector) { + if (!EPackage.Registry.INSTANCE.containsKey("http:///org/eclipse/stem/model/ctdl.ecore")) { + EPackage.Registry.INSTANCE.put("http:///org/eclipse/stem/model/ctdl.ecore", org.eclipse.stem.model.ctdl.ctdl.CtdlPackage.eINSTANCE); + } + + org.eclipse.xtext.resource.IResourceFactory resourceFactory = injector.getInstance(org.eclipse.xtext.resource.IResourceFactory.class); + org.eclipse.xtext.resource.IResourceServiceProvider serviceProvider = injector.getInstance(org.eclipse.xtext.resource.IResourceServiceProvider.class); + Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("sctd", resourceFactory); + org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("sctd", serviceProvider); + + + + + } +} diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/AbsoluteCompartmentValueReference.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/AbsoluteCompartmentValueReference.java new file mode 100644 index 000000000..51e5a233e --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/AbsoluteCompartmentValueReference.java @@ -0,0 +1,21 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Absolute Compartment Value Reference</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getAbsoluteCompartmentValueReference() + * @model + * @generated + */ +public interface AbsoluteCompartmentValueReference extends CompartmentReference +{ +} // AbsoluteCompartmentValueReference diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Block.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Block.java new file mode 100644 index 000000000..863a67804 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Block.java @@ -0,0 +1,72 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Block</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.Block#getStatements <em>Statements</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.Block#getRet <em>Ret</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getBlock() + * @model + * @generated + */ +public interface Block extends EObject +{ + /** + * Returns the value of the '<em><b>Statements</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.stem.model.ctdl.ctdl.DefStatement}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Statements</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Statements</em>' containment reference list. + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getBlock_Statements() + * @model containment="true" + * @generated + */ + EList<DefStatement> getStatements(); + + /** + * Returns the value of the '<em><b>Ret</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Ret</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Ret</em>' containment reference. + * @see #setRet(ReturnStatement) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getBlock_Ret() + * @model containment="true" + * @generated + */ + ReturnStatement getRet(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.Block#getRet <em>Ret</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Ret</em>' containment reference. + * @see #getRet() + * @generated + */ + void setRet(ReturnStatement value); + +} // Block diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/BooleanLiteral.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/BooleanLiteral.java new file mode 100644 index 000000000..2431628ed --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/BooleanLiteral.java @@ -0,0 +1,53 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Boolean Literal</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.BooleanLiteral#isValue <em>Value</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getBooleanLiteral() + * @model + * @generated + */ +public interface BooleanLiteral extends Expression +{ + /** + * Returns the value of the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Value</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Value</em>' attribute. + * @see #setValue(boolean) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getBooleanLiteral_Value() + * @model + * @generated + */ + boolean isValue(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.BooleanLiteral#isValue <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Value</em>' attribute. + * @see #isValue() + * @generated + */ + void setValue(boolean value); + +} // BooleanLiteral diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/CompartmentReference.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/CompartmentReference.java new file mode 100644 index 000000000..beb4430d2 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/CompartmentReference.java @@ -0,0 +1,54 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + +import org.eclipse.stem.model.metamodel.Compartment; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Compartment Reference</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.CompartmentReference#getObj <em>Obj</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getCompartmentReference() + * @model + * @generated + */ +public interface CompartmentReference extends ScopedVariableReference +{ + /** + * Returns the value of the '<em><b>Obj</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Obj</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Obj</em>' reference. + * @see #setObj(Compartment) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getCompartmentReference_Obj() + * @model + * @generated + */ + Compartment getObj(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.CompartmentReference#getObj <em>Obj</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Obj</em>' reference. + * @see #getObj() + * @generated + */ + void setObj(Compartment value); + +} // CompartmentReference diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/CompartmentTransitionDefinitions.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/CompartmentTransitionDefinitions.java new file mode 100644 index 000000000..9b18eb5af --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/CompartmentTransitionDefinitions.java @@ -0,0 +1,81 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Compartment Transition Definitions</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions#getMetamodel <em>Metamodel</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions#getExpression <em>Expression</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getCompartmentTransitionDefinitions() + * @model + * @generated + */ +public interface CompartmentTransitionDefinitions extends EObject +{ + /** + * Returns the value of the '<em><b>Metamodel</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Metamodel</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Metamodel</em>' reference. + * @see #setMetamodel(MetamodelResource) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getCompartmentTransitionDefinitions_Metamodel() + * @model + * @generated + */ + MetamodelResource getMetamodel(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions#getMetamodel <em>Metamodel</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Metamodel</em>' reference. + * @see #getMetamodel() + * @generated + */ + void setMetamodel(MetamodelResource value); + + /** + * Returns the value of the '<em><b>Expression</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Expression</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Expression</em>' containment reference. + * @see #setExpression(TransitionBlock) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getCompartmentTransitionDefinitions_Expression() + * @model containment="true" + * @generated + */ + TransitionBlock getExpression(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions#getExpression <em>Expression</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Expression</em>' containment reference. + * @see #getExpression() + * @generated + */ + void setExpression(TransitionBlock value); + +} // CompartmentTransitionDefinitions diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/CtdlFactory.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/CtdlFactory.java new file mode 100644 index 000000000..2ba6421a9 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/CtdlFactory.java @@ -0,0 +1,298 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + +import org.eclipse.emf.ecore.EFactory; + +/** + * <!-- begin-user-doc --> + * The <b>Factory</b> for the model. + * It provides a create method for each non-abstract class of the model. + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage + * @generated + */ +public interface CtdlFactory extends EFactory +{ + /** + * The singleton instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + CtdlFactory eINSTANCE = org.eclipse.stem.model.ctdl.ctdl.impl.CtdlFactoryImpl.init(); + + /** + * Returns a new object of class '<em>Compartment Transition Definitions</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Compartment Transition Definitions</em>'. + * @generated + */ + CompartmentTransitionDefinitions createCompartmentTransitionDefinitions(); + + /** + * Returns a new object of class '<em>Metamodel Resource</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Metamodel Resource</em>'. + * @generated + */ + MetamodelResource createMetamodelResource(); + + /** + * Returns a new object of class '<em>Transition Block</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Transition Block</em>'. + * @generated + */ + TransitionBlock createTransitionBlock(); + + /** + * Returns a new object of class '<em>Block</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Block</em>'. + * @generated + */ + Block createBlock(); + + /** + * Returns a new object of class '<em>Def Statement</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Def Statement</em>'. + * @generated + */ + DefStatement createDefStatement(); + + /** + * Returns a new object of class '<em>Return Statement</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Return Statement</em>'. + * @generated + */ + ReturnStatement createReturnStatement(); + + /** + * Returns a new object of class '<em>Evaluation</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Evaluation</em>'. + * @generated + */ + Evaluation createEvaluation(); + + /** + * Returns a new object of class '<em>Expression</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Expression</em>'. + * @generated + */ + Expression createExpression(); + + /** + * Returns a new object of class '<em>Function Reference</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Function Reference</em>'. + * @generated + */ + FunctionReference createFunctionReference(); + + /** + * Returns a new object of class '<em>Scoped Variable Reference</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Scoped Variable Reference</em>'. + * @generated + */ + ScopedVariableReference createScopedVariableReference(); + + /** + * Returns a new object of class '<em>Local Variable Reference</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Local Variable Reference</em>'. + * @generated + */ + LocalVariableReference createLocalVariableReference(); + + /** + * Returns a new object of class '<em>Compartment Reference</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Compartment Reference</em>'. + * @generated + */ + CompartmentReference createCompartmentReference(); + + /** + * Returns a new object of class '<em>Model Param Reference</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Model Param Reference</em>'. + * @generated + */ + ModelParamReference createModelParamReference(); + + /** + * Returns a new object of class '<em>Global Variable</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Global Variable</em>'. + * @generated + */ + GlobalVariable createGlobalVariable(); + + /** + * Returns a new object of class '<em>Plus</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Plus</em>'. + * @generated + */ + Plus createPlus(); + + /** + * Returns a new object of class '<em>Minus</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Minus</em>'. + * @generated + */ + Minus createMinus(); + + /** + * Returns a new object of class '<em>Multi</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Multi</em>'. + * @generated + */ + Multi createMulti(); + + /** + * Returns a new object of class '<em>Div</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Div</em>'. + * @generated + */ + Div createDiv(); + + /** + * Returns a new object of class '<em>Primary Expression</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Primary Expression</em>'. + * @generated + */ + PrimaryExpression createPrimaryExpression(); + + /** + * Returns a new object of class '<em>Number Literal</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Number Literal</em>'. + * @generated + */ + NumberLiteral createNumberLiteral(); + + /** + * Returns a new object of class '<em>Function Call</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Function Call</em>'. + * @generated + */ + FunctionCall createFunctionCall(); + + /** + * Returns a new object of class '<em>Variable Reference</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Variable Reference</em>'. + * @generated + */ + VariableReference createVariableReference(); + + /** + * Returns a new object of class '<em>Boolean Literal</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Boolean Literal</em>'. + * @generated + */ + BooleanLiteral createBooleanLiteral(); + + /** + * Returns a new object of class '<em>String Literal</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>String Literal</em>'. + * @generated + */ + StringLiteral createStringLiteral(); + + /** + * Returns a new object of class '<em>External Function Reference</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>External Function Reference</em>'. + * @generated + */ + ExternalFunctionReference createExternalFunctionReference(); + + /** + * Returns a new object of class '<em>Global Variable Reference</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Global Variable Reference</em>'. + * @generated + */ + GlobalVariableReference createGlobalVariableReference(); + + /** + * Returns a new object of class '<em>Def Statement Reference</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Def Statement Reference</em>'. + * @generated + */ + DefStatementReference createDefStatementReference(); + + /** + * Returns a new object of class '<em>Absolute Compartment Value Reference</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Absolute Compartment Value Reference</em>'. + * @generated + */ + AbsoluteCompartmentValueReference createAbsoluteCompartmentValueReference(); + + /** + * Returns a new object of class '<em>Relative Compartment Value Reference</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Relative Compartment Value Reference</em>'. + * @generated + */ + RelativeCompartmentValueReference createRelativeCompartmentValueReference(); + + /** + * Returns the package supported by this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the package supported by this factory. + * @generated + */ + CtdlPackage getCtdlPackage(); + +} //CtdlFactory diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/CtdlPackage.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/CtdlPackage.java new file mode 100644 index 000000000..67a0fd5a9 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/CtdlPackage.java @@ -0,0 +1,2351 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +/** + * <!-- begin-user-doc --> + * The <b>Package</b> for the model. + * It contains accessors for the meta objects to represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlFactory + * @model kind="package" + * @generated + */ +public interface CtdlPackage extends EPackage +{ + /** + * The package name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNAME = "ctdl"; + + /** + * The package namespace URI. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_URI = "http:///org/eclipse/stem/model/ctdl.ecore"; + + /** + * The package namespace name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_PREFIX = "ctdl"; + + /** + * The singleton instance of the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + CtdlPackage eINSTANCE = org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl.init(); + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.CompartmentTransitionDefinitionsImpl <em>Compartment Transition Definitions</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CompartmentTransitionDefinitionsImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getCompartmentTransitionDefinitions() + * @generated + */ + int COMPARTMENT_TRANSITION_DEFINITIONS = 0; + + /** + * The feature id for the '<em><b>Metamodel</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int COMPARTMENT_TRANSITION_DEFINITIONS__METAMODEL = 0; + + /** + * The feature id for the '<em><b>Expression</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int COMPARTMENT_TRANSITION_DEFINITIONS__EXPRESSION = 1; + + /** + * The number of structural features of the '<em>Compartment Transition Definitions</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int COMPARTMENT_TRANSITION_DEFINITIONS_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.MetamodelResourceImpl <em>Metamodel Resource</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.MetamodelResourceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getMetamodelResource() + * @generated + */ + int METAMODEL_RESOURCE = 1; + + /** + * The feature id for the '<em><b>Package</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METAMODEL_RESOURCE__PACKAGE = 0; + + /** + * The feature id for the '<em><b>Model</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METAMODEL_RESOURCE__MODEL = 1; + + /** + * The feature id for the '<em><b>Transition</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METAMODEL_RESOURCE__TRANSITION = 2; + + /** + * The number of structural features of the '<em>Metamodel Resource</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METAMODEL_RESOURCE_FEATURE_COUNT = 3; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.TransitionBlockImpl <em>Transition Block</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.TransitionBlockImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getTransitionBlock() + * @generated + */ + int TRANSITION_BLOCK = 2; + + /** + * The feature id for the '<em><b>Block</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TRANSITION_BLOCK__BLOCK = 0; + + /** + * The number of structural features of the '<em>Transition Block</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TRANSITION_BLOCK_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.BlockImpl <em>Block</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.BlockImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getBlock() + * @generated + */ + int BLOCK = 3; + + /** + * The feature id for the '<em><b>Statements</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BLOCK__STATEMENTS = 0; + + /** + * The feature id for the '<em><b>Ret</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BLOCK__RET = 1; + + /** + * The number of structural features of the '<em>Block</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BLOCK_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.DefStatementImpl <em>Def Statement</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.DefStatementImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getDefStatement() + * @generated + */ + int DEF_STATEMENT = 4; + + /** + * The feature id for the '<em><b>Varname</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int DEF_STATEMENT__VARNAME = 0; + + /** + * The feature id for the '<em><b>Expr</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int DEF_STATEMENT__EXPR = 1; + + /** + * The number of structural features of the '<em>Def Statement</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int DEF_STATEMENT_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.ReturnStatementImpl <em>Return Statement</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.ReturnStatementImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getReturnStatement() + * @generated + */ + int RETURN_STATEMENT = 5; + + /** + * The number of structural features of the '<em>Return Statement</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RETURN_STATEMENT_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.EvaluationImpl <em>Evaluation</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.EvaluationImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getEvaluation() + * @generated + */ + int EVALUATION = 6; + + /** + * The feature id for the '<em><b>Expression</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EVALUATION__EXPRESSION = RETURN_STATEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Evaluation</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EVALUATION_FEATURE_COUNT = RETURN_STATEMENT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.ExpressionImpl <em>Expression</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.ExpressionImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getExpression() + * @generated + */ + int EXPRESSION = 7; + + /** + * The feature id for the '<em><b>Exp</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXPRESSION__EXP = 0; + + /** + * The number of structural features of the '<em>Expression</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXPRESSION_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.FunctionReferenceImpl <em>Function Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.FunctionReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getFunctionReference() + * @generated + */ + int FUNCTION_REFERENCE = 8; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FUNCTION_REFERENCE__NAME = 0; + + /** + * The number of structural features of the '<em>Function Reference</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FUNCTION_REFERENCE_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.ScopedVariableReferenceImpl <em>Scoped Variable Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.ScopedVariableReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getScopedVariableReference() + * @generated + */ + int SCOPED_VARIABLE_REFERENCE = 9; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SCOPED_VARIABLE_REFERENCE__NAME = 0; + + /** + * The number of structural features of the '<em>Scoped Variable Reference</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SCOPED_VARIABLE_REFERENCE_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.LocalVariableReferenceImpl <em>Local Variable Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.LocalVariableReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getLocalVariableReference() + * @generated + */ + int LOCAL_VARIABLE_REFERENCE = 10; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int LOCAL_VARIABLE_REFERENCE__NAME = SCOPED_VARIABLE_REFERENCE__NAME; + + /** + * The number of structural features of the '<em>Local Variable Reference</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int LOCAL_VARIABLE_REFERENCE_FEATURE_COUNT = SCOPED_VARIABLE_REFERENCE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.CompartmentReferenceImpl <em>Compartment Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CompartmentReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getCompartmentReference() + * @generated + */ + int COMPARTMENT_REFERENCE = 11; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int COMPARTMENT_REFERENCE__NAME = SCOPED_VARIABLE_REFERENCE__NAME; + + /** + * The feature id for the '<em><b>Obj</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int COMPARTMENT_REFERENCE__OBJ = SCOPED_VARIABLE_REFERENCE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Compartment Reference</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int COMPARTMENT_REFERENCE_FEATURE_COUNT = SCOPED_VARIABLE_REFERENCE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.ModelParamReferenceImpl <em>Model Param Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.ModelParamReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getModelParamReference() + * @generated + */ + int MODEL_PARAM_REFERENCE = 12; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MODEL_PARAM_REFERENCE__NAME = SCOPED_VARIABLE_REFERENCE__NAME; + + /** + * The feature id for the '<em><b>Obj</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MODEL_PARAM_REFERENCE__OBJ = SCOPED_VARIABLE_REFERENCE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Model Param Reference</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MODEL_PARAM_REFERENCE_FEATURE_COUNT = SCOPED_VARIABLE_REFERENCE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.GlobalVariableImpl <em>Global Variable</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.GlobalVariableImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getGlobalVariable() + * @generated + */ + int GLOBAL_VARIABLE = 13; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int GLOBAL_VARIABLE__NAME = 0; + + /** + * The number of structural features of the '<em>Global Variable</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int GLOBAL_VARIABLE_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.PlusImpl <em>Plus</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.PlusImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getPlus() + * @generated + */ + int PLUS = 14; + + /** + * The feature id for the '<em><b>Exp</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PLUS__EXP = EXPRESSION__EXP; + + /** + * The feature id for the '<em><b>Left</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PLUS__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Right</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PLUS__RIGHT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Plus</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PLUS_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.MinusImpl <em>Minus</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.MinusImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getMinus() + * @generated + */ + int MINUS = 15; + + /** + * The feature id for the '<em><b>Exp</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MINUS__EXP = EXPRESSION__EXP; + + /** + * The feature id for the '<em><b>Left</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MINUS__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Right</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MINUS__RIGHT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Minus</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MINUS_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.MultiImpl <em>Multi</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.MultiImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getMulti() + * @generated + */ + int MULTI = 16; + + /** + * The feature id for the '<em><b>Exp</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MULTI__EXP = EXPRESSION__EXP; + + /** + * The feature id for the '<em><b>Left</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MULTI__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Right</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MULTI__RIGHT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Multi</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MULTI_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.DivImpl <em>Div</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.DivImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getDiv() + * @generated + */ + int DIV = 17; + + /** + * The feature id for the '<em><b>Exp</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int DIV__EXP = EXPRESSION__EXP; + + /** + * The feature id for the '<em><b>Left</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int DIV__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Right</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int DIV__RIGHT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Div</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int DIV_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.PrimaryExpressionImpl <em>Primary Expression</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.PrimaryExpressionImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getPrimaryExpression() + * @generated + */ + int PRIMARY_EXPRESSION = 18; + + /** + * The feature id for the '<em><b>Exp</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PRIMARY_EXPRESSION__EXP = EXPRESSION__EXP; + + /** + * The feature id for the '<em><b>Negate</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PRIMARY_EXPRESSION__NEGATE = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Primary Expression</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PRIMARY_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.NumberLiteralImpl <em>Number Literal</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.NumberLiteralImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getNumberLiteral() + * @generated + */ + int NUMBER_LITERAL = 19; + + /** + * The feature id for the '<em><b>Exp</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NUMBER_LITERAL__EXP = EXPRESSION__EXP; + + /** + * The feature id for the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NUMBER_LITERAL__VALUE = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Number Literal</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NUMBER_LITERAL_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.FunctionCallImpl <em>Function Call</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.FunctionCallImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getFunctionCall() + * @generated + */ + int FUNCTION_CALL = 20; + + /** + * The feature id for the '<em><b>Exp</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FUNCTION_CALL__EXP = EXPRESSION__EXP; + + /** + * The feature id for the '<em><b>Ref</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FUNCTION_CALL__REF = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Args</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FUNCTION_CALL__ARGS = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Function Call</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FUNCTION_CALL_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.VariableReferenceImpl <em>Variable Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.VariableReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getVariableReference() + * @generated + */ + int VARIABLE_REFERENCE = 21; + + /** + * The feature id for the '<em><b>Exp</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int VARIABLE_REFERENCE__EXP = EXPRESSION__EXP; + + /** + * The feature id for the '<em><b>Ref</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int VARIABLE_REFERENCE__REF = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Variable Reference</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int VARIABLE_REFERENCE_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.BooleanLiteralImpl <em>Boolean Literal</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.BooleanLiteralImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getBooleanLiteral() + * @generated + */ + int BOOLEAN_LITERAL = 22; + + /** + * The feature id for the '<em><b>Exp</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BOOLEAN_LITERAL__EXP = EXPRESSION__EXP; + + /** + * The feature id for the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BOOLEAN_LITERAL__VALUE = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Boolean Literal</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BOOLEAN_LITERAL_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.StringLiteralImpl <em>String Literal</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.StringLiteralImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getStringLiteral() + * @generated + */ + int STRING_LITERAL = 23; + + /** + * The feature id for the '<em><b>Exp</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int STRING_LITERAL__EXP = EXPRESSION__EXP; + + /** + * The feature id for the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int STRING_LITERAL__VALUE = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>String Literal</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int STRING_LITERAL_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.ExternalFunctionReferenceImpl <em>External Function Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.ExternalFunctionReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getExternalFunctionReference() + * @generated + */ + int EXTERNAL_FUNCTION_REFERENCE = 24; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXTERNAL_FUNCTION_REFERENCE__NAME = FUNCTION_REFERENCE__NAME; + + /** + * The feature id for the '<em><b>Func</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXTERNAL_FUNCTION_REFERENCE__FUNC = FUNCTION_REFERENCE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>External Function Reference</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXTERNAL_FUNCTION_REFERENCE_FEATURE_COUNT = FUNCTION_REFERENCE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.GlobalVariableReferenceImpl <em>Global Variable Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.GlobalVariableReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getGlobalVariableReference() + * @generated + */ + int GLOBAL_VARIABLE_REFERENCE = 25; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int GLOBAL_VARIABLE_REFERENCE__NAME = SCOPED_VARIABLE_REFERENCE__NAME; + + /** + * The number of structural features of the '<em>Global Variable Reference</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int GLOBAL_VARIABLE_REFERENCE_FEATURE_COUNT = SCOPED_VARIABLE_REFERENCE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.DefStatementReferenceImpl <em>Def Statement Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.DefStatementReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getDefStatementReference() + * @generated + */ + int DEF_STATEMENT_REFERENCE = 26; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int DEF_STATEMENT_REFERENCE__NAME = LOCAL_VARIABLE_REFERENCE__NAME; + + /** + * The feature id for the '<em><b>Obj</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int DEF_STATEMENT_REFERENCE__OBJ = LOCAL_VARIABLE_REFERENCE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Def Statement Reference</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int DEF_STATEMENT_REFERENCE_FEATURE_COUNT = LOCAL_VARIABLE_REFERENCE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.AbsoluteCompartmentValueReferenceImpl <em>Absolute Compartment Value Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.AbsoluteCompartmentValueReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getAbsoluteCompartmentValueReference() + * @generated + */ + int ABSOLUTE_COMPARTMENT_VALUE_REFERENCE = 27; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ABSOLUTE_COMPARTMENT_VALUE_REFERENCE__NAME = COMPARTMENT_REFERENCE__NAME; + + /** + * The feature id for the '<em><b>Obj</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ABSOLUTE_COMPARTMENT_VALUE_REFERENCE__OBJ = COMPARTMENT_REFERENCE__OBJ; + + /** + * The number of structural features of the '<em>Absolute Compartment Value Reference</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ABSOLUTE_COMPARTMENT_VALUE_REFERENCE_FEATURE_COUNT = COMPARTMENT_REFERENCE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.RelativeCompartmentValueReferenceImpl <em>Relative Compartment Value Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.RelativeCompartmentValueReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getRelativeCompartmentValueReference() + * @generated + */ + int RELATIVE_COMPARTMENT_VALUE_REFERENCE = 28; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RELATIVE_COMPARTMENT_VALUE_REFERENCE__NAME = COMPARTMENT_REFERENCE__NAME; + + /** + * The feature id for the '<em><b>Obj</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RELATIVE_COMPARTMENT_VALUE_REFERENCE__OBJ = COMPARTMENT_REFERENCE__OBJ; + + /** + * The number of structural features of the '<em>Relative Compartment Value Reference</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RELATIVE_COMPARTMENT_VALUE_REFERENCE_FEATURE_COUNT = COMPARTMENT_REFERENCE_FEATURE_COUNT + 0; + + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions <em>Compartment Transition Definitions</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Compartment Transition Definitions</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions + * @generated + */ + EClass getCompartmentTransitionDefinitions(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions#getMetamodel <em>Metamodel</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Metamodel</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions#getMetamodel() + * @see #getCompartmentTransitionDefinitions() + * @generated + */ + EReference getCompartmentTransitionDefinitions_Metamodel(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions#getExpression <em>Expression</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Expression</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions#getExpression() + * @see #getCompartmentTransitionDefinitions() + * @generated + */ + EReference getCompartmentTransitionDefinitions_Expression(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.MetamodelResource <em>Metamodel Resource</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Metamodel Resource</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.MetamodelResource + * @generated + */ + EClass getMetamodelResource(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.stem.model.ctdl.ctdl.MetamodelResource#getPackage <em>Package</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Package</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.MetamodelResource#getPackage() + * @see #getMetamodelResource() + * @generated + */ + EReference getMetamodelResource_Package(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.stem.model.ctdl.ctdl.MetamodelResource#getModel <em>Model</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Model</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.MetamodelResource#getModel() + * @see #getMetamodelResource() + * @generated + */ + EReference getMetamodelResource_Model(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.stem.model.ctdl.ctdl.MetamodelResource#getTransition <em>Transition</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Transition</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.MetamodelResource#getTransition() + * @see #getMetamodelResource() + * @generated + */ + EReference getMetamodelResource_Transition(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.TransitionBlock <em>Transition Block</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Transition Block</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.TransitionBlock + * @generated + */ + EClass getTransitionBlock(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.stem.model.ctdl.ctdl.TransitionBlock#getBlock <em>Block</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Block</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.TransitionBlock#getBlock() + * @see #getTransitionBlock() + * @generated + */ + EReference getTransitionBlock_Block(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.Block <em>Block</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Block</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.Block + * @generated + */ + EClass getBlock(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.stem.model.ctdl.ctdl.Block#getStatements <em>Statements</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Statements</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.Block#getStatements() + * @see #getBlock() + * @generated + */ + EReference getBlock_Statements(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.stem.model.ctdl.ctdl.Block#getRet <em>Ret</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Ret</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.Block#getRet() + * @see #getBlock() + * @generated + */ + EReference getBlock_Ret(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.DefStatement <em>Def Statement</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Def Statement</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.DefStatement + * @generated + */ + EClass getDefStatement(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.ctdl.DefStatement#getVarname <em>Varname</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Varname</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.DefStatement#getVarname() + * @see #getDefStatement() + * @generated + */ + EAttribute getDefStatement_Varname(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.stem.model.ctdl.ctdl.DefStatement#getExpr <em>Expr</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Expr</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.DefStatement#getExpr() + * @see #getDefStatement() + * @generated + */ + EReference getDefStatement_Expr(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.ReturnStatement <em>Return Statement</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Return Statement</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.ReturnStatement + * @generated + */ + EClass getReturnStatement(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.Evaluation <em>Evaluation</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Evaluation</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.Evaluation + * @generated + */ + EClass getEvaluation(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.stem.model.ctdl.ctdl.Evaluation#getExpression <em>Expression</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Expression</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.Evaluation#getExpression() + * @see #getEvaluation() + * @generated + */ + EReference getEvaluation_Expression(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.Expression <em>Expression</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Expression</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.Expression + * @generated + */ + EClass getExpression(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.stem.model.ctdl.ctdl.Expression#getExp <em>Exp</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Exp</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.Expression#getExp() + * @see #getExpression() + * @generated + */ + EReference getExpression_Exp(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.FunctionReference <em>Function Reference</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Function Reference</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.FunctionReference + * @generated + */ + EClass getFunctionReference(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.ctdl.FunctionReference#getName <em>Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.FunctionReference#getName() + * @see #getFunctionReference() + * @generated + */ + EAttribute getFunctionReference_Name(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.ScopedVariableReference <em>Scoped Variable Reference</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Scoped Variable Reference</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.ScopedVariableReference + * @generated + */ + EClass getScopedVariableReference(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.ctdl.ScopedVariableReference#getName <em>Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.ScopedVariableReference#getName() + * @see #getScopedVariableReference() + * @generated + */ + EAttribute getScopedVariableReference_Name(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.LocalVariableReference <em>Local Variable Reference</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Local Variable Reference</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.LocalVariableReference + * @generated + */ + EClass getLocalVariableReference(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.CompartmentReference <em>Compartment Reference</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Compartment Reference</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.CompartmentReference + * @generated + */ + EClass getCompartmentReference(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.stem.model.ctdl.ctdl.CompartmentReference#getObj <em>Obj</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Obj</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.CompartmentReference#getObj() + * @see #getCompartmentReference() + * @generated + */ + EReference getCompartmentReference_Obj(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.ModelParamReference <em>Model Param Reference</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Model Param Reference</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.ModelParamReference + * @generated + */ + EClass getModelParamReference(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.stem.model.ctdl.ctdl.ModelParamReference#getObj <em>Obj</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Obj</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.ModelParamReference#getObj() + * @see #getModelParamReference() + * @generated + */ + EReference getModelParamReference_Obj(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.GlobalVariable <em>Global Variable</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Global Variable</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.GlobalVariable + * @generated + */ + EClass getGlobalVariable(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.ctdl.GlobalVariable#getName <em>Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.GlobalVariable#getName() + * @see #getGlobalVariable() + * @generated + */ + EAttribute getGlobalVariable_Name(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.Plus <em>Plus</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Plus</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.Plus + * @generated + */ + EClass getPlus(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.stem.model.ctdl.ctdl.Plus#getLeft <em>Left</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Left</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.Plus#getLeft() + * @see #getPlus() + * @generated + */ + EReference getPlus_Left(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.stem.model.ctdl.ctdl.Plus#getRight <em>Right</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Right</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.Plus#getRight() + * @see #getPlus() + * @generated + */ + EReference getPlus_Right(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.Minus <em>Minus</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Minus</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.Minus + * @generated + */ + EClass getMinus(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.stem.model.ctdl.ctdl.Minus#getLeft <em>Left</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Left</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.Minus#getLeft() + * @see #getMinus() + * @generated + */ + EReference getMinus_Left(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.stem.model.ctdl.ctdl.Minus#getRight <em>Right</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Right</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.Minus#getRight() + * @see #getMinus() + * @generated + */ + EReference getMinus_Right(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.Multi <em>Multi</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Multi</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.Multi + * @generated + */ + EClass getMulti(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.stem.model.ctdl.ctdl.Multi#getLeft <em>Left</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Left</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.Multi#getLeft() + * @see #getMulti() + * @generated + */ + EReference getMulti_Left(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.stem.model.ctdl.ctdl.Multi#getRight <em>Right</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Right</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.Multi#getRight() + * @see #getMulti() + * @generated + */ + EReference getMulti_Right(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.Div <em>Div</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Div</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.Div + * @generated + */ + EClass getDiv(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.stem.model.ctdl.ctdl.Div#getLeft <em>Left</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Left</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.Div#getLeft() + * @see #getDiv() + * @generated + */ + EReference getDiv_Left(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.stem.model.ctdl.ctdl.Div#getRight <em>Right</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Right</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.Div#getRight() + * @see #getDiv() + * @generated + */ + EReference getDiv_Right(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.PrimaryExpression <em>Primary Expression</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Primary Expression</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.PrimaryExpression + * @generated + */ + EClass getPrimaryExpression(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.ctdl.PrimaryExpression#isNegate <em>Negate</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Negate</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.PrimaryExpression#isNegate() + * @see #getPrimaryExpression() + * @generated + */ + EAttribute getPrimaryExpression_Negate(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.NumberLiteral <em>Number Literal</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Number Literal</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.NumberLiteral + * @generated + */ + EClass getNumberLiteral(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.ctdl.NumberLiteral#getValue <em>Value</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Value</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.NumberLiteral#getValue() + * @see #getNumberLiteral() + * @generated + */ + EAttribute getNumberLiteral_Value(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.FunctionCall <em>Function Call</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Function Call</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.FunctionCall + * @generated + */ + EClass getFunctionCall(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.stem.model.ctdl.ctdl.FunctionCall#getRef <em>Ref</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Ref</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.FunctionCall#getRef() + * @see #getFunctionCall() + * @generated + */ + EReference getFunctionCall_Ref(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.stem.model.ctdl.ctdl.FunctionCall#getArgs <em>Args</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Args</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.FunctionCall#getArgs() + * @see #getFunctionCall() + * @generated + */ + EReference getFunctionCall_Args(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.VariableReference <em>Variable Reference</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Variable Reference</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.VariableReference + * @generated + */ + EClass getVariableReference(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.stem.model.ctdl.ctdl.VariableReference#getRef <em>Ref</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Ref</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.VariableReference#getRef() + * @see #getVariableReference() + * @generated + */ + EReference getVariableReference_Ref(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.BooleanLiteral <em>Boolean Literal</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Boolean Literal</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.BooleanLiteral + * @generated + */ + EClass getBooleanLiteral(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.ctdl.BooleanLiteral#isValue <em>Value</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Value</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.BooleanLiteral#isValue() + * @see #getBooleanLiteral() + * @generated + */ + EAttribute getBooleanLiteral_Value(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.StringLiteral <em>String Literal</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>String Literal</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.StringLiteral + * @generated + */ + EClass getStringLiteral(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.ctdl.ctdl.StringLiteral#getValue <em>Value</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Value</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.StringLiteral#getValue() + * @see #getStringLiteral() + * @generated + */ + EAttribute getStringLiteral_Value(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.ExternalFunctionReference <em>External Function Reference</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>External Function Reference</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.ExternalFunctionReference + * @generated + */ + EClass getExternalFunctionReference(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.stem.model.ctdl.ctdl.ExternalFunctionReference#getFunc <em>Func</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Func</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.ExternalFunctionReference#getFunc() + * @see #getExternalFunctionReference() + * @generated + */ + EReference getExternalFunctionReference_Func(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.GlobalVariableReference <em>Global Variable Reference</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Global Variable Reference</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.GlobalVariableReference + * @generated + */ + EClass getGlobalVariableReference(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.DefStatementReference <em>Def Statement Reference</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Def Statement Reference</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.DefStatementReference + * @generated + */ + EClass getDefStatementReference(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.stem.model.ctdl.ctdl.DefStatementReference#getObj <em>Obj</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Obj</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.DefStatementReference#getObj() + * @see #getDefStatementReference() + * @generated + */ + EReference getDefStatementReference_Obj(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.AbsoluteCompartmentValueReference <em>Absolute Compartment Value Reference</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Absolute Compartment Value Reference</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.AbsoluteCompartmentValueReference + * @generated + */ + EClass getAbsoluteCompartmentValueReference(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.model.ctdl.ctdl.RelativeCompartmentValueReference <em>Relative Compartment Value Reference</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Relative Compartment Value Reference</em>'. + * @see org.eclipse.stem.model.ctdl.ctdl.RelativeCompartmentValueReference + * @generated + */ + EClass getRelativeCompartmentValueReference(); + + /** + * Returns the factory that creates the instances of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the factory that creates the instances of the model. + * @generated + */ + CtdlFactory getCtdlFactory(); + + /** + * <!-- begin-user-doc --> + * Defines literals for the meta objects that represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @generated + */ + interface Literals + { + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.CompartmentTransitionDefinitionsImpl <em>Compartment Transition Definitions</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CompartmentTransitionDefinitionsImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getCompartmentTransitionDefinitions() + * @generated + */ + EClass COMPARTMENT_TRANSITION_DEFINITIONS = eINSTANCE.getCompartmentTransitionDefinitions(); + + /** + * The meta object literal for the '<em><b>Metamodel</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference COMPARTMENT_TRANSITION_DEFINITIONS__METAMODEL = eINSTANCE.getCompartmentTransitionDefinitions_Metamodel(); + + /** + * The meta object literal for the '<em><b>Expression</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference COMPARTMENT_TRANSITION_DEFINITIONS__EXPRESSION = eINSTANCE.getCompartmentTransitionDefinitions_Expression(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.MetamodelResourceImpl <em>Metamodel Resource</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.MetamodelResourceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getMetamodelResource() + * @generated + */ + EClass METAMODEL_RESOURCE = eINSTANCE.getMetamodelResource(); + + /** + * The meta object literal for the '<em><b>Package</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference METAMODEL_RESOURCE__PACKAGE = eINSTANCE.getMetamodelResource_Package(); + + /** + * The meta object literal for the '<em><b>Model</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference METAMODEL_RESOURCE__MODEL = eINSTANCE.getMetamodelResource_Model(); + + /** + * The meta object literal for the '<em><b>Transition</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference METAMODEL_RESOURCE__TRANSITION = eINSTANCE.getMetamodelResource_Transition(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.TransitionBlockImpl <em>Transition Block</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.TransitionBlockImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getTransitionBlock() + * @generated + */ + EClass TRANSITION_BLOCK = eINSTANCE.getTransitionBlock(); + + /** + * The meta object literal for the '<em><b>Block</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference TRANSITION_BLOCK__BLOCK = eINSTANCE.getTransitionBlock_Block(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.BlockImpl <em>Block</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.BlockImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getBlock() + * @generated + */ + EClass BLOCK = eINSTANCE.getBlock(); + + /** + * The meta object literal for the '<em><b>Statements</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference BLOCK__STATEMENTS = eINSTANCE.getBlock_Statements(); + + /** + * The meta object literal for the '<em><b>Ret</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference BLOCK__RET = eINSTANCE.getBlock_Ret(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.DefStatementImpl <em>Def Statement</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.DefStatementImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getDefStatement() + * @generated + */ + EClass DEF_STATEMENT = eINSTANCE.getDefStatement(); + + /** + * The meta object literal for the '<em><b>Varname</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute DEF_STATEMENT__VARNAME = eINSTANCE.getDefStatement_Varname(); + + /** + * The meta object literal for the '<em><b>Expr</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference DEF_STATEMENT__EXPR = eINSTANCE.getDefStatement_Expr(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.ReturnStatementImpl <em>Return Statement</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.ReturnStatementImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getReturnStatement() + * @generated + */ + EClass RETURN_STATEMENT = eINSTANCE.getReturnStatement(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.EvaluationImpl <em>Evaluation</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.EvaluationImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getEvaluation() + * @generated + */ + EClass EVALUATION = eINSTANCE.getEvaluation(); + + /** + * The meta object literal for the '<em><b>Expression</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference EVALUATION__EXPRESSION = eINSTANCE.getEvaluation_Expression(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.ExpressionImpl <em>Expression</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.ExpressionImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getExpression() + * @generated + */ + EClass EXPRESSION = eINSTANCE.getExpression(); + + /** + * The meta object literal for the '<em><b>Exp</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference EXPRESSION__EXP = eINSTANCE.getExpression_Exp(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.FunctionReferenceImpl <em>Function Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.FunctionReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getFunctionReference() + * @generated + */ + EClass FUNCTION_REFERENCE = eINSTANCE.getFunctionReference(); + + /** + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute FUNCTION_REFERENCE__NAME = eINSTANCE.getFunctionReference_Name(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.ScopedVariableReferenceImpl <em>Scoped Variable Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.ScopedVariableReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getScopedVariableReference() + * @generated + */ + EClass SCOPED_VARIABLE_REFERENCE = eINSTANCE.getScopedVariableReference(); + + /** + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute SCOPED_VARIABLE_REFERENCE__NAME = eINSTANCE.getScopedVariableReference_Name(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.LocalVariableReferenceImpl <em>Local Variable Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.LocalVariableReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getLocalVariableReference() + * @generated + */ + EClass LOCAL_VARIABLE_REFERENCE = eINSTANCE.getLocalVariableReference(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.CompartmentReferenceImpl <em>Compartment Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CompartmentReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getCompartmentReference() + * @generated + */ + EClass COMPARTMENT_REFERENCE = eINSTANCE.getCompartmentReference(); + + /** + * The meta object literal for the '<em><b>Obj</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference COMPARTMENT_REFERENCE__OBJ = eINSTANCE.getCompartmentReference_Obj(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.ModelParamReferenceImpl <em>Model Param Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.ModelParamReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getModelParamReference() + * @generated + */ + EClass MODEL_PARAM_REFERENCE = eINSTANCE.getModelParamReference(); + + /** + * The meta object literal for the '<em><b>Obj</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference MODEL_PARAM_REFERENCE__OBJ = eINSTANCE.getModelParamReference_Obj(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.GlobalVariableImpl <em>Global Variable</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.GlobalVariableImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getGlobalVariable() + * @generated + */ + EClass GLOBAL_VARIABLE = eINSTANCE.getGlobalVariable(); + + /** + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute GLOBAL_VARIABLE__NAME = eINSTANCE.getGlobalVariable_Name(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.PlusImpl <em>Plus</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.PlusImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getPlus() + * @generated + */ + EClass PLUS = eINSTANCE.getPlus(); + + /** + * The meta object literal for the '<em><b>Left</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PLUS__LEFT = eINSTANCE.getPlus_Left(); + + /** + * The meta object literal for the '<em><b>Right</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PLUS__RIGHT = eINSTANCE.getPlus_Right(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.MinusImpl <em>Minus</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.MinusImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getMinus() + * @generated + */ + EClass MINUS = eINSTANCE.getMinus(); + + /** + * The meta object literal for the '<em><b>Left</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference MINUS__LEFT = eINSTANCE.getMinus_Left(); + + /** + * The meta object literal for the '<em><b>Right</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference MINUS__RIGHT = eINSTANCE.getMinus_Right(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.MultiImpl <em>Multi</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.MultiImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getMulti() + * @generated + */ + EClass MULTI = eINSTANCE.getMulti(); + + /** + * The meta object literal for the '<em><b>Left</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference MULTI__LEFT = eINSTANCE.getMulti_Left(); + + /** + * The meta object literal for the '<em><b>Right</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference MULTI__RIGHT = eINSTANCE.getMulti_Right(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.DivImpl <em>Div</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.DivImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getDiv() + * @generated + */ + EClass DIV = eINSTANCE.getDiv(); + + /** + * The meta object literal for the '<em><b>Left</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference DIV__LEFT = eINSTANCE.getDiv_Left(); + + /** + * The meta object literal for the '<em><b>Right</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference DIV__RIGHT = eINSTANCE.getDiv_Right(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.PrimaryExpressionImpl <em>Primary Expression</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.PrimaryExpressionImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getPrimaryExpression() + * @generated + */ + EClass PRIMARY_EXPRESSION = eINSTANCE.getPrimaryExpression(); + + /** + * The meta object literal for the '<em><b>Negate</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute PRIMARY_EXPRESSION__NEGATE = eINSTANCE.getPrimaryExpression_Negate(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.NumberLiteralImpl <em>Number Literal</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.NumberLiteralImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getNumberLiteral() + * @generated + */ + EClass NUMBER_LITERAL = eINSTANCE.getNumberLiteral(); + + /** + * The meta object literal for the '<em><b>Value</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute NUMBER_LITERAL__VALUE = eINSTANCE.getNumberLiteral_Value(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.FunctionCallImpl <em>Function Call</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.FunctionCallImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getFunctionCall() + * @generated + */ + EClass FUNCTION_CALL = eINSTANCE.getFunctionCall(); + + /** + * The meta object literal for the '<em><b>Ref</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference FUNCTION_CALL__REF = eINSTANCE.getFunctionCall_Ref(); + + /** + * The meta object literal for the '<em><b>Args</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference FUNCTION_CALL__ARGS = eINSTANCE.getFunctionCall_Args(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.VariableReferenceImpl <em>Variable Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.VariableReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getVariableReference() + * @generated + */ + EClass VARIABLE_REFERENCE = eINSTANCE.getVariableReference(); + + /** + * The meta object literal for the '<em><b>Ref</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference VARIABLE_REFERENCE__REF = eINSTANCE.getVariableReference_Ref(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.BooleanLiteralImpl <em>Boolean Literal</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.BooleanLiteralImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getBooleanLiteral() + * @generated + */ + EClass BOOLEAN_LITERAL = eINSTANCE.getBooleanLiteral(); + + /** + * The meta object literal for the '<em><b>Value</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute BOOLEAN_LITERAL__VALUE = eINSTANCE.getBooleanLiteral_Value(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.StringLiteralImpl <em>String Literal</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.StringLiteralImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getStringLiteral() + * @generated + */ + EClass STRING_LITERAL = eINSTANCE.getStringLiteral(); + + /** + * The meta object literal for the '<em><b>Value</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute STRING_LITERAL__VALUE = eINSTANCE.getStringLiteral_Value(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.ExternalFunctionReferenceImpl <em>External Function Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.ExternalFunctionReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getExternalFunctionReference() + * @generated + */ + EClass EXTERNAL_FUNCTION_REFERENCE = eINSTANCE.getExternalFunctionReference(); + + /** + * The meta object literal for the '<em><b>Func</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference EXTERNAL_FUNCTION_REFERENCE__FUNC = eINSTANCE.getExternalFunctionReference_Func(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.GlobalVariableReferenceImpl <em>Global Variable Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.GlobalVariableReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getGlobalVariableReference() + * @generated + */ + EClass GLOBAL_VARIABLE_REFERENCE = eINSTANCE.getGlobalVariableReference(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.DefStatementReferenceImpl <em>Def Statement Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.DefStatementReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getDefStatementReference() + * @generated + */ + EClass DEF_STATEMENT_REFERENCE = eINSTANCE.getDefStatementReference(); + + /** + * The meta object literal for the '<em><b>Obj</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference DEF_STATEMENT_REFERENCE__OBJ = eINSTANCE.getDefStatementReference_Obj(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.AbsoluteCompartmentValueReferenceImpl <em>Absolute Compartment Value Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.AbsoluteCompartmentValueReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getAbsoluteCompartmentValueReference() + * @generated + */ + EClass ABSOLUTE_COMPARTMENT_VALUE_REFERENCE = eINSTANCE.getAbsoluteCompartmentValueReference(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.model.ctdl.ctdl.impl.RelativeCompartmentValueReferenceImpl <em>Relative Compartment Value Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.impl.RelativeCompartmentValueReferenceImpl + * @see org.eclipse.stem.model.ctdl.ctdl.impl.CtdlPackageImpl#getRelativeCompartmentValueReference() + * @generated + */ + EClass RELATIVE_COMPARTMENT_VALUE_REFERENCE = eINSTANCE.getRelativeCompartmentValueReference(); + + } + +} //CtdlPackage diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/DefStatement.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/DefStatement.java new file mode 100644 index 000000000..3ba3c32c4 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/DefStatement.java @@ -0,0 +1,81 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Def Statement</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.DefStatement#getVarname <em>Varname</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.DefStatement#getExpr <em>Expr</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getDefStatement() + * @model + * @generated + */ +public interface DefStatement extends EObject +{ + /** + * Returns the value of the '<em><b>Varname</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Varname</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Varname</em>' attribute. + * @see #setVarname(String) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getDefStatement_Varname() + * @model + * @generated + */ + String getVarname(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.DefStatement#getVarname <em>Varname</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Varname</em>' attribute. + * @see #getVarname() + * @generated + */ + void setVarname(String value); + + /** + * Returns the value of the '<em><b>Expr</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Expr</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Expr</em>' containment reference. + * @see #setExpr(Evaluation) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getDefStatement_Expr() + * @model containment="true" + * @generated + */ + Evaluation getExpr(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.DefStatement#getExpr <em>Expr</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Expr</em>' containment reference. + * @see #getExpr() + * @generated + */ + void setExpr(Evaluation value); + +} // DefStatement diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/DefStatementReference.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/DefStatementReference.java new file mode 100644 index 000000000..414b53c35 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/DefStatementReference.java @@ -0,0 +1,53 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Def Statement Reference</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.DefStatementReference#getObj <em>Obj</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getDefStatementReference() + * @model + * @generated + */ +public interface DefStatementReference extends LocalVariableReference +{ + /** + * Returns the value of the '<em><b>Obj</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Obj</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Obj</em>' reference. + * @see #setObj(DefStatement) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getDefStatementReference_Obj() + * @model + * @generated + */ + DefStatement getObj(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.DefStatementReference#getObj <em>Obj</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Obj</em>' reference. + * @see #getObj() + * @generated + */ + void setObj(DefStatement value); + +} // DefStatementReference diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Div.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Div.java new file mode 100644 index 000000000..2ad4b5a60 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Div.java @@ -0,0 +1,80 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Div</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.Div#getLeft <em>Left</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.Div#getRight <em>Right</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getDiv() + * @model + * @generated + */ +public interface Div extends Expression +{ + /** + * Returns the value of the '<em><b>Left</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Left</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Left</em>' containment reference. + * @see #setLeft(Expression) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getDiv_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.Div#getLeft <em>Left</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Left</em>' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the '<em><b>Right</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Right</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Right</em>' containment reference. + * @see #setRight(Expression) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getDiv_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.Div#getRight <em>Right</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Right</em>' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // Div diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Evaluation.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Evaluation.java new file mode 100644 index 000000000..97ef35c8a --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Evaluation.java @@ -0,0 +1,53 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Evaluation</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.Evaluation#getExpression <em>Expression</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getEvaluation() + * @model + * @generated + */ +public interface Evaluation extends ReturnStatement +{ + /** + * Returns the value of the '<em><b>Expression</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Expression</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Expression</em>' containment reference. + * @see #setExpression(Expression) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getEvaluation_Expression() + * @model containment="true" + * @generated + */ + Expression getExpression(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.Evaluation#getExpression <em>Expression</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Expression</em>' containment reference. + * @see #getExpression() + * @generated + */ + void setExpression(Expression value); + +} // Evaluation diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Expression.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Expression.java new file mode 100644 index 000000000..975958a57 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Expression.java @@ -0,0 +1,54 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Expression</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.Expression#getExp <em>Exp</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getExpression() + * @model + * @generated + */ +public interface Expression extends EObject +{ + /** + * Returns the value of the '<em><b>Exp</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Exp</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Exp</em>' containment reference. + * @see #setExp(Expression) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getExpression_Exp() + * @model containment="true" + * @generated + */ + Expression getExp(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.Expression#getExp <em>Exp</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Exp</em>' containment reference. + * @see #getExp() + * @generated + */ + void setExp(Expression value); + +} // Expression diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/ExternalFunctionReference.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/ExternalFunctionReference.java new file mode 100644 index 000000000..7c801a1ff --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/ExternalFunctionReference.java @@ -0,0 +1,54 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>External Function Reference</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.ExternalFunctionReference#getFunc <em>Func</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getExternalFunctionReference() + * @model + * @generated + */ +public interface ExternalFunctionReference extends FunctionReference +{ + /** + * Returns the value of the '<em><b>Func</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Func</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Func</em>' reference. + * @see #setFunc(ExternalFunctionDefinition) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getExternalFunctionReference_Func() + * @model + * @generated + */ + ExternalFunctionDefinition getFunc(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.ExternalFunctionReference#getFunc <em>Func</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Func</em>' reference. + * @see #getFunc() + * @generated + */ + void setFunc(ExternalFunctionDefinition value); + +} // ExternalFunctionReference diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/FunctionCall.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/FunctionCall.java new file mode 100644 index 000000000..94d23efdb --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/FunctionCall.java @@ -0,0 +1,71 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + +import org.eclipse.emf.common.util.EList; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Function Call</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.FunctionCall#getRef <em>Ref</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.FunctionCall#getArgs <em>Args</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getFunctionCall() + * @model + * @generated + */ +public interface FunctionCall extends Expression +{ + /** + * Returns the value of the '<em><b>Ref</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Ref</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Ref</em>' reference. + * @see #setRef(FunctionReference) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getFunctionCall_Ref() + * @model + * @generated + */ + FunctionReference getRef(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.FunctionCall#getRef <em>Ref</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Ref</em>' reference. + * @see #getRef() + * @generated + */ + void setRef(FunctionReference value); + + /** + * Returns the value of the '<em><b>Args</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.stem.model.ctdl.ctdl.Expression}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Args</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Args</em>' containment reference list. + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getFunctionCall_Args() + * @model containment="true" + * @generated + */ + EList<Expression> getArgs(); + +} // FunctionCall diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/FunctionReference.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/FunctionReference.java new file mode 100644 index 000000000..c1bb80402 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/FunctionReference.java @@ -0,0 +1,54 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Function Reference</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.FunctionReference#getName <em>Name</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getFunctionReference() + * @model + * @generated + */ +public interface FunctionReference extends EObject +{ + /** + * Returns the value of the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Name</em>' attribute. + * @see #setName(String) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getFunctionReference_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.FunctionReference#getName <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Name</em>' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + +} // FunctionReference diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/GlobalVariable.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/GlobalVariable.java new file mode 100644 index 000000000..5721801b4 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/GlobalVariable.java @@ -0,0 +1,54 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Global Variable</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.GlobalVariable#getName <em>Name</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getGlobalVariable() + * @model + * @generated + */ +public interface GlobalVariable extends EObject +{ + /** + * Returns the value of the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Name</em>' attribute. + * @see #setName(String) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getGlobalVariable_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.GlobalVariable#getName <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Name</em>' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + +} // GlobalVariable diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/GlobalVariableReference.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/GlobalVariableReference.java new file mode 100644 index 000000000..6b7bfc14d --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/GlobalVariableReference.java @@ -0,0 +1,21 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Global Variable Reference</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getGlobalVariableReference() + * @model + * @generated + */ +public interface GlobalVariableReference extends ScopedVariableReference +{ +} // GlobalVariableReference diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/LocalVariableReference.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/LocalVariableReference.java new file mode 100644 index 000000000..4b887ff64 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/LocalVariableReference.java @@ -0,0 +1,21 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Local Variable Reference</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getLocalVariableReference() + * @model + * @generated + */ +public interface LocalVariableReference extends ScopedVariableReference +{ +} // LocalVariableReference diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/MetamodelResource.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/MetamodelResource.java new file mode 100644 index 000000000..f13b4a043 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/MetamodelResource.java @@ -0,0 +1,110 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.stem.model.metamodel.Model; +import org.eclipse.stem.model.metamodel.Transition; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Metamodel Resource</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.MetamodelResource#getPackage <em>Package</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.MetamodelResource#getModel <em>Model</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.MetamodelResource#getTransition <em>Transition</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getMetamodelResource() + * @model + * @generated + */ +public interface MetamodelResource extends EObject +{ + /** + * Returns the value of the '<em><b>Package</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Package</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Package</em>' reference. + * @see #setPackage(org.eclipse.stem.model.metamodel.Package) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getMetamodelResource_Package() + * @model + * @generated + */ + org.eclipse.stem.model.metamodel.Package getPackage(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.MetamodelResource#getPackage <em>Package</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Package</em>' reference. + * @see #getPackage() + * @generated + */ + void setPackage(org.eclipse.stem.model.metamodel.Package value); + + /** + * Returns the value of the '<em><b>Model</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Model</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Model</em>' reference. + * @see #setModel(Model) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getMetamodelResource_Model() + * @model + * @generated + */ + Model getModel(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.MetamodelResource#getModel <em>Model</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Model</em>' reference. + * @see #getModel() + * @generated + */ + void setModel(Model value); + + /** + * Returns the value of the '<em><b>Transition</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Transition</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Transition</em>' reference. + * @see #setTransition(Transition) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getMetamodelResource_Transition() + * @model + * @generated + */ + Transition getTransition(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.MetamodelResource#getTransition <em>Transition</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Transition</em>' reference. + * @see #getTransition() + * @generated + */ + void setTransition(Transition value); + +} // MetamodelResource diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Minus.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Minus.java new file mode 100644 index 000000000..5e0034f4b --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Minus.java @@ -0,0 +1,80 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Minus</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.Minus#getLeft <em>Left</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.Minus#getRight <em>Right</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getMinus() + * @model + * @generated + */ +public interface Minus extends Expression +{ + /** + * Returns the value of the '<em><b>Left</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Left</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Left</em>' containment reference. + * @see #setLeft(Expression) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getMinus_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.Minus#getLeft <em>Left</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Left</em>' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the '<em><b>Right</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Right</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Right</em>' containment reference. + * @see #setRight(Expression) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getMinus_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.Minus#getRight <em>Right</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Right</em>' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // Minus diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/ModelParamReference.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/ModelParamReference.java new file mode 100644 index 000000000..4f36915cc --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/ModelParamReference.java @@ -0,0 +1,54 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + +import org.eclipse.stem.model.metamodel.ModelParam; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Model Param Reference</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.ModelParamReference#getObj <em>Obj</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getModelParamReference() + * @model + * @generated + */ +public interface ModelParamReference extends ScopedVariableReference +{ + /** + * Returns the value of the '<em><b>Obj</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Obj</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Obj</em>' reference. + * @see #setObj(ModelParam) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getModelParamReference_Obj() + * @model + * @generated + */ + ModelParam getObj(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.ModelParamReference#getObj <em>Obj</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Obj</em>' reference. + * @see #getObj() + * @generated + */ + void setObj(ModelParam value); + +} // ModelParamReference diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Multi.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Multi.java new file mode 100644 index 000000000..4e40a9d46 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Multi.java @@ -0,0 +1,80 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Multi</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.Multi#getLeft <em>Left</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.Multi#getRight <em>Right</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getMulti() + * @model + * @generated + */ +public interface Multi extends Expression +{ + /** + * Returns the value of the '<em><b>Left</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Left</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Left</em>' containment reference. + * @see #setLeft(Expression) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getMulti_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.Multi#getLeft <em>Left</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Left</em>' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the '<em><b>Right</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Right</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Right</em>' containment reference. + * @see #setRight(Expression) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getMulti_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.Multi#getRight <em>Right</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Right</em>' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // Multi diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/NumberLiteral.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/NumberLiteral.java new file mode 100644 index 000000000..62d443a30 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/NumberLiteral.java @@ -0,0 +1,53 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Number Literal</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.NumberLiteral#getValue <em>Value</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getNumberLiteral() + * @model + * @generated + */ +public interface NumberLiteral extends Expression +{ + /** + * Returns the value of the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Value</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Value</em>' attribute. + * @see #setValue(double) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getNumberLiteral_Value() + * @model + * @generated + */ + double getValue(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.NumberLiteral#getValue <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Value</em>' attribute. + * @see #getValue() + * @generated + */ + void setValue(double value); + +} // NumberLiteral diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Plus.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Plus.java new file mode 100644 index 000000000..e65d6460e --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/Plus.java @@ -0,0 +1,80 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Plus</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.Plus#getLeft <em>Left</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.Plus#getRight <em>Right</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getPlus() + * @model + * @generated + */ +public interface Plus extends Expression +{ + /** + * Returns the value of the '<em><b>Left</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Left</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Left</em>' containment reference. + * @see #setLeft(Expression) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getPlus_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.Plus#getLeft <em>Left</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Left</em>' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the '<em><b>Right</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Right</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Right</em>' containment reference. + * @see #setRight(Expression) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getPlus_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.Plus#getRight <em>Right</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Right</em>' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // Plus diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/PrimaryExpression.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/PrimaryExpression.java new file mode 100644 index 000000000..c0a5480d4 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/PrimaryExpression.java @@ -0,0 +1,53 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Primary Expression</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.PrimaryExpression#isNegate <em>Negate</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getPrimaryExpression() + * @model + * @generated + */ +public interface PrimaryExpression extends Expression +{ + /** + * Returns the value of the '<em><b>Negate</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Negate</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Negate</em>' attribute. + * @see #setNegate(boolean) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getPrimaryExpression_Negate() + * @model + * @generated + */ + boolean isNegate(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.PrimaryExpression#isNegate <em>Negate</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Negate</em>' attribute. + * @see #isNegate() + * @generated + */ + void setNegate(boolean value); + +} // PrimaryExpression diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/RelativeCompartmentValueReference.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/RelativeCompartmentValueReference.java new file mode 100644 index 000000000..10036ccd3 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/RelativeCompartmentValueReference.java @@ -0,0 +1,21 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Relative Compartment Value Reference</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getRelativeCompartmentValueReference() + * @model + * @generated + */ +public interface RelativeCompartmentValueReference extends CompartmentReference +{ +} // RelativeCompartmentValueReference diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/ReturnStatement.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/ReturnStatement.java new file mode 100644 index 000000000..5414e344b --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/ReturnStatement.java @@ -0,0 +1,22 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Return Statement</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getReturnStatement() + * @model + * @generated + */ +public interface ReturnStatement extends EObject +{ +} // ReturnStatement diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/ScopedVariableReference.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/ScopedVariableReference.java new file mode 100644 index 000000000..09e128bd2 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/ScopedVariableReference.java @@ -0,0 +1,54 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Scoped Variable Reference</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.ScopedVariableReference#getName <em>Name</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getScopedVariableReference() + * @model + * @generated + */ +public interface ScopedVariableReference extends EObject +{ + /** + * Returns the value of the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Name</em>' attribute. + * @see #setName(String) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getScopedVariableReference_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.ScopedVariableReference#getName <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Name</em>' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + +} // ScopedVariableReference diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/StringLiteral.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/StringLiteral.java new file mode 100644 index 000000000..b95898f77 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/StringLiteral.java @@ -0,0 +1,53 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>String Literal</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.StringLiteral#getValue <em>Value</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getStringLiteral() + * @model + * @generated + */ +public interface StringLiteral extends Expression +{ + /** + * Returns the value of the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Value</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Value</em>' attribute. + * @see #setValue(String) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getStringLiteral_Value() + * @model + * @generated + */ + String getValue(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.StringLiteral#getValue <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Value</em>' attribute. + * @see #getValue() + * @generated + */ + void setValue(String value); + +} // StringLiteral diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/TransitionBlock.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/TransitionBlock.java new file mode 100644 index 000000000..82edeb9ac --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/TransitionBlock.java @@ -0,0 +1,54 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Transition Block</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.TransitionBlock#getBlock <em>Block</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getTransitionBlock() + * @model + * @generated + */ +public interface TransitionBlock extends EObject +{ + /** + * Returns the value of the '<em><b>Block</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Block</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Block</em>' containment reference. + * @see #setBlock(Block) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getTransitionBlock_Block() + * @model containment="true" + * @generated + */ + Block getBlock(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.TransitionBlock#getBlock <em>Block</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Block</em>' containment reference. + * @see #getBlock() + * @generated + */ + void setBlock(Block value); + +} // TransitionBlock diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/VariableReference.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/VariableReference.java new file mode 100644 index 000000000..12f74ad41 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/VariableReference.java @@ -0,0 +1,53 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Variable Reference</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.VariableReference#getRef <em>Ref</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getVariableReference() + * @model + * @generated + */ +public interface VariableReference extends Expression +{ + /** + * Returns the value of the '<em><b>Ref</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Ref</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Ref</em>' reference. + * @see #setRef(ScopedVariableReference) + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#getVariableReference_Ref() + * @model + * @generated + */ + ScopedVariableReference getRef(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.ctdl.ctdl.VariableReference#getRef <em>Ref</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Ref</em>' reference. + * @see #getRef() + * @generated + */ + void setRef(ScopedVariableReference value); + +} // VariableReference diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/AbsoluteCompartmentValueReferenceImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/AbsoluteCompartmentValueReferenceImpl.java new file mode 100644 index 000000000..eb4181a05 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/AbsoluteCompartmentValueReferenceImpl.java @@ -0,0 +1,44 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.stem.model.ctdl.ctdl.AbsoluteCompartmentValueReference; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Absolute Compartment Value Reference</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public class AbsoluteCompartmentValueReferenceImpl extends CompartmentReferenceImpl implements AbsoluteCompartmentValueReference +{ + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected AbsoluteCompartmentValueReferenceImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.ABSOLUTE_COMPARTMENT_VALUE_REFERENCE; + } + +} //AbsoluteCompartmentValueReferenceImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/BlockImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/BlockImpl.java new file mode 100644 index 000000000..b65bc5947 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/BlockImpl.java @@ -0,0 +1,239 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; +import org.eclipse.stem.model.ctdl.ctdl.Block; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.DefStatement; +import org.eclipse.stem.model.ctdl.ctdl.ReturnStatement; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Block</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.BlockImpl#getStatements <em>Statements</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.BlockImpl#getRet <em>Ret</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class BlockImpl extends MinimalEObjectImpl.Container implements Block +{ + /** + * The cached value of the '{@link #getStatements() <em>Statements</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getStatements() + * @generated + * @ordered + */ + protected EList<DefStatement> statements; + + /** + * The cached value of the '{@link #getRet() <em>Ret</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRet() + * @generated + * @ordered + */ + protected ReturnStatement ret; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected BlockImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.BLOCK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<DefStatement> getStatements() + { + if (statements == null) + { + statements = new EObjectContainmentEList<DefStatement>(DefStatement.class, this, CtdlPackage.BLOCK__STATEMENTS); + } + return statements; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ReturnStatement getRet() + { + return ret; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetRet(ReturnStatement newRet, NotificationChain msgs) + { + ReturnStatement oldRet = ret; + ret = newRet; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CtdlPackage.BLOCK__RET, oldRet, newRet); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setRet(ReturnStatement newRet) + { + if (newRet != ret) + { + NotificationChain msgs = null; + if (ret != null) + msgs = ((InternalEObject)ret).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.BLOCK__RET, null, msgs); + if (newRet != null) + msgs = ((InternalEObject)newRet).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.BLOCK__RET, null, msgs); + msgs = basicSetRet(newRet, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.BLOCK__RET, newRet, newRet)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case CtdlPackage.BLOCK__STATEMENTS: + return ((InternalEList<?>)getStatements()).basicRemove(otherEnd, msgs); + case CtdlPackage.BLOCK__RET: + return basicSetRet(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.BLOCK__STATEMENTS: + return getStatements(); + case CtdlPackage.BLOCK__RET: + return getRet(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.BLOCK__STATEMENTS: + getStatements().clear(); + getStatements().addAll((Collection<? extends DefStatement>)newValue); + return; + case CtdlPackage.BLOCK__RET: + setRet((ReturnStatement)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.BLOCK__STATEMENTS: + getStatements().clear(); + return; + case CtdlPackage.BLOCK__RET: + setRet((ReturnStatement)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.BLOCK__STATEMENTS: + return statements != null && !statements.isEmpty(); + case CtdlPackage.BLOCK__RET: + return ret != null; + } + return super.eIsSet(featureID); + } + +} //BlockImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/BooleanLiteralImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/BooleanLiteralImpl.java new file mode 100644 index 000000000..d173d2f6e --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/BooleanLiteralImpl.java @@ -0,0 +1,176 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.stem.model.ctdl.ctdl.BooleanLiteral; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Boolean Literal</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.BooleanLiteralImpl#isValue <em>Value</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class BooleanLiteralImpl extends ExpressionImpl implements BooleanLiteral +{ + /** + * The default value of the '{@link #isValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isValue() + * @generated + * @ordered + */ + protected static final boolean VALUE_EDEFAULT = false; + + /** + * The cached value of the '{@link #isValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isValue() + * @generated + * @ordered + */ + protected boolean value = VALUE_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected BooleanLiteralImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.BOOLEAN_LITERAL; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isValue() + { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setValue(boolean newValue) + { + boolean oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.BOOLEAN_LITERAL__VALUE, oldValue, value)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.BOOLEAN_LITERAL__VALUE: + return isValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.BOOLEAN_LITERAL__VALUE: + setValue((Boolean)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.BOOLEAN_LITERAL__VALUE: + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.BOOLEAN_LITERAL__VALUE: + return value != VALUE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (value: "); + result.append(value); + result.append(')'); + return result.toString(); + } + +} //BooleanLiteralImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/CompartmentReferenceImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/CompartmentReferenceImpl.java new file mode 100644 index 000000000..6ad94f8e4 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/CompartmentReferenceImpl.java @@ -0,0 +1,172 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.stem.model.ctdl.ctdl.CompartmentReference; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.metamodel.Compartment; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Compartment Reference</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.CompartmentReferenceImpl#getObj <em>Obj</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class CompartmentReferenceImpl extends ScopedVariableReferenceImpl implements CompartmentReference +{ + /** + * The cached value of the '{@link #getObj() <em>Obj</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getObj() + * @generated + * @ordered + */ + protected Compartment obj; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected CompartmentReferenceImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.COMPARTMENT_REFERENCE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Compartment getObj() + { + if (obj != null && obj.eIsProxy()) + { + InternalEObject oldObj = (InternalEObject)obj; + obj = (Compartment)eResolveProxy(oldObj); + if (obj != oldObj) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, CtdlPackage.COMPARTMENT_REFERENCE__OBJ, oldObj, obj)); + } + } + return obj; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Compartment basicGetObj() + { + return obj; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setObj(Compartment newObj) + { + Compartment oldObj = obj; + obj = newObj; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.COMPARTMENT_REFERENCE__OBJ, oldObj, obj)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.COMPARTMENT_REFERENCE__OBJ: + if (resolve) return getObj(); + return basicGetObj(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.COMPARTMENT_REFERENCE__OBJ: + setObj((Compartment)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.COMPARTMENT_REFERENCE__OBJ: + setObj((Compartment)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.COMPARTMENT_REFERENCE__OBJ: + return obj != null; + } + return super.eIsSet(featureID); + } + +} //CompartmentReferenceImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/CompartmentTransitionDefinitionsImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/CompartmentTransitionDefinitionsImpl.java new file mode 100644 index 000000000..d65f53e49 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/CompartmentTransitionDefinitionsImpl.java @@ -0,0 +1,260 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.MetamodelResource; +import org.eclipse.stem.model.ctdl.ctdl.TransitionBlock; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Compartment Transition Definitions</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.CompartmentTransitionDefinitionsImpl#getMetamodel <em>Metamodel</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.CompartmentTransitionDefinitionsImpl#getExpression <em>Expression</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class CompartmentTransitionDefinitionsImpl extends MinimalEObjectImpl.Container implements CompartmentTransitionDefinitions +{ + /** + * The cached value of the '{@link #getMetamodel() <em>Metamodel</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMetamodel() + * @generated + * @ordered + */ + protected MetamodelResource metamodel; + + /** + * The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getExpression() + * @generated + * @ordered + */ + protected TransitionBlock expression; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected CompartmentTransitionDefinitionsImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.COMPARTMENT_TRANSITION_DEFINITIONS; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public MetamodelResource getMetamodel() + { + if (metamodel != null && metamodel.eIsProxy()) + { + InternalEObject oldMetamodel = (InternalEObject)metamodel; + metamodel = (MetamodelResource)eResolveProxy(oldMetamodel); + if (metamodel != oldMetamodel) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, CtdlPackage.COMPARTMENT_TRANSITION_DEFINITIONS__METAMODEL, oldMetamodel, metamodel)); + } + } + return metamodel; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public MetamodelResource basicGetMetamodel() + { + return metamodel; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setMetamodel(MetamodelResource newMetamodel) + { + MetamodelResource oldMetamodel = metamodel; + metamodel = newMetamodel; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.COMPARTMENT_TRANSITION_DEFINITIONS__METAMODEL, oldMetamodel, metamodel)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TransitionBlock getExpression() + { + return expression; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetExpression(TransitionBlock newExpression, NotificationChain msgs) + { + TransitionBlock oldExpression = expression; + expression = newExpression; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CtdlPackage.COMPARTMENT_TRANSITION_DEFINITIONS__EXPRESSION, oldExpression, newExpression); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setExpression(TransitionBlock newExpression) + { + if (newExpression != expression) + { + NotificationChain msgs = null; + if (expression != null) + msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.COMPARTMENT_TRANSITION_DEFINITIONS__EXPRESSION, null, msgs); + if (newExpression != null) + msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.COMPARTMENT_TRANSITION_DEFINITIONS__EXPRESSION, null, msgs); + msgs = basicSetExpression(newExpression, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.COMPARTMENT_TRANSITION_DEFINITIONS__EXPRESSION, newExpression, newExpression)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case CtdlPackage.COMPARTMENT_TRANSITION_DEFINITIONS__EXPRESSION: + return basicSetExpression(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.COMPARTMENT_TRANSITION_DEFINITIONS__METAMODEL: + if (resolve) return getMetamodel(); + return basicGetMetamodel(); + case CtdlPackage.COMPARTMENT_TRANSITION_DEFINITIONS__EXPRESSION: + return getExpression(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.COMPARTMENT_TRANSITION_DEFINITIONS__METAMODEL: + setMetamodel((MetamodelResource)newValue); + return; + case CtdlPackage.COMPARTMENT_TRANSITION_DEFINITIONS__EXPRESSION: + setExpression((TransitionBlock)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.COMPARTMENT_TRANSITION_DEFINITIONS__METAMODEL: + setMetamodel((MetamodelResource)null); + return; + case CtdlPackage.COMPARTMENT_TRANSITION_DEFINITIONS__EXPRESSION: + setExpression((TransitionBlock)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.COMPARTMENT_TRANSITION_DEFINITIONS__METAMODEL: + return metamodel != null; + case CtdlPackage.COMPARTMENT_TRANSITION_DEFINITIONS__EXPRESSION: + return expression != null; + } + return super.eIsSet(featureID); + } + +} //CompartmentTransitionDefinitionsImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/CtdlFactoryImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/CtdlFactoryImpl.java new file mode 100644 index 000000000..34796787c --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/CtdlFactoryImpl.java @@ -0,0 +1,472 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.impl.EFactoryImpl; +import org.eclipse.emf.ecore.plugin.EcorePlugin; +import org.eclipse.stem.model.ctdl.ctdl.AbsoluteCompartmentValueReference; +import org.eclipse.stem.model.ctdl.ctdl.Block; +import org.eclipse.stem.model.ctdl.ctdl.BooleanLiteral; +import org.eclipse.stem.model.ctdl.ctdl.CompartmentReference; +import org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions; +import org.eclipse.stem.model.ctdl.ctdl.CtdlFactory; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.DefStatement; +import org.eclipse.stem.model.ctdl.ctdl.DefStatementReference; +import org.eclipse.stem.model.ctdl.ctdl.Div; +import org.eclipse.stem.model.ctdl.ctdl.Evaluation; +import org.eclipse.stem.model.ctdl.ctdl.Expression; +import org.eclipse.stem.model.ctdl.ctdl.ExternalFunctionReference; +import org.eclipse.stem.model.ctdl.ctdl.FunctionCall; +import org.eclipse.stem.model.ctdl.ctdl.FunctionReference; +import org.eclipse.stem.model.ctdl.ctdl.GlobalVariable; +import org.eclipse.stem.model.ctdl.ctdl.GlobalVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.LocalVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.MetamodelResource; +import org.eclipse.stem.model.ctdl.ctdl.Minus; +import org.eclipse.stem.model.ctdl.ctdl.ModelParamReference; +import org.eclipse.stem.model.ctdl.ctdl.Multi; +import org.eclipse.stem.model.ctdl.ctdl.NumberLiteral; +import org.eclipse.stem.model.ctdl.ctdl.Plus; +import org.eclipse.stem.model.ctdl.ctdl.PrimaryExpression; +import org.eclipse.stem.model.ctdl.ctdl.RelativeCompartmentValueReference; +import org.eclipse.stem.model.ctdl.ctdl.ReturnStatement; +import org.eclipse.stem.model.ctdl.ctdl.ScopedVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.StringLiteral; +import org.eclipse.stem.model.ctdl.ctdl.TransitionBlock; +import org.eclipse.stem.model.ctdl.ctdl.VariableReference; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Factory</b>. + * <!-- end-user-doc --> + * @generated + */ +public class CtdlFactoryImpl extends EFactoryImpl implements CtdlFactory +{ + /** + * Creates the default factory implementation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static CtdlFactory init() + { + try + { + CtdlFactory theCtdlFactory = (CtdlFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/stem/model/ctdl.ecore"); + if (theCtdlFactory != null) + { + return theCtdlFactory; + } + } + catch (Exception exception) + { + EcorePlugin.INSTANCE.log(exception); + } + return new CtdlFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CtdlFactoryImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EObject create(EClass eClass) + { + switch (eClass.getClassifierID()) + { + case CtdlPackage.COMPARTMENT_TRANSITION_DEFINITIONS: return createCompartmentTransitionDefinitions(); + case CtdlPackage.METAMODEL_RESOURCE: return createMetamodelResource(); + case CtdlPackage.TRANSITION_BLOCK: return createTransitionBlock(); + case CtdlPackage.BLOCK: return createBlock(); + case CtdlPackage.DEF_STATEMENT: return createDefStatement(); + case CtdlPackage.RETURN_STATEMENT: return createReturnStatement(); + case CtdlPackage.EVALUATION: return createEvaluation(); + case CtdlPackage.EXPRESSION: return createExpression(); + case CtdlPackage.FUNCTION_REFERENCE: return createFunctionReference(); + case CtdlPackage.SCOPED_VARIABLE_REFERENCE: return createScopedVariableReference(); + case CtdlPackage.LOCAL_VARIABLE_REFERENCE: return createLocalVariableReference(); + case CtdlPackage.COMPARTMENT_REFERENCE: return createCompartmentReference(); + case CtdlPackage.MODEL_PARAM_REFERENCE: return createModelParamReference(); + case CtdlPackage.GLOBAL_VARIABLE: return createGlobalVariable(); + case CtdlPackage.PLUS: return createPlus(); + case CtdlPackage.MINUS: return createMinus(); + case CtdlPackage.MULTI: return createMulti(); + case CtdlPackage.DIV: return createDiv(); + case CtdlPackage.PRIMARY_EXPRESSION: return createPrimaryExpression(); + case CtdlPackage.NUMBER_LITERAL: return createNumberLiteral(); + case CtdlPackage.FUNCTION_CALL: return createFunctionCall(); + case CtdlPackage.VARIABLE_REFERENCE: return createVariableReference(); + case CtdlPackage.BOOLEAN_LITERAL: return createBooleanLiteral(); + case CtdlPackage.STRING_LITERAL: return createStringLiteral(); + case CtdlPackage.EXTERNAL_FUNCTION_REFERENCE: return createExternalFunctionReference(); + case CtdlPackage.GLOBAL_VARIABLE_REFERENCE: return createGlobalVariableReference(); + case CtdlPackage.DEF_STATEMENT_REFERENCE: return createDefStatementReference(); + case CtdlPackage.ABSOLUTE_COMPARTMENT_VALUE_REFERENCE: return createAbsoluteCompartmentValueReference(); + case CtdlPackage.RELATIVE_COMPARTMENT_VALUE_REFERENCE: return createRelativeCompartmentValueReference(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CompartmentTransitionDefinitions createCompartmentTransitionDefinitions() + { + CompartmentTransitionDefinitionsImpl compartmentTransitionDefinitions = new CompartmentTransitionDefinitionsImpl(); + return compartmentTransitionDefinitions; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public MetamodelResource createMetamodelResource() + { + MetamodelResourceImpl metamodelResource = new MetamodelResourceImpl(); + return metamodelResource; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TransitionBlock createTransitionBlock() + { + TransitionBlockImpl transitionBlock = new TransitionBlockImpl(); + return transitionBlock; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Block createBlock() + { + BlockImpl block = new BlockImpl(); + return block; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public DefStatement createDefStatement() + { + DefStatementImpl defStatement = new DefStatementImpl(); + return defStatement; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ReturnStatement createReturnStatement() + { + ReturnStatementImpl returnStatement = new ReturnStatementImpl(); + return returnStatement; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Evaluation createEvaluation() + { + EvaluationImpl evaluation = new EvaluationImpl(); + return evaluation; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Expression createExpression() + { + ExpressionImpl expression = new ExpressionImpl(); + return expression; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FunctionReference createFunctionReference() + { + FunctionReferenceImpl functionReference = new FunctionReferenceImpl(); + return functionReference; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ScopedVariableReference createScopedVariableReference() + { + ScopedVariableReferenceImpl scopedVariableReference = new ScopedVariableReferenceImpl(); + return scopedVariableReference; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public LocalVariableReference createLocalVariableReference() + { + LocalVariableReferenceImpl localVariableReference = new LocalVariableReferenceImpl(); + return localVariableReference; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CompartmentReference createCompartmentReference() + { + CompartmentReferenceImpl compartmentReference = new CompartmentReferenceImpl(); + return compartmentReference; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ModelParamReference createModelParamReference() + { + ModelParamReferenceImpl modelParamReference = new ModelParamReferenceImpl(); + return modelParamReference; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public GlobalVariable createGlobalVariable() + { + GlobalVariableImpl globalVariable = new GlobalVariableImpl(); + return globalVariable; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Plus createPlus() + { + PlusImpl plus = new PlusImpl(); + return plus; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Minus createMinus() + { + MinusImpl minus = new MinusImpl(); + return minus; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Multi createMulti() + { + MultiImpl multi = new MultiImpl(); + return multi; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Div createDiv() + { + DivImpl div = new DivImpl(); + return div; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PrimaryExpression createPrimaryExpression() + { + PrimaryExpressionImpl primaryExpression = new PrimaryExpressionImpl(); + return primaryExpression; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NumberLiteral createNumberLiteral() + { + NumberLiteralImpl numberLiteral = new NumberLiteralImpl(); + return numberLiteral; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FunctionCall createFunctionCall() + { + FunctionCallImpl functionCall = new FunctionCallImpl(); + return functionCall; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public VariableReference createVariableReference() + { + VariableReferenceImpl variableReference = new VariableReferenceImpl(); + return variableReference; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public BooleanLiteral createBooleanLiteral() + { + BooleanLiteralImpl booleanLiteral = new BooleanLiteralImpl(); + return booleanLiteral; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public StringLiteral createStringLiteral() + { + StringLiteralImpl stringLiteral = new StringLiteralImpl(); + return stringLiteral; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExternalFunctionReference createExternalFunctionReference() + { + ExternalFunctionReferenceImpl externalFunctionReference = new ExternalFunctionReferenceImpl(); + return externalFunctionReference; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public GlobalVariableReference createGlobalVariableReference() + { + GlobalVariableReferenceImpl globalVariableReference = new GlobalVariableReferenceImpl(); + return globalVariableReference; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public DefStatementReference createDefStatementReference() + { + DefStatementReferenceImpl defStatementReference = new DefStatementReferenceImpl(); + return defStatementReference; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public AbsoluteCompartmentValueReference createAbsoluteCompartmentValueReference() + { + AbsoluteCompartmentValueReferenceImpl absoluteCompartmentValueReference = new AbsoluteCompartmentValueReferenceImpl(); + return absoluteCompartmentValueReference; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public RelativeCompartmentValueReference createRelativeCompartmentValueReference() + { + RelativeCompartmentValueReferenceImpl relativeCompartmentValueReference = new RelativeCompartmentValueReferenceImpl(); + return relativeCompartmentValueReference; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CtdlPackage getCtdlPackage() + { + return (CtdlPackage)getEPackage(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @deprecated + * @generated + */ + @Deprecated + public static CtdlPackage getPackage() + { + return CtdlPackage.eINSTANCE; + } + +} //CtdlFactoryImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/CtdlPackageImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/CtdlPackageImpl.java new file mode 100644 index 000000000..e3e070765 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/CtdlPackageImpl.java @@ -0,0 +1,1228 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.impl.EPackageImpl; +import org.eclipse.stem.model.ctdl.ctdl.AbsoluteCompartmentValueReference; +import org.eclipse.stem.model.ctdl.ctdl.Block; +import org.eclipse.stem.model.ctdl.ctdl.BooleanLiteral; +import org.eclipse.stem.model.ctdl.ctdl.CompartmentReference; +import org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions; +import org.eclipse.stem.model.ctdl.ctdl.CtdlFactory; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.DefStatement; +import org.eclipse.stem.model.ctdl.ctdl.DefStatementReference; +import org.eclipse.stem.model.ctdl.ctdl.Div; +import org.eclipse.stem.model.ctdl.ctdl.Evaluation; +import org.eclipse.stem.model.ctdl.ctdl.Expression; +import org.eclipse.stem.model.ctdl.ctdl.ExternalFunctionReference; +import org.eclipse.stem.model.ctdl.ctdl.FunctionCall; +import org.eclipse.stem.model.ctdl.ctdl.FunctionReference; +import org.eclipse.stem.model.ctdl.ctdl.GlobalVariable; +import org.eclipse.stem.model.ctdl.ctdl.GlobalVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.LocalVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.MetamodelResource; +import org.eclipse.stem.model.ctdl.ctdl.Minus; +import org.eclipse.stem.model.ctdl.ctdl.ModelParamReference; +import org.eclipse.stem.model.ctdl.ctdl.Multi; +import org.eclipse.stem.model.ctdl.ctdl.NumberLiteral; +import org.eclipse.stem.model.ctdl.ctdl.Plus; +import org.eclipse.stem.model.ctdl.ctdl.PrimaryExpression; +import org.eclipse.stem.model.ctdl.ctdl.RelativeCompartmentValueReference; +import org.eclipse.stem.model.ctdl.ctdl.ReturnStatement; +import org.eclipse.stem.model.ctdl.ctdl.ScopedVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.StringLiteral; +import org.eclipse.stem.model.ctdl.ctdl.TransitionBlock; +import org.eclipse.stem.model.ctdl.ctdl.VariableReference; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage; +import org.eclipse.stem.model.metamodel.MetamodelPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Package</b>. + * <!-- end-user-doc --> + * @generated + */ +public class CtdlPackageImpl extends EPackageImpl implements CtdlPackage +{ + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass compartmentTransitionDefinitionsEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass metamodelResourceEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass transitionBlockEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass blockEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass defStatementEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass returnStatementEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass evaluationEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass expressionEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass functionReferenceEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass scopedVariableReferenceEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass localVariableReferenceEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass compartmentReferenceEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass modelParamReferenceEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass globalVariableEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass plusEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass minusEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass multiEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass divEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass primaryExpressionEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass numberLiteralEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass functionCallEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass variableReferenceEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass booleanLiteralEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass stringLiteralEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass externalFunctionReferenceEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass globalVariableReferenceEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass defStatementReferenceEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass absoluteCompartmentValueReferenceEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass relativeCompartmentValueReferenceEClass = null; + + /** + * Creates an instance of the model <b>Package</b>, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + * <p>Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage#eNS_URI + * @see #init() + * @generated + */ + private CtdlPackageImpl() + { + super(eNS_URI, CtdlFactory.eINSTANCE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. + * + * <p>This method is used to initialize {@link CtdlPackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static CtdlPackage init() + { + if (isInited) return (CtdlPackage)EPackage.Registry.INSTANCE.getEPackage(CtdlPackage.eNS_URI); + + // Obtain or create and register package + CtdlPackageImpl theCtdlPackage = (CtdlPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof CtdlPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new CtdlPackageImpl()); + + isInited = true; + + // Initialize simple dependencies + ExternalFunctionsPackage.eINSTANCE.eClass(); + MetamodelPackage.eINSTANCE.eClass(); + + // Create package meta-data objects + theCtdlPackage.createPackageContents(); + + // Initialize created meta-data + theCtdlPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theCtdlPackage.freeze(); + + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(CtdlPackage.eNS_URI, theCtdlPackage); + return theCtdlPackage; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getCompartmentTransitionDefinitions() + { + return compartmentTransitionDefinitionsEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCompartmentTransitionDefinitions_Metamodel() + { + return (EReference)compartmentTransitionDefinitionsEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCompartmentTransitionDefinitions_Expression() + { + return (EReference)compartmentTransitionDefinitionsEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getMetamodelResource() + { + return metamodelResourceEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getMetamodelResource_Package() + { + return (EReference)metamodelResourceEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getMetamodelResource_Model() + { + return (EReference)metamodelResourceEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getMetamodelResource_Transition() + { + return (EReference)metamodelResourceEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getTransitionBlock() + { + return transitionBlockEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getTransitionBlock_Block() + { + return (EReference)transitionBlockEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getBlock() + { + return blockEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getBlock_Statements() + { + return (EReference)blockEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getBlock_Ret() + { + return (EReference)blockEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getDefStatement() + { + return defStatementEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getDefStatement_Varname() + { + return (EAttribute)defStatementEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getDefStatement_Expr() + { + return (EReference)defStatementEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getReturnStatement() + { + return returnStatementEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getEvaluation() + { + return evaluationEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getEvaluation_Expression() + { + return (EReference)evaluationEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getExpression() + { + return expressionEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExpression_Exp() + { + return (EReference)expressionEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getFunctionReference() + { + return functionReferenceEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getFunctionReference_Name() + { + return (EAttribute)functionReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getScopedVariableReference() + { + return scopedVariableReferenceEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getScopedVariableReference_Name() + { + return (EAttribute)scopedVariableReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getLocalVariableReference() + { + return localVariableReferenceEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getCompartmentReference() + { + return compartmentReferenceEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCompartmentReference_Obj() + { + return (EReference)compartmentReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getModelParamReference() + { + return modelParamReferenceEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getModelParamReference_Obj() + { + return (EReference)modelParamReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getGlobalVariable() + { + return globalVariableEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getGlobalVariable_Name() + { + return (EAttribute)globalVariableEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getPlus() + { + return plusEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getPlus_Left() + { + return (EReference)plusEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getPlus_Right() + { + return (EReference)plusEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getMinus() + { + return minusEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getMinus_Left() + { + return (EReference)minusEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getMinus_Right() + { + return (EReference)minusEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getMulti() + { + return multiEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getMulti_Left() + { + return (EReference)multiEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getMulti_Right() + { + return (EReference)multiEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getDiv() + { + return divEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getDiv_Left() + { + return (EReference)divEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getDiv_Right() + { + return (EReference)divEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getPrimaryExpression() + { + return primaryExpressionEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getPrimaryExpression_Negate() + { + return (EAttribute)primaryExpressionEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getNumberLiteral() + { + return numberLiteralEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getNumberLiteral_Value() + { + return (EAttribute)numberLiteralEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getFunctionCall() + { + return functionCallEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getFunctionCall_Ref() + { + return (EReference)functionCallEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getFunctionCall_Args() + { + return (EReference)functionCallEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getVariableReference() + { + return variableReferenceEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getVariableReference_Ref() + { + return (EReference)variableReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getBooleanLiteral() + { + return booleanLiteralEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getBooleanLiteral_Value() + { + return (EAttribute)booleanLiteralEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getStringLiteral() + { + return stringLiteralEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getStringLiteral_Value() + { + return (EAttribute)stringLiteralEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getExternalFunctionReference() + { + return externalFunctionReferenceEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExternalFunctionReference_Func() + { + return (EReference)externalFunctionReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getGlobalVariableReference() + { + return globalVariableReferenceEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getDefStatementReference() + { + return defStatementReferenceEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getDefStatementReference_Obj() + { + return (EReference)defStatementReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getAbsoluteCompartmentValueReference() + { + return absoluteCompartmentValueReferenceEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getRelativeCompartmentValueReference() + { + return relativeCompartmentValueReferenceEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CtdlFactory getCtdlFactory() + { + return (CtdlFactory)getEFactoryInstance(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createPackageContents() + { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + compartmentTransitionDefinitionsEClass = createEClass(COMPARTMENT_TRANSITION_DEFINITIONS); + createEReference(compartmentTransitionDefinitionsEClass, COMPARTMENT_TRANSITION_DEFINITIONS__METAMODEL); + createEReference(compartmentTransitionDefinitionsEClass, COMPARTMENT_TRANSITION_DEFINITIONS__EXPRESSION); + + metamodelResourceEClass = createEClass(METAMODEL_RESOURCE); + createEReference(metamodelResourceEClass, METAMODEL_RESOURCE__PACKAGE); + createEReference(metamodelResourceEClass, METAMODEL_RESOURCE__MODEL); + createEReference(metamodelResourceEClass, METAMODEL_RESOURCE__TRANSITION); + + transitionBlockEClass = createEClass(TRANSITION_BLOCK); + createEReference(transitionBlockEClass, TRANSITION_BLOCK__BLOCK); + + blockEClass = createEClass(BLOCK); + createEReference(blockEClass, BLOCK__STATEMENTS); + createEReference(blockEClass, BLOCK__RET); + + defStatementEClass = createEClass(DEF_STATEMENT); + createEAttribute(defStatementEClass, DEF_STATEMENT__VARNAME); + createEReference(defStatementEClass, DEF_STATEMENT__EXPR); + + returnStatementEClass = createEClass(RETURN_STATEMENT); + + evaluationEClass = createEClass(EVALUATION); + createEReference(evaluationEClass, EVALUATION__EXPRESSION); + + expressionEClass = createEClass(EXPRESSION); + createEReference(expressionEClass, EXPRESSION__EXP); + + functionReferenceEClass = createEClass(FUNCTION_REFERENCE); + createEAttribute(functionReferenceEClass, FUNCTION_REFERENCE__NAME); + + scopedVariableReferenceEClass = createEClass(SCOPED_VARIABLE_REFERENCE); + createEAttribute(scopedVariableReferenceEClass, SCOPED_VARIABLE_REFERENCE__NAME); + + localVariableReferenceEClass = createEClass(LOCAL_VARIABLE_REFERENCE); + + compartmentReferenceEClass = createEClass(COMPARTMENT_REFERENCE); + createEReference(compartmentReferenceEClass, COMPARTMENT_REFERENCE__OBJ); + + modelParamReferenceEClass = createEClass(MODEL_PARAM_REFERENCE); + createEReference(modelParamReferenceEClass, MODEL_PARAM_REFERENCE__OBJ); + + globalVariableEClass = createEClass(GLOBAL_VARIABLE); + createEAttribute(globalVariableEClass, GLOBAL_VARIABLE__NAME); + + plusEClass = createEClass(PLUS); + createEReference(plusEClass, PLUS__LEFT); + createEReference(plusEClass, PLUS__RIGHT); + + minusEClass = createEClass(MINUS); + createEReference(minusEClass, MINUS__LEFT); + createEReference(minusEClass, MINUS__RIGHT); + + multiEClass = createEClass(MULTI); + createEReference(multiEClass, MULTI__LEFT); + createEReference(multiEClass, MULTI__RIGHT); + + divEClass = createEClass(DIV); + createEReference(divEClass, DIV__LEFT); + createEReference(divEClass, DIV__RIGHT); + + primaryExpressionEClass = createEClass(PRIMARY_EXPRESSION); + createEAttribute(primaryExpressionEClass, PRIMARY_EXPRESSION__NEGATE); + + numberLiteralEClass = createEClass(NUMBER_LITERAL); + createEAttribute(numberLiteralEClass, NUMBER_LITERAL__VALUE); + + functionCallEClass = createEClass(FUNCTION_CALL); + createEReference(functionCallEClass, FUNCTION_CALL__REF); + createEReference(functionCallEClass, FUNCTION_CALL__ARGS); + + variableReferenceEClass = createEClass(VARIABLE_REFERENCE); + createEReference(variableReferenceEClass, VARIABLE_REFERENCE__REF); + + booleanLiteralEClass = createEClass(BOOLEAN_LITERAL); + createEAttribute(booleanLiteralEClass, BOOLEAN_LITERAL__VALUE); + + stringLiteralEClass = createEClass(STRING_LITERAL); + createEAttribute(stringLiteralEClass, STRING_LITERAL__VALUE); + + externalFunctionReferenceEClass = createEClass(EXTERNAL_FUNCTION_REFERENCE); + createEReference(externalFunctionReferenceEClass, EXTERNAL_FUNCTION_REFERENCE__FUNC); + + globalVariableReferenceEClass = createEClass(GLOBAL_VARIABLE_REFERENCE); + + defStatementReferenceEClass = createEClass(DEF_STATEMENT_REFERENCE); + createEReference(defStatementReferenceEClass, DEF_STATEMENT_REFERENCE__OBJ); + + absoluteCompartmentValueReferenceEClass = createEClass(ABSOLUTE_COMPARTMENT_VALUE_REFERENCE); + + relativeCompartmentValueReferenceEClass = createEClass(RELATIVE_COMPARTMENT_VALUE_REFERENCE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void initializePackageContents() + { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Obtain other dependent packages + MetamodelPackage theMetamodelPackage = (MetamodelPackage)EPackage.Registry.INSTANCE.getEPackage(MetamodelPackage.eNS_URI); + ExternalFunctionsPackage theExternalFunctionsPackage = (ExternalFunctionsPackage)EPackage.Registry.INSTANCE.getEPackage(ExternalFunctionsPackage.eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + evaluationEClass.getESuperTypes().add(this.getReturnStatement()); + localVariableReferenceEClass.getESuperTypes().add(this.getScopedVariableReference()); + compartmentReferenceEClass.getESuperTypes().add(this.getScopedVariableReference()); + modelParamReferenceEClass.getESuperTypes().add(this.getScopedVariableReference()); + plusEClass.getESuperTypes().add(this.getExpression()); + minusEClass.getESuperTypes().add(this.getExpression()); + multiEClass.getESuperTypes().add(this.getExpression()); + divEClass.getESuperTypes().add(this.getExpression()); + primaryExpressionEClass.getESuperTypes().add(this.getExpression()); + numberLiteralEClass.getESuperTypes().add(this.getExpression()); + functionCallEClass.getESuperTypes().add(this.getExpression()); + variableReferenceEClass.getESuperTypes().add(this.getExpression()); + booleanLiteralEClass.getESuperTypes().add(this.getExpression()); + stringLiteralEClass.getESuperTypes().add(this.getExpression()); + externalFunctionReferenceEClass.getESuperTypes().add(this.getFunctionReference()); + globalVariableReferenceEClass.getESuperTypes().add(this.getScopedVariableReference()); + defStatementReferenceEClass.getESuperTypes().add(this.getLocalVariableReference()); + absoluteCompartmentValueReferenceEClass.getESuperTypes().add(this.getCompartmentReference()); + relativeCompartmentValueReferenceEClass.getESuperTypes().add(this.getCompartmentReference()); + + // Initialize classes and features; add operations and parameters + initEClass(compartmentTransitionDefinitionsEClass, CompartmentTransitionDefinitions.class, "CompartmentTransitionDefinitions", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCompartmentTransitionDefinitions_Metamodel(), this.getMetamodelResource(), null, "metamodel", null, 0, 1, CompartmentTransitionDefinitions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCompartmentTransitionDefinitions_Expression(), this.getTransitionBlock(), null, "expression", null, 0, 1, CompartmentTransitionDefinitions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(metamodelResourceEClass, MetamodelResource.class, "MetamodelResource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getMetamodelResource_Package(), theMetamodelPackage.getPackage(), null, "package", null, 0, 1, MetamodelResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMetamodelResource_Model(), theMetamodelPackage.getModel(), null, "model", null, 0, 1, MetamodelResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMetamodelResource_Transition(), theMetamodelPackage.getTransition(), null, "transition", null, 0, 1, MetamodelResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(transitionBlockEClass, TransitionBlock.class, "TransitionBlock", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTransitionBlock_Block(), this.getBlock(), null, "block", null, 0, 1, TransitionBlock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(blockEClass, Block.class, "Block", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getBlock_Statements(), this.getDefStatement(), null, "statements", null, 0, -1, Block.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getBlock_Ret(), this.getReturnStatement(), null, "ret", null, 0, 1, Block.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(defStatementEClass, DefStatement.class, "DefStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getDefStatement_Varname(), ecorePackage.getEString(), "varname", null, 0, 1, DefStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getDefStatement_Expr(), this.getEvaluation(), null, "expr", null, 0, 1, DefStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(returnStatementEClass, ReturnStatement.class, "ReturnStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(evaluationEClass, Evaluation.class, "Evaluation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getEvaluation_Expression(), this.getExpression(), null, "expression", null, 0, 1, Evaluation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(expressionEClass, Expression.class, "Expression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExpression_Exp(), this.getExpression(), null, "exp", null, 0, 1, Expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(functionReferenceEClass, FunctionReference.class, "FunctionReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getFunctionReference_Name(), ecorePackage.getEString(), "name", null, 0, 1, FunctionReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(scopedVariableReferenceEClass, ScopedVariableReference.class, "ScopedVariableReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getScopedVariableReference_Name(), ecorePackage.getEString(), "name", null, 0, 1, ScopedVariableReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(localVariableReferenceEClass, LocalVariableReference.class, "LocalVariableReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(compartmentReferenceEClass, CompartmentReference.class, "CompartmentReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCompartmentReference_Obj(), theMetamodelPackage.getCompartment(), null, "obj", null, 0, 1, CompartmentReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(modelParamReferenceEClass, ModelParamReference.class, "ModelParamReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getModelParamReference_Obj(), theMetamodelPackage.getModelParam(), null, "obj", null, 0, 1, ModelParamReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(globalVariableEClass, GlobalVariable.class, "GlobalVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getGlobalVariable_Name(), ecorePackage.getEString(), "name", null, 0, 1, GlobalVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(plusEClass, Plus.class, "Plus", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getPlus_Left(), this.getExpression(), null, "left", null, 0, 1, Plus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getPlus_Right(), this.getExpression(), null, "right", null, 0, 1, Plus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(minusEClass, Minus.class, "Minus", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getMinus_Left(), this.getExpression(), null, "left", null, 0, 1, Minus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMinus_Right(), this.getExpression(), null, "right", null, 0, 1, Minus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(multiEClass, Multi.class, "Multi", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getMulti_Left(), this.getExpression(), null, "left", null, 0, 1, Multi.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMulti_Right(), this.getExpression(), null, "right", null, 0, 1, Multi.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(divEClass, Div.class, "Div", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDiv_Left(), this.getExpression(), null, "left", null, 0, 1, Div.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getDiv_Right(), this.getExpression(), null, "right", null, 0, 1, Div.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(primaryExpressionEClass, PrimaryExpression.class, "PrimaryExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getPrimaryExpression_Negate(), ecorePackage.getEBoolean(), "negate", null, 0, 1, PrimaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(numberLiteralEClass, NumberLiteral.class, "NumberLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getNumberLiteral_Value(), ecorePackage.getEDouble(), "value", null, 0, 1, NumberLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(functionCallEClass, FunctionCall.class, "FunctionCall", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getFunctionCall_Ref(), this.getFunctionReference(), null, "ref", null, 0, 1, FunctionCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getFunctionCall_Args(), this.getExpression(), null, "args", null, 0, -1, FunctionCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(variableReferenceEClass, VariableReference.class, "VariableReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVariableReference_Ref(), this.getScopedVariableReference(), null, "ref", null, 0, 1, VariableReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(booleanLiteralEClass, BooleanLiteral.class, "BooleanLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getBooleanLiteral_Value(), ecorePackage.getEBoolean(), "value", null, 0, 1, BooleanLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(stringLiteralEClass, StringLiteral.class, "StringLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getStringLiteral_Value(), ecorePackage.getEString(), "value", null, 0, 1, StringLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(externalFunctionReferenceEClass, ExternalFunctionReference.class, "ExternalFunctionReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExternalFunctionReference_Func(), theExternalFunctionsPackage.getExternalFunctionDefinition(), null, "func", null, 0, 1, ExternalFunctionReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(globalVariableReferenceEClass, GlobalVariableReference.class, "GlobalVariableReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(defStatementReferenceEClass, DefStatementReference.class, "DefStatementReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDefStatementReference_Obj(), this.getDefStatement(), null, "obj", null, 0, 1, DefStatementReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(absoluteCompartmentValueReferenceEClass, AbsoluteCompartmentValueReference.class, "AbsoluteCompartmentValueReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(relativeCompartmentValueReferenceEClass, RelativeCompartmentValueReference.class, "RelativeCompartmentValueReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + // Create resource + createResource(eNS_URI); + } + +} //CtdlPackageImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/DefStatementImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/DefStatementImpl.java new file mode 100644 index 000000000..1242fe36a --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/DefStatementImpl.java @@ -0,0 +1,265 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.DefStatement; +import org.eclipse.stem.model.ctdl.ctdl.Evaluation; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Def Statement</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.DefStatementImpl#getVarname <em>Varname</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.DefStatementImpl#getExpr <em>Expr</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class DefStatementImpl extends MinimalEObjectImpl.Container implements DefStatement +{ + /** + * The default value of the '{@link #getVarname() <em>Varname</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getVarname() + * @generated + * @ordered + */ + protected static final String VARNAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getVarname() <em>Varname</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getVarname() + * @generated + * @ordered + */ + protected String varname = VARNAME_EDEFAULT; + + /** + * The cached value of the '{@link #getExpr() <em>Expr</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getExpr() + * @generated + * @ordered + */ + protected Evaluation expr; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected DefStatementImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.DEF_STATEMENT; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getVarname() + { + return varname; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setVarname(String newVarname) + { + String oldVarname = varname; + varname = newVarname; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.DEF_STATEMENT__VARNAME, oldVarname, varname)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Evaluation getExpr() + { + return expr; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetExpr(Evaluation newExpr, NotificationChain msgs) + { + Evaluation oldExpr = expr; + expr = newExpr; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CtdlPackage.DEF_STATEMENT__EXPR, oldExpr, newExpr); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setExpr(Evaluation newExpr) + { + if (newExpr != expr) + { + NotificationChain msgs = null; + if (expr != null) + msgs = ((InternalEObject)expr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.DEF_STATEMENT__EXPR, null, msgs); + if (newExpr != null) + msgs = ((InternalEObject)newExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.DEF_STATEMENT__EXPR, null, msgs); + msgs = basicSetExpr(newExpr, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.DEF_STATEMENT__EXPR, newExpr, newExpr)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case CtdlPackage.DEF_STATEMENT__EXPR: + return basicSetExpr(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.DEF_STATEMENT__VARNAME: + return getVarname(); + case CtdlPackage.DEF_STATEMENT__EXPR: + return getExpr(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.DEF_STATEMENT__VARNAME: + setVarname((String)newValue); + return; + case CtdlPackage.DEF_STATEMENT__EXPR: + setExpr((Evaluation)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.DEF_STATEMENT__VARNAME: + setVarname(VARNAME_EDEFAULT); + return; + case CtdlPackage.DEF_STATEMENT__EXPR: + setExpr((Evaluation)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.DEF_STATEMENT__VARNAME: + return VARNAME_EDEFAULT == null ? varname != null : !VARNAME_EDEFAULT.equals(varname); + case CtdlPackage.DEF_STATEMENT__EXPR: + return expr != null; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (varname: "); + result.append(varname); + result.append(')'); + return result.toString(); + } + +} //DefStatementImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/DefStatementReferenceImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/DefStatementReferenceImpl.java new file mode 100644 index 000000000..8b4e854f6 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/DefStatementReferenceImpl.java @@ -0,0 +1,172 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.DefStatement; +import org.eclipse.stem.model.ctdl.ctdl.DefStatementReference; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Def Statement Reference</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.DefStatementReferenceImpl#getObj <em>Obj</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class DefStatementReferenceImpl extends LocalVariableReferenceImpl implements DefStatementReference +{ + /** + * The cached value of the '{@link #getObj() <em>Obj</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getObj() + * @generated + * @ordered + */ + protected DefStatement obj; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected DefStatementReferenceImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.DEF_STATEMENT_REFERENCE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public DefStatement getObj() + { + if (obj != null && obj.eIsProxy()) + { + InternalEObject oldObj = (InternalEObject)obj; + obj = (DefStatement)eResolveProxy(oldObj); + if (obj != oldObj) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, CtdlPackage.DEF_STATEMENT_REFERENCE__OBJ, oldObj, obj)); + } + } + return obj; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public DefStatement basicGetObj() + { + return obj; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setObj(DefStatement newObj) + { + DefStatement oldObj = obj; + obj = newObj; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.DEF_STATEMENT_REFERENCE__OBJ, oldObj, obj)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.DEF_STATEMENT_REFERENCE__OBJ: + if (resolve) return getObj(); + return basicGetObj(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.DEF_STATEMENT_REFERENCE__OBJ: + setObj((DefStatement)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.DEF_STATEMENT_REFERENCE__OBJ: + setObj((DefStatement)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.DEF_STATEMENT_REFERENCE__OBJ: + return obj != null; + } + return super.eIsSet(featureID); + } + +} //DefStatementReferenceImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/DivImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/DivImpl.java new file mode 100644 index 000000000..202ee32d2 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/DivImpl.java @@ -0,0 +1,264 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.Div; +import org.eclipse.stem.model.ctdl.ctdl.Expression; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Div</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.DivImpl#getLeft <em>Left</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.DivImpl#getRight <em>Right</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class DivImpl extends ExpressionImpl implements Div +{ + /** + * The cached value of the '{@link #getLeft() <em>Left</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The cached value of the '{@link #getRight() <em>Right</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected DivImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.DIV; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Expression getLeft() + { + return left; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CtdlPackage.DIV__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.DIV__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.DIV__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.DIV__LEFT, newLeft, newLeft)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Expression getRight() + { + return right; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CtdlPackage.DIV__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.DIV__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.DIV__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.DIV__RIGHT, newRight, newRight)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case CtdlPackage.DIV__LEFT: + return basicSetLeft(null, msgs); + case CtdlPackage.DIV__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.DIV__LEFT: + return getLeft(); + case CtdlPackage.DIV__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.DIV__LEFT: + setLeft((Expression)newValue); + return; + case CtdlPackage.DIV__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.DIV__LEFT: + setLeft((Expression)null); + return; + case CtdlPackage.DIV__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.DIV__LEFT: + return left != null; + case CtdlPackage.DIV__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //DivImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/EvaluationImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/EvaluationImpl.java new file mode 100644 index 000000000..bb2cd2109 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/EvaluationImpl.java @@ -0,0 +1,193 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.Evaluation; +import org.eclipse.stem.model.ctdl.ctdl.Expression; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Evaluation</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.EvaluationImpl#getExpression <em>Expression</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class EvaluationImpl extends ReturnStatementImpl implements Evaluation +{ + /** + * The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getExpression() + * @generated + * @ordered + */ + protected Expression expression; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EvaluationImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.EVALUATION; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Expression getExpression() + { + return expression; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetExpression(Expression newExpression, NotificationChain msgs) + { + Expression oldExpression = expression; + expression = newExpression; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CtdlPackage.EVALUATION__EXPRESSION, oldExpression, newExpression); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setExpression(Expression newExpression) + { + if (newExpression != expression) + { + NotificationChain msgs = null; + if (expression != null) + msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.EVALUATION__EXPRESSION, null, msgs); + if (newExpression != null) + msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.EVALUATION__EXPRESSION, null, msgs); + msgs = basicSetExpression(newExpression, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.EVALUATION__EXPRESSION, newExpression, newExpression)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case CtdlPackage.EVALUATION__EXPRESSION: + return basicSetExpression(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.EVALUATION__EXPRESSION: + return getExpression(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.EVALUATION__EXPRESSION: + setExpression((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.EVALUATION__EXPRESSION: + setExpression((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.EVALUATION__EXPRESSION: + return expression != null; + } + return super.eIsSet(featureID); + } + +} //EvaluationImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/ExpressionImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/ExpressionImpl.java new file mode 100644 index 000000000..84777c8b1 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/ExpressionImpl.java @@ -0,0 +1,193 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.Expression; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Expression</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.ExpressionImpl#getExp <em>Exp</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class ExpressionImpl extends MinimalEObjectImpl.Container implements Expression +{ + /** + * The cached value of the '{@link #getExp() <em>Exp</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getExp() + * @generated + * @ordered + */ + protected Expression exp; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ExpressionImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.EXPRESSION; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Expression getExp() + { + return exp; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetExp(Expression newExp, NotificationChain msgs) + { + Expression oldExp = exp; + exp = newExp; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CtdlPackage.EXPRESSION__EXP, oldExp, newExp); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setExp(Expression newExp) + { + if (newExp != exp) + { + NotificationChain msgs = null; + if (exp != null) + msgs = ((InternalEObject)exp).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.EXPRESSION__EXP, null, msgs); + if (newExp != null) + msgs = ((InternalEObject)newExp).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.EXPRESSION__EXP, null, msgs); + msgs = basicSetExp(newExp, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.EXPRESSION__EXP, newExp, newExp)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case CtdlPackage.EXPRESSION__EXP: + return basicSetExp(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.EXPRESSION__EXP: + return getExp(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.EXPRESSION__EXP: + setExp((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.EXPRESSION__EXP: + setExp((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.EXPRESSION__EXP: + return exp != null; + } + return super.eIsSet(featureID); + } + +} //ExpressionImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/ExternalFunctionReferenceImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/ExternalFunctionReferenceImpl.java new file mode 100644 index 000000000..64a5b9631 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/ExternalFunctionReferenceImpl.java @@ -0,0 +1,172 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.ExternalFunctionReference; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>External Function Reference</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.ExternalFunctionReferenceImpl#getFunc <em>Func</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class ExternalFunctionReferenceImpl extends FunctionReferenceImpl implements ExternalFunctionReference +{ + /** + * The cached value of the '{@link #getFunc() <em>Func</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFunc() + * @generated + * @ordered + */ + protected ExternalFunctionDefinition func; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ExternalFunctionReferenceImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.EXTERNAL_FUNCTION_REFERENCE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExternalFunctionDefinition getFunc() + { + if (func != null && func.eIsProxy()) + { + InternalEObject oldFunc = (InternalEObject)func; + func = (ExternalFunctionDefinition)eResolveProxy(oldFunc); + if (func != oldFunc) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, CtdlPackage.EXTERNAL_FUNCTION_REFERENCE__FUNC, oldFunc, func)); + } + } + return func; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExternalFunctionDefinition basicGetFunc() + { + return func; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setFunc(ExternalFunctionDefinition newFunc) + { + ExternalFunctionDefinition oldFunc = func; + func = newFunc; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.EXTERNAL_FUNCTION_REFERENCE__FUNC, oldFunc, func)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.EXTERNAL_FUNCTION_REFERENCE__FUNC: + if (resolve) return getFunc(); + return basicGetFunc(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.EXTERNAL_FUNCTION_REFERENCE__FUNC: + setFunc((ExternalFunctionDefinition)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.EXTERNAL_FUNCTION_REFERENCE__FUNC: + setFunc((ExternalFunctionDefinition)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.EXTERNAL_FUNCTION_REFERENCE__FUNC: + return func != null; + } + return super.eIsSet(featureID); + } + +} //ExternalFunctionReferenceImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/FunctionCallImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/FunctionCallImpl.java new file mode 100644 index 000000000..59e9c807b --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/FunctionCallImpl.java @@ -0,0 +1,232 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.Expression; +import org.eclipse.stem.model.ctdl.ctdl.FunctionCall; +import org.eclipse.stem.model.ctdl.ctdl.FunctionReference; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Function Call</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.FunctionCallImpl#getRef <em>Ref</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.FunctionCallImpl#getArgs <em>Args</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class FunctionCallImpl extends ExpressionImpl implements FunctionCall +{ + /** + * The cached value of the '{@link #getRef() <em>Ref</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRef() + * @generated + * @ordered + */ + protected FunctionReference ref; + + /** + * The cached value of the '{@link #getArgs() <em>Args</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getArgs() + * @generated + * @ordered + */ + protected EList<Expression> args; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected FunctionCallImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.FUNCTION_CALL; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FunctionReference getRef() + { + if (ref != null && ref.eIsProxy()) + { + InternalEObject oldRef = (InternalEObject)ref; + ref = (FunctionReference)eResolveProxy(oldRef); + if (ref != oldRef) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, CtdlPackage.FUNCTION_CALL__REF, oldRef, ref)); + } + } + return ref; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FunctionReference basicGetRef() + { + return ref; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setRef(FunctionReference newRef) + { + FunctionReference oldRef = ref; + ref = newRef; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.FUNCTION_CALL__REF, oldRef, ref)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<Expression> getArgs() + { + if (args == null) + { + args = new EObjectContainmentEList<Expression>(Expression.class, this, CtdlPackage.FUNCTION_CALL__ARGS); + } + return args; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case CtdlPackage.FUNCTION_CALL__ARGS: + return ((InternalEList<?>)getArgs()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.FUNCTION_CALL__REF: + if (resolve) return getRef(); + return basicGetRef(); + case CtdlPackage.FUNCTION_CALL__ARGS: + return getArgs(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.FUNCTION_CALL__REF: + setRef((FunctionReference)newValue); + return; + case CtdlPackage.FUNCTION_CALL__ARGS: + getArgs().clear(); + getArgs().addAll((Collection<? extends Expression>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.FUNCTION_CALL__REF: + setRef((FunctionReference)null); + return; + case CtdlPackage.FUNCTION_CALL__ARGS: + getArgs().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.FUNCTION_CALL__REF: + return ref != null; + case CtdlPackage.FUNCTION_CALL__ARGS: + return args != null && !args.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //FunctionCallImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/FunctionReferenceImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/FunctionReferenceImpl.java new file mode 100644 index 000000000..e69f152e1 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/FunctionReferenceImpl.java @@ -0,0 +1,177 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.FunctionReference; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Function Reference</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.FunctionReferenceImpl#getName <em>Name</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class FunctionReferenceImpl extends MinimalEObjectImpl.Container implements FunctionReference +{ + /** + * The default value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected FunctionReferenceImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.FUNCTION_REFERENCE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() + { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.FUNCTION_REFERENCE__NAME, oldName, name)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.FUNCTION_REFERENCE__NAME: + return getName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.FUNCTION_REFERENCE__NAME: + setName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.FUNCTION_REFERENCE__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.FUNCTION_REFERENCE__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + +} //FunctionReferenceImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/GlobalVariableImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/GlobalVariableImpl.java new file mode 100644 index 000000000..f9bd1aa68 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/GlobalVariableImpl.java @@ -0,0 +1,177 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.GlobalVariable; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Global Variable</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.GlobalVariableImpl#getName <em>Name</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class GlobalVariableImpl extends MinimalEObjectImpl.Container implements GlobalVariable +{ + /** + * The default value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected GlobalVariableImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.GLOBAL_VARIABLE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() + { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.GLOBAL_VARIABLE__NAME, oldName, name)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.GLOBAL_VARIABLE__NAME: + return getName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.GLOBAL_VARIABLE__NAME: + setName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.GLOBAL_VARIABLE__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.GLOBAL_VARIABLE__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + +} //GlobalVariableImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/GlobalVariableReferenceImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/GlobalVariableReferenceImpl.java new file mode 100644 index 000000000..361f646a1 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/GlobalVariableReferenceImpl.java @@ -0,0 +1,44 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.GlobalVariableReference; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Global Variable Reference</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public class GlobalVariableReferenceImpl extends ScopedVariableReferenceImpl implements GlobalVariableReference +{ + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected GlobalVariableReferenceImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.GLOBAL_VARIABLE_REFERENCE; + } + +} //GlobalVariableReferenceImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/LocalVariableReferenceImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/LocalVariableReferenceImpl.java new file mode 100644 index 000000000..aab3754fd --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/LocalVariableReferenceImpl.java @@ -0,0 +1,44 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.LocalVariableReference; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Local Variable Reference</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public class LocalVariableReferenceImpl extends ScopedVariableReferenceImpl implements LocalVariableReference +{ + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected LocalVariableReferenceImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.LOCAL_VARIABLE_REFERENCE; + } + +} //LocalVariableReferenceImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/MetamodelResourceImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/MetamodelResourceImpl.java new file mode 100644 index 000000000..bfe6aed61 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/MetamodelResourceImpl.java @@ -0,0 +1,304 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.MetamodelResource; +import org.eclipse.stem.model.metamodel.Model; +import org.eclipse.stem.model.metamodel.Transition; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Metamodel Resource</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.MetamodelResourceImpl#getPackage <em>Package</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.MetamodelResourceImpl#getModel <em>Model</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.MetamodelResourceImpl#getTransition <em>Transition</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class MetamodelResourceImpl extends MinimalEObjectImpl.Container implements MetamodelResource +{ + /** + * The cached value of the '{@link #getPackage() <em>Package</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPackage() + * @generated + * @ordered + */ + protected org.eclipse.stem.model.metamodel.Package package_; + + /** + * The cached value of the '{@link #getModel() <em>Model</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getModel() + * @generated + * @ordered + */ + protected Model model; + + /** + * The cached value of the '{@link #getTransition() <em>Transition</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTransition() + * @generated + * @ordered + */ + protected Transition transition; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected MetamodelResourceImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.METAMODEL_RESOURCE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public org.eclipse.stem.model.metamodel.Package getPackage() + { + if (package_ != null && package_.eIsProxy()) + { + InternalEObject oldPackage = (InternalEObject)package_; + package_ = (org.eclipse.stem.model.metamodel.Package)eResolveProxy(oldPackage); + if (package_ != oldPackage) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, CtdlPackage.METAMODEL_RESOURCE__PACKAGE, oldPackage, package_)); + } + } + return package_; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public org.eclipse.stem.model.metamodel.Package basicGetPackage() + { + return package_; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setPackage(org.eclipse.stem.model.metamodel.Package newPackage) + { + org.eclipse.stem.model.metamodel.Package oldPackage = package_; + package_ = newPackage; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.METAMODEL_RESOURCE__PACKAGE, oldPackage, package_)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Model getModel() + { + if (model != null && model.eIsProxy()) + { + InternalEObject oldModel = (InternalEObject)model; + model = (Model)eResolveProxy(oldModel); + if (model != oldModel) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, CtdlPackage.METAMODEL_RESOURCE__MODEL, oldModel, model)); + } + } + return model; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Model basicGetModel() + { + return model; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setModel(Model newModel) + { + Model oldModel = model; + model = newModel; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.METAMODEL_RESOURCE__MODEL, oldModel, model)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Transition getTransition() + { + if (transition != null && transition.eIsProxy()) + { + InternalEObject oldTransition = (InternalEObject)transition; + transition = (Transition)eResolveProxy(oldTransition); + if (transition != oldTransition) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, CtdlPackage.METAMODEL_RESOURCE__TRANSITION, oldTransition, transition)); + } + } + return transition; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Transition basicGetTransition() + { + return transition; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTransition(Transition newTransition) + { + Transition oldTransition = transition; + transition = newTransition; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.METAMODEL_RESOURCE__TRANSITION, oldTransition, transition)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.METAMODEL_RESOURCE__PACKAGE: + if (resolve) return getPackage(); + return basicGetPackage(); + case CtdlPackage.METAMODEL_RESOURCE__MODEL: + if (resolve) return getModel(); + return basicGetModel(); + case CtdlPackage.METAMODEL_RESOURCE__TRANSITION: + if (resolve) return getTransition(); + return basicGetTransition(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.METAMODEL_RESOURCE__PACKAGE: + setPackage((org.eclipse.stem.model.metamodel.Package)newValue); + return; + case CtdlPackage.METAMODEL_RESOURCE__MODEL: + setModel((Model)newValue); + return; + case CtdlPackage.METAMODEL_RESOURCE__TRANSITION: + setTransition((Transition)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.METAMODEL_RESOURCE__PACKAGE: + setPackage((org.eclipse.stem.model.metamodel.Package)null); + return; + case CtdlPackage.METAMODEL_RESOURCE__MODEL: + setModel((Model)null); + return; + case CtdlPackage.METAMODEL_RESOURCE__TRANSITION: + setTransition((Transition)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.METAMODEL_RESOURCE__PACKAGE: + return package_ != null; + case CtdlPackage.METAMODEL_RESOURCE__MODEL: + return model != null; + case CtdlPackage.METAMODEL_RESOURCE__TRANSITION: + return transition != null; + } + return super.eIsSet(featureID); + } + +} //MetamodelResourceImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/MinusImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/MinusImpl.java new file mode 100644 index 000000000..4b661b710 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/MinusImpl.java @@ -0,0 +1,264 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.Expression; +import org.eclipse.stem.model.ctdl.ctdl.Minus; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Minus</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.MinusImpl#getLeft <em>Left</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.MinusImpl#getRight <em>Right</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class MinusImpl extends ExpressionImpl implements Minus +{ + /** + * The cached value of the '{@link #getLeft() <em>Left</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The cached value of the '{@link #getRight() <em>Right</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected MinusImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.MINUS; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Expression getLeft() + { + return left; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CtdlPackage.MINUS__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.MINUS__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.MINUS__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.MINUS__LEFT, newLeft, newLeft)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Expression getRight() + { + return right; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CtdlPackage.MINUS__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.MINUS__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.MINUS__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.MINUS__RIGHT, newRight, newRight)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case CtdlPackage.MINUS__LEFT: + return basicSetLeft(null, msgs); + case CtdlPackage.MINUS__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.MINUS__LEFT: + return getLeft(); + case CtdlPackage.MINUS__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.MINUS__LEFT: + setLeft((Expression)newValue); + return; + case CtdlPackage.MINUS__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.MINUS__LEFT: + setLeft((Expression)null); + return; + case CtdlPackage.MINUS__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.MINUS__LEFT: + return left != null; + case CtdlPackage.MINUS__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //MinusImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/ModelParamReferenceImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/ModelParamReferenceImpl.java new file mode 100644 index 000000000..1c89781e8 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/ModelParamReferenceImpl.java @@ -0,0 +1,172 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.ModelParamReference; +import org.eclipse.stem.model.metamodel.ModelParam; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Model Param Reference</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.ModelParamReferenceImpl#getObj <em>Obj</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class ModelParamReferenceImpl extends ScopedVariableReferenceImpl implements ModelParamReference +{ + /** + * The cached value of the '{@link #getObj() <em>Obj</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getObj() + * @generated + * @ordered + */ + protected ModelParam obj; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ModelParamReferenceImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.MODEL_PARAM_REFERENCE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ModelParam getObj() + { + if (obj != null && obj.eIsProxy()) + { + InternalEObject oldObj = (InternalEObject)obj; + obj = (ModelParam)eResolveProxy(oldObj); + if (obj != oldObj) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, CtdlPackage.MODEL_PARAM_REFERENCE__OBJ, oldObj, obj)); + } + } + return obj; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ModelParam basicGetObj() + { + return obj; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setObj(ModelParam newObj) + { + ModelParam oldObj = obj; + obj = newObj; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.MODEL_PARAM_REFERENCE__OBJ, oldObj, obj)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.MODEL_PARAM_REFERENCE__OBJ: + if (resolve) return getObj(); + return basicGetObj(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.MODEL_PARAM_REFERENCE__OBJ: + setObj((ModelParam)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.MODEL_PARAM_REFERENCE__OBJ: + setObj((ModelParam)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.MODEL_PARAM_REFERENCE__OBJ: + return obj != null; + } + return super.eIsSet(featureID); + } + +} //ModelParamReferenceImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/MultiImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/MultiImpl.java new file mode 100644 index 000000000..6bef3a8d5 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/MultiImpl.java @@ -0,0 +1,264 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.Expression; +import org.eclipse.stem.model.ctdl.ctdl.Multi; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Multi</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.MultiImpl#getLeft <em>Left</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.MultiImpl#getRight <em>Right</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class MultiImpl extends ExpressionImpl implements Multi +{ + /** + * The cached value of the '{@link #getLeft() <em>Left</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The cached value of the '{@link #getRight() <em>Right</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected MultiImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.MULTI; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Expression getLeft() + { + return left; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CtdlPackage.MULTI__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.MULTI__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.MULTI__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.MULTI__LEFT, newLeft, newLeft)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Expression getRight() + { + return right; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CtdlPackage.MULTI__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.MULTI__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.MULTI__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.MULTI__RIGHT, newRight, newRight)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case CtdlPackage.MULTI__LEFT: + return basicSetLeft(null, msgs); + case CtdlPackage.MULTI__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.MULTI__LEFT: + return getLeft(); + case CtdlPackage.MULTI__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.MULTI__LEFT: + setLeft((Expression)newValue); + return; + case CtdlPackage.MULTI__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.MULTI__LEFT: + setLeft((Expression)null); + return; + case CtdlPackage.MULTI__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.MULTI__LEFT: + return left != null; + case CtdlPackage.MULTI__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //MultiImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/NumberLiteralImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/NumberLiteralImpl.java new file mode 100644 index 000000000..ab2dbefe9 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/NumberLiteralImpl.java @@ -0,0 +1,176 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.NumberLiteral; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Number Literal</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.NumberLiteralImpl#getValue <em>Value</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class NumberLiteralImpl extends ExpressionImpl implements NumberLiteral +{ + /** + * The default value of the '{@link #getValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getValue() + * @generated + * @ordered + */ + protected static final double VALUE_EDEFAULT = 0.0; + + /** + * The cached value of the '{@link #getValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getValue() + * @generated + * @ordered + */ + protected double value = VALUE_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected NumberLiteralImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.NUMBER_LITERAL; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public double getValue() + { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setValue(double newValue) + { + double oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.NUMBER_LITERAL__VALUE, oldValue, value)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.NUMBER_LITERAL__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.NUMBER_LITERAL__VALUE: + setValue((Double)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.NUMBER_LITERAL__VALUE: + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.NUMBER_LITERAL__VALUE: + return value != VALUE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (value: "); + result.append(value); + result.append(')'); + return result.toString(); + } + +} //NumberLiteralImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/PlusImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/PlusImpl.java new file mode 100644 index 000000000..334295ddc --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/PlusImpl.java @@ -0,0 +1,264 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.Expression; +import org.eclipse.stem.model.ctdl.ctdl.Plus; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Plus</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.PlusImpl#getLeft <em>Left</em>}</li> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.PlusImpl#getRight <em>Right</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class PlusImpl extends ExpressionImpl implements Plus +{ + /** + * The cached value of the '{@link #getLeft() <em>Left</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The cached value of the '{@link #getRight() <em>Right</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PlusImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.PLUS; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Expression getLeft() + { + return left; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CtdlPackage.PLUS__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.PLUS__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.PLUS__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.PLUS__LEFT, newLeft, newLeft)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Expression getRight() + { + return right; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CtdlPackage.PLUS__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.PLUS__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.PLUS__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.PLUS__RIGHT, newRight, newRight)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case CtdlPackage.PLUS__LEFT: + return basicSetLeft(null, msgs); + case CtdlPackage.PLUS__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.PLUS__LEFT: + return getLeft(); + case CtdlPackage.PLUS__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.PLUS__LEFT: + setLeft((Expression)newValue); + return; + case CtdlPackage.PLUS__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.PLUS__LEFT: + setLeft((Expression)null); + return; + case CtdlPackage.PLUS__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.PLUS__LEFT: + return left != null; + case CtdlPackage.PLUS__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //PlusImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/PrimaryExpressionImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/PrimaryExpressionImpl.java new file mode 100644 index 000000000..613171c64 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/PrimaryExpressionImpl.java @@ -0,0 +1,176 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.PrimaryExpression; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Primary Expression</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.PrimaryExpressionImpl#isNegate <em>Negate</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class PrimaryExpressionImpl extends ExpressionImpl implements PrimaryExpression +{ + /** + * The default value of the '{@link #isNegate() <em>Negate</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isNegate() + * @generated + * @ordered + */ + protected static final boolean NEGATE_EDEFAULT = false; + + /** + * The cached value of the '{@link #isNegate() <em>Negate</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isNegate() + * @generated + * @ordered + */ + protected boolean negate = NEGATE_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PrimaryExpressionImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.PRIMARY_EXPRESSION; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isNegate() + { + return negate; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setNegate(boolean newNegate) + { + boolean oldNegate = negate; + negate = newNegate; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.PRIMARY_EXPRESSION__NEGATE, oldNegate, negate)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.PRIMARY_EXPRESSION__NEGATE: + return isNegate(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.PRIMARY_EXPRESSION__NEGATE: + setNegate((Boolean)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.PRIMARY_EXPRESSION__NEGATE: + setNegate(NEGATE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.PRIMARY_EXPRESSION__NEGATE: + return negate != NEGATE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (negate: "); + result.append(negate); + result.append(')'); + return result.toString(); + } + +} //PrimaryExpressionImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/RelativeCompartmentValueReferenceImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/RelativeCompartmentValueReferenceImpl.java new file mode 100644 index 000000000..940b0ccd6 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/RelativeCompartmentValueReferenceImpl.java @@ -0,0 +1,44 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.RelativeCompartmentValueReference; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Relative Compartment Value Reference</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public class RelativeCompartmentValueReferenceImpl extends CompartmentReferenceImpl implements RelativeCompartmentValueReference +{ + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected RelativeCompartmentValueReferenceImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.RELATIVE_COMPARTMENT_VALUE_REFERENCE; + } + +} //RelativeCompartmentValueReferenceImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/ReturnStatementImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/ReturnStatementImpl.java new file mode 100644 index 000000000..85b46f199 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/ReturnStatementImpl.java @@ -0,0 +1,45 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.ReturnStatement; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Return Statement</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public class ReturnStatementImpl extends MinimalEObjectImpl.Container implements ReturnStatement +{ + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ReturnStatementImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.RETURN_STATEMENT; + } + +} //ReturnStatementImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/ScopedVariableReferenceImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/ScopedVariableReferenceImpl.java new file mode 100644 index 000000000..325a38d11 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/ScopedVariableReferenceImpl.java @@ -0,0 +1,177 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.ScopedVariableReference; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Scoped Variable Reference</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.ScopedVariableReferenceImpl#getName <em>Name</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class ScopedVariableReferenceImpl extends MinimalEObjectImpl.Container implements ScopedVariableReference +{ + /** + * The default value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ScopedVariableReferenceImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.SCOPED_VARIABLE_REFERENCE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() + { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.SCOPED_VARIABLE_REFERENCE__NAME, oldName, name)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.SCOPED_VARIABLE_REFERENCE__NAME: + return getName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.SCOPED_VARIABLE_REFERENCE__NAME: + setName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.SCOPED_VARIABLE_REFERENCE__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.SCOPED_VARIABLE_REFERENCE__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + +} //ScopedVariableReferenceImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/StringLiteralImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/StringLiteralImpl.java new file mode 100644 index 000000000..50244a9a7 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/StringLiteralImpl.java @@ -0,0 +1,176 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.StringLiteral; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>String Literal</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.StringLiteralImpl#getValue <em>Value</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class StringLiteralImpl extends ExpressionImpl implements StringLiteral +{ + /** + * The default value of the '{@link #getValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getValue() + * @generated + * @ordered + */ + protected static final String VALUE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getValue() + * @generated + * @ordered + */ + protected String value = VALUE_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected StringLiteralImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.STRING_LITERAL; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getValue() + { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setValue(String newValue) + { + String oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.STRING_LITERAL__VALUE, oldValue, value)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.STRING_LITERAL__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.STRING_LITERAL__VALUE: + setValue((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.STRING_LITERAL__VALUE: + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.STRING_LITERAL__VALUE: + return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (value: "); + result.append(value); + result.append(')'); + return result.toString(); + } + +} //StringLiteralImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/TransitionBlockImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/TransitionBlockImpl.java new file mode 100644 index 000000000..71c672a35 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/TransitionBlockImpl.java @@ -0,0 +1,194 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.stem.model.ctdl.ctdl.Block; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.TransitionBlock; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Transition Block</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.TransitionBlockImpl#getBlock <em>Block</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class TransitionBlockImpl extends MinimalEObjectImpl.Container implements TransitionBlock +{ + /** + * The cached value of the '{@link #getBlock() <em>Block</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getBlock() + * @generated + * @ordered + */ + protected Block block; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TransitionBlockImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.TRANSITION_BLOCK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Block getBlock() + { + return block; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetBlock(Block newBlock, NotificationChain msgs) + { + Block oldBlock = block; + block = newBlock; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CtdlPackage.TRANSITION_BLOCK__BLOCK, oldBlock, newBlock); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setBlock(Block newBlock) + { + if (newBlock != block) + { + NotificationChain msgs = null; + if (block != null) + msgs = ((InternalEObject)block).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.TRANSITION_BLOCK__BLOCK, null, msgs); + if (newBlock != null) + msgs = ((InternalEObject)newBlock).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CtdlPackage.TRANSITION_BLOCK__BLOCK, null, msgs); + msgs = basicSetBlock(newBlock, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.TRANSITION_BLOCK__BLOCK, newBlock, newBlock)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case CtdlPackage.TRANSITION_BLOCK__BLOCK: + return basicSetBlock(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.TRANSITION_BLOCK__BLOCK: + return getBlock(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.TRANSITION_BLOCK__BLOCK: + setBlock((Block)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.TRANSITION_BLOCK__BLOCK: + setBlock((Block)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.TRANSITION_BLOCK__BLOCK: + return block != null; + } + return super.eIsSet(featureID); + } + +} //TransitionBlockImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/VariableReferenceImpl.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/VariableReferenceImpl.java new file mode 100644 index 000000000..004fbfc30 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/impl/VariableReferenceImpl.java @@ -0,0 +1,172 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.ScopedVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.VariableReference; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Variable Reference</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.ctdl.ctdl.impl.VariableReferenceImpl#getRef <em>Ref</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class VariableReferenceImpl extends ExpressionImpl implements VariableReference +{ + /** + * The cached value of the '{@link #getRef() <em>Ref</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRef() + * @generated + * @ordered + */ + protected ScopedVariableReference ref; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected VariableReferenceImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CtdlPackage.Literals.VARIABLE_REFERENCE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ScopedVariableReference getRef() + { + if (ref != null && ref.eIsProxy()) + { + InternalEObject oldRef = (InternalEObject)ref; + ref = (ScopedVariableReference)eResolveProxy(oldRef); + if (ref != oldRef) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, CtdlPackage.VARIABLE_REFERENCE__REF, oldRef, ref)); + } + } + return ref; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ScopedVariableReference basicGetRef() + { + return ref; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setRef(ScopedVariableReference newRef) + { + ScopedVariableReference oldRef = ref; + ref = newRef; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CtdlPackage.VARIABLE_REFERENCE__REF, oldRef, ref)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case CtdlPackage.VARIABLE_REFERENCE__REF: + if (resolve) return getRef(); + return basicGetRef(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case CtdlPackage.VARIABLE_REFERENCE__REF: + setRef((ScopedVariableReference)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case CtdlPackage.VARIABLE_REFERENCE__REF: + setRef((ScopedVariableReference)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case CtdlPackage.VARIABLE_REFERENCE__REF: + return ref != null; + } + return super.eIsSet(featureID); + } + +} //VariableReferenceImpl diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/util/CtdlAdapterFactory.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/util/CtdlAdapterFactory.java new file mode 100644 index 000000000..a40112bc4 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/util/CtdlAdapterFactory.java @@ -0,0 +1,721 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.util; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.stem.model.ctdl.ctdl.AbsoluteCompartmentValueReference; +import org.eclipse.stem.model.ctdl.ctdl.Block; +import org.eclipse.stem.model.ctdl.ctdl.BooleanLiteral; +import org.eclipse.stem.model.ctdl.ctdl.CompartmentReference; +import org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.DefStatement; +import org.eclipse.stem.model.ctdl.ctdl.DefStatementReference; +import org.eclipse.stem.model.ctdl.ctdl.Div; +import org.eclipse.stem.model.ctdl.ctdl.Evaluation; +import org.eclipse.stem.model.ctdl.ctdl.Expression; +import org.eclipse.stem.model.ctdl.ctdl.ExternalFunctionReference; +import org.eclipse.stem.model.ctdl.ctdl.FunctionCall; +import org.eclipse.stem.model.ctdl.ctdl.FunctionReference; +import org.eclipse.stem.model.ctdl.ctdl.GlobalVariable; +import org.eclipse.stem.model.ctdl.ctdl.GlobalVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.LocalVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.MetamodelResource; +import org.eclipse.stem.model.ctdl.ctdl.Minus; +import org.eclipse.stem.model.ctdl.ctdl.ModelParamReference; +import org.eclipse.stem.model.ctdl.ctdl.Multi; +import org.eclipse.stem.model.ctdl.ctdl.NumberLiteral; +import org.eclipse.stem.model.ctdl.ctdl.Plus; +import org.eclipse.stem.model.ctdl.ctdl.PrimaryExpression; +import org.eclipse.stem.model.ctdl.ctdl.RelativeCompartmentValueReference; +import org.eclipse.stem.model.ctdl.ctdl.ReturnStatement; +import org.eclipse.stem.model.ctdl.ctdl.ScopedVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.StringLiteral; +import org.eclipse.stem.model.ctdl.ctdl.TransitionBlock; +import org.eclipse.stem.model.ctdl.ctdl.VariableReference; + +/** + * <!-- begin-user-doc --> + * The <b>Adapter Factory</b> for the model. + * It provides an adapter <code>createXXX</code> method for each class of the model. + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage + * @generated + */ +public class CtdlAdapterFactory extends AdapterFactoryImpl +{ + /** + * The cached model package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static CtdlPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CtdlAdapterFactory() + { + if (modelPackage == null) + { + modelPackage = CtdlPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * <!-- begin-user-doc --> + * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model. + * <!-- end-user-doc --> + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) + { + if (object == modelPackage) + { + return true; + } + if (object instanceof EObject) + { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch that delegates to the <code>createXXX</code> methods. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected CtdlSwitch<Adapter> modelSwitch = + new CtdlSwitch<Adapter>() + { + @Override + public Adapter caseCompartmentTransitionDefinitions(CompartmentTransitionDefinitions object) + { + return createCompartmentTransitionDefinitionsAdapter(); + } + @Override + public Adapter caseMetamodelResource(MetamodelResource object) + { + return createMetamodelResourceAdapter(); + } + @Override + public Adapter caseTransitionBlock(TransitionBlock object) + { + return createTransitionBlockAdapter(); + } + @Override + public Adapter caseBlock(Block object) + { + return createBlockAdapter(); + } + @Override + public Adapter caseDefStatement(DefStatement object) + { + return createDefStatementAdapter(); + } + @Override + public Adapter caseReturnStatement(ReturnStatement object) + { + return createReturnStatementAdapter(); + } + @Override + public Adapter caseEvaluation(Evaluation object) + { + return createEvaluationAdapter(); + } + @Override + public Adapter caseExpression(Expression object) + { + return createExpressionAdapter(); + } + @Override + public Adapter caseFunctionReference(FunctionReference object) + { + return createFunctionReferenceAdapter(); + } + @Override + public Adapter caseScopedVariableReference(ScopedVariableReference object) + { + return createScopedVariableReferenceAdapter(); + } + @Override + public Adapter caseLocalVariableReference(LocalVariableReference object) + { + return createLocalVariableReferenceAdapter(); + } + @Override + public Adapter caseCompartmentReference(CompartmentReference object) + { + return createCompartmentReferenceAdapter(); + } + @Override + public Adapter caseModelParamReference(ModelParamReference object) + { + return createModelParamReferenceAdapter(); + } + @Override + public Adapter caseGlobalVariable(GlobalVariable object) + { + return createGlobalVariableAdapter(); + } + @Override + public Adapter casePlus(Plus object) + { + return createPlusAdapter(); + } + @Override + public Adapter caseMinus(Minus object) + { + return createMinusAdapter(); + } + @Override + public Adapter caseMulti(Multi object) + { + return createMultiAdapter(); + } + @Override + public Adapter caseDiv(Div object) + { + return createDivAdapter(); + } + @Override + public Adapter casePrimaryExpression(PrimaryExpression object) + { + return createPrimaryExpressionAdapter(); + } + @Override + public Adapter caseNumberLiteral(NumberLiteral object) + { + return createNumberLiteralAdapter(); + } + @Override + public Adapter caseFunctionCall(FunctionCall object) + { + return createFunctionCallAdapter(); + } + @Override + public Adapter caseVariableReference(VariableReference object) + { + return createVariableReferenceAdapter(); + } + @Override + public Adapter caseBooleanLiteral(BooleanLiteral object) + { + return createBooleanLiteralAdapter(); + } + @Override + public Adapter caseStringLiteral(StringLiteral object) + { + return createStringLiteralAdapter(); + } + @Override + public Adapter caseExternalFunctionReference(ExternalFunctionReference object) + { + return createExternalFunctionReferenceAdapter(); + } + @Override + public Adapter caseGlobalVariableReference(GlobalVariableReference object) + { + return createGlobalVariableReferenceAdapter(); + } + @Override + public Adapter caseDefStatementReference(DefStatementReference object) + { + return createDefStatementReferenceAdapter(); + } + @Override + public Adapter caseAbsoluteCompartmentValueReference(AbsoluteCompartmentValueReference object) + { + return createAbsoluteCompartmentValueReferenceAdapter(); + } + @Override + public Adapter caseRelativeCompartmentValueReference(RelativeCompartmentValueReference object) + { + return createRelativeCompartmentValueReferenceAdapter(); + } + @Override + public Adapter defaultCase(EObject object) + { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the <code>target</code>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param target the object to adapt. + * @return the adapter for the <code>target</code>. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) + { + return modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions <em>Compartment Transition Definitions</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions + * @generated + */ + public Adapter createCompartmentTransitionDefinitionsAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.MetamodelResource <em>Metamodel Resource</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.MetamodelResource + * @generated + */ + public Adapter createMetamodelResourceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.TransitionBlock <em>Transition Block</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.TransitionBlock + * @generated + */ + public Adapter createTransitionBlockAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.Block <em>Block</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.Block + * @generated + */ + public Adapter createBlockAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.DefStatement <em>Def Statement</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.DefStatement + * @generated + */ + public Adapter createDefStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.ReturnStatement <em>Return Statement</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.ReturnStatement + * @generated + */ + public Adapter createReturnStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.Evaluation <em>Evaluation</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.Evaluation + * @generated + */ + public Adapter createEvaluationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.Expression <em>Expression</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.Expression + * @generated + */ + public Adapter createExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.FunctionReference <em>Function Reference</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.FunctionReference + * @generated + */ + public Adapter createFunctionReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.ScopedVariableReference <em>Scoped Variable Reference</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.ScopedVariableReference + * @generated + */ + public Adapter createScopedVariableReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.LocalVariableReference <em>Local Variable Reference</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.LocalVariableReference + * @generated + */ + public Adapter createLocalVariableReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.CompartmentReference <em>Compartment Reference</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.CompartmentReference + * @generated + */ + public Adapter createCompartmentReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.ModelParamReference <em>Model Param Reference</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.ModelParamReference + * @generated + */ + public Adapter createModelParamReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.GlobalVariable <em>Global Variable</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.GlobalVariable + * @generated + */ + public Adapter createGlobalVariableAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.Plus <em>Plus</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.Plus + * @generated + */ + public Adapter createPlusAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.Minus <em>Minus</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.Minus + * @generated + */ + public Adapter createMinusAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.Multi <em>Multi</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.Multi + * @generated + */ + public Adapter createMultiAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.Div <em>Div</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.Div + * @generated + */ + public Adapter createDivAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.PrimaryExpression <em>Primary Expression</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.PrimaryExpression + * @generated + */ + public Adapter createPrimaryExpressionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.NumberLiteral <em>Number Literal</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.NumberLiteral + * @generated + */ + public Adapter createNumberLiteralAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.FunctionCall <em>Function Call</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.FunctionCall + * @generated + */ + public Adapter createFunctionCallAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.VariableReference <em>Variable Reference</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.VariableReference + * @generated + */ + public Adapter createVariableReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.BooleanLiteral <em>Boolean Literal</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.BooleanLiteral + * @generated + */ + public Adapter createBooleanLiteralAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.StringLiteral <em>String Literal</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.StringLiteral + * @generated + */ + public Adapter createStringLiteralAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.ExternalFunctionReference <em>External Function Reference</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.ExternalFunctionReference + * @generated + */ + public Adapter createExternalFunctionReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.GlobalVariableReference <em>Global Variable Reference</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.GlobalVariableReference + * @generated + */ + public Adapter createGlobalVariableReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.DefStatementReference <em>Def Statement Reference</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.DefStatementReference + * @generated + */ + public Adapter createDefStatementReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.AbsoluteCompartmentValueReference <em>Absolute Compartment Value Reference</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.AbsoluteCompartmentValueReference + * @generated + */ + public Adapter createAbsoluteCompartmentValueReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.ctdl.ctdl.RelativeCompartmentValueReference <em>Relative Compartment Value Reference</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.ctdl.ctdl.RelativeCompartmentValueReference + * @generated + */ + public Adapter createRelativeCompartmentValueReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for the default case. + * <!-- begin-user-doc --> + * This default implementation returns null. + * <!-- end-user-doc --> + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() + { + return null; + } + +} //CtdlAdapterFactory diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/util/CtdlSwitch.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/util/CtdlSwitch.java new file mode 100644 index 000000000..ee794786f --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/ctdl/util/CtdlSwitch.java @@ -0,0 +1,815 @@ +/** + * <copyright> + * </copyright> + * + */ +package org.eclipse.stem.model.ctdl.ctdl.util; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.util.Switch; +import org.eclipse.stem.model.ctdl.ctdl.AbsoluteCompartmentValueReference; +import org.eclipse.stem.model.ctdl.ctdl.Block; +import org.eclipse.stem.model.ctdl.ctdl.BooleanLiteral; +import org.eclipse.stem.model.ctdl.ctdl.CompartmentReference; +import org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.DefStatement; +import org.eclipse.stem.model.ctdl.ctdl.DefStatementReference; +import org.eclipse.stem.model.ctdl.ctdl.Div; +import org.eclipse.stem.model.ctdl.ctdl.Evaluation; +import org.eclipse.stem.model.ctdl.ctdl.Expression; +import org.eclipse.stem.model.ctdl.ctdl.ExternalFunctionReference; +import org.eclipse.stem.model.ctdl.ctdl.FunctionCall; +import org.eclipse.stem.model.ctdl.ctdl.FunctionReference; +import org.eclipse.stem.model.ctdl.ctdl.GlobalVariable; +import org.eclipse.stem.model.ctdl.ctdl.GlobalVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.LocalVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.MetamodelResource; +import org.eclipse.stem.model.ctdl.ctdl.Minus; +import org.eclipse.stem.model.ctdl.ctdl.ModelParamReference; +import org.eclipse.stem.model.ctdl.ctdl.Multi; +import org.eclipse.stem.model.ctdl.ctdl.NumberLiteral; +import org.eclipse.stem.model.ctdl.ctdl.Plus; +import org.eclipse.stem.model.ctdl.ctdl.PrimaryExpression; +import org.eclipse.stem.model.ctdl.ctdl.RelativeCompartmentValueReference; +import org.eclipse.stem.model.ctdl.ctdl.ReturnStatement; +import org.eclipse.stem.model.ctdl.ctdl.ScopedVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.StringLiteral; +import org.eclipse.stem.model.ctdl.ctdl.TransitionBlock; +import org.eclipse.stem.model.ctdl.ctdl.VariableReference; + +/** + * <!-- begin-user-doc --> + * The <b>Switch</b> for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the <code>caseXXX</code> method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.ctdl.ctdl.CtdlPackage + * @generated + */ +public class CtdlSwitch<T> extends Switch<T> +{ + /** + * The cached model package + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static CtdlPackage modelPackage; + + /** + * Creates an instance of the switch. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CtdlSwitch() + { + if (modelPackage == null) + { + modelPackage = CtdlPackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @parameter ePackage the package in question. + * @return whether this is a switch for the given package. + * @generated + */ + @Override + protected boolean isSwitchFor(EPackage ePackage) + { + return ePackage == modelPackage; + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + @Override + protected T doSwitch(int classifierID, EObject theEObject) + { + switch (classifierID) + { + case CtdlPackage.COMPARTMENT_TRANSITION_DEFINITIONS: + { + CompartmentTransitionDefinitions compartmentTransitionDefinitions = (CompartmentTransitionDefinitions)theEObject; + T result = caseCompartmentTransitionDefinitions(compartmentTransitionDefinitions); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.METAMODEL_RESOURCE: + { + MetamodelResource metamodelResource = (MetamodelResource)theEObject; + T result = caseMetamodelResource(metamodelResource); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.TRANSITION_BLOCK: + { + TransitionBlock transitionBlock = (TransitionBlock)theEObject; + T result = caseTransitionBlock(transitionBlock); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.BLOCK: + { + Block block = (Block)theEObject; + T result = caseBlock(block); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.DEF_STATEMENT: + { + DefStatement defStatement = (DefStatement)theEObject; + T result = caseDefStatement(defStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.RETURN_STATEMENT: + { + ReturnStatement returnStatement = (ReturnStatement)theEObject; + T result = caseReturnStatement(returnStatement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.EVALUATION: + { + Evaluation evaluation = (Evaluation)theEObject; + T result = caseEvaluation(evaluation); + if (result == null) result = caseReturnStatement(evaluation); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.EXPRESSION: + { + Expression expression = (Expression)theEObject; + T result = caseExpression(expression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.FUNCTION_REFERENCE: + { + FunctionReference functionReference = (FunctionReference)theEObject; + T result = caseFunctionReference(functionReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.SCOPED_VARIABLE_REFERENCE: + { + ScopedVariableReference scopedVariableReference = (ScopedVariableReference)theEObject; + T result = caseScopedVariableReference(scopedVariableReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.LOCAL_VARIABLE_REFERENCE: + { + LocalVariableReference localVariableReference = (LocalVariableReference)theEObject; + T result = caseLocalVariableReference(localVariableReference); + if (result == null) result = caseScopedVariableReference(localVariableReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.COMPARTMENT_REFERENCE: + { + CompartmentReference compartmentReference = (CompartmentReference)theEObject; + T result = caseCompartmentReference(compartmentReference); + if (result == null) result = caseScopedVariableReference(compartmentReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.MODEL_PARAM_REFERENCE: + { + ModelParamReference modelParamReference = (ModelParamReference)theEObject; + T result = caseModelParamReference(modelParamReference); + if (result == null) result = caseScopedVariableReference(modelParamReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.GLOBAL_VARIABLE: + { + GlobalVariable globalVariable = (GlobalVariable)theEObject; + T result = caseGlobalVariable(globalVariable); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.PLUS: + { + Plus plus = (Plus)theEObject; + T result = casePlus(plus); + if (result == null) result = caseExpression(plus); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.MINUS: + { + Minus minus = (Minus)theEObject; + T result = caseMinus(minus); + if (result == null) result = caseExpression(minus); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.MULTI: + { + Multi multi = (Multi)theEObject; + T result = caseMulti(multi); + if (result == null) result = caseExpression(multi); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.DIV: + { + Div div = (Div)theEObject; + T result = caseDiv(div); + if (result == null) result = caseExpression(div); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.PRIMARY_EXPRESSION: + { + PrimaryExpression primaryExpression = (PrimaryExpression)theEObject; + T result = casePrimaryExpression(primaryExpression); + if (result == null) result = caseExpression(primaryExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.NUMBER_LITERAL: + { + NumberLiteral numberLiteral = (NumberLiteral)theEObject; + T result = caseNumberLiteral(numberLiteral); + if (result == null) result = caseExpression(numberLiteral); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.FUNCTION_CALL: + { + FunctionCall functionCall = (FunctionCall)theEObject; + T result = caseFunctionCall(functionCall); + if (result == null) result = caseExpression(functionCall); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.VARIABLE_REFERENCE: + { + VariableReference variableReference = (VariableReference)theEObject; + T result = caseVariableReference(variableReference); + if (result == null) result = caseExpression(variableReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.BOOLEAN_LITERAL: + { + BooleanLiteral booleanLiteral = (BooleanLiteral)theEObject; + T result = caseBooleanLiteral(booleanLiteral); + if (result == null) result = caseExpression(booleanLiteral); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.STRING_LITERAL: + { + StringLiteral stringLiteral = (StringLiteral)theEObject; + T result = caseStringLiteral(stringLiteral); + if (result == null) result = caseExpression(stringLiteral); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.EXTERNAL_FUNCTION_REFERENCE: + { + ExternalFunctionReference externalFunctionReference = (ExternalFunctionReference)theEObject; + T result = caseExternalFunctionReference(externalFunctionReference); + if (result == null) result = caseFunctionReference(externalFunctionReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.GLOBAL_VARIABLE_REFERENCE: + { + GlobalVariableReference globalVariableReference = (GlobalVariableReference)theEObject; + T result = caseGlobalVariableReference(globalVariableReference); + if (result == null) result = caseScopedVariableReference(globalVariableReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.DEF_STATEMENT_REFERENCE: + { + DefStatementReference defStatementReference = (DefStatementReference)theEObject; + T result = caseDefStatementReference(defStatementReference); + if (result == null) result = caseLocalVariableReference(defStatementReference); + if (result == null) result = caseScopedVariableReference(defStatementReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.ABSOLUTE_COMPARTMENT_VALUE_REFERENCE: + { + AbsoluteCompartmentValueReference absoluteCompartmentValueReference = (AbsoluteCompartmentValueReference)theEObject; + T result = caseAbsoluteCompartmentValueReference(absoluteCompartmentValueReference); + if (result == null) result = caseCompartmentReference(absoluteCompartmentValueReference); + if (result == null) result = caseScopedVariableReference(absoluteCompartmentValueReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case CtdlPackage.RELATIVE_COMPARTMENT_VALUE_REFERENCE: + { + RelativeCompartmentValueReference relativeCompartmentValueReference = (RelativeCompartmentValueReference)theEObject; + T result = caseRelativeCompartmentValueReference(relativeCompartmentValueReference); + if (result == null) result = caseCompartmentReference(relativeCompartmentValueReference); + if (result == null) result = caseScopedVariableReference(relativeCompartmentValueReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Compartment Transition Definitions</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Compartment Transition Definitions</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCompartmentTransitionDefinitions(CompartmentTransitionDefinitions object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Metamodel Resource</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Metamodel Resource</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMetamodelResource(MetamodelResource object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Transition Block</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Transition Block</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTransitionBlock(TransitionBlock object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Block</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Block</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBlock(Block object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Def Statement</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Def Statement</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDefStatement(DefStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Return Statement</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Return Statement</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseReturnStatement(ReturnStatement object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Evaluation</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Evaluation</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEvaluation(Evaluation object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Expression</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Expression</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseExpression(Expression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Function Reference</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Function Reference</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFunctionReference(FunctionReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Scoped Variable Reference</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Scoped Variable Reference</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseScopedVariableReference(ScopedVariableReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Local Variable Reference</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Local Variable Reference</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLocalVariableReference(LocalVariableReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Compartment Reference</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Compartment Reference</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCompartmentReference(CompartmentReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Model Param Reference</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Model Param Reference</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseModelParamReference(ModelParamReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Global Variable</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Global Variable</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseGlobalVariable(GlobalVariable object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Plus</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Plus</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePlus(Plus object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Minus</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Minus</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMinus(Minus object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Multi</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Multi</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMulti(Multi object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Div</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Div</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDiv(Div object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Primary Expression</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Primary Expression</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePrimaryExpression(PrimaryExpression object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Number Literal</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Number Literal</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNumberLiteral(NumberLiteral object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Function Call</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Function Call</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFunctionCall(FunctionCall object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Variable Reference</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Variable Reference</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVariableReference(VariableReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Boolean Literal</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Boolean Literal</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBooleanLiteral(BooleanLiteral object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>String Literal</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>String Literal</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStringLiteral(StringLiteral object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>External Function Reference</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>External Function Reference</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseExternalFunctionReference(ExternalFunctionReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Global Variable Reference</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Global Variable Reference</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseGlobalVariableReference(GlobalVariableReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Def Statement Reference</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Def Statement Reference</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDefStatementReference(DefStatementReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Absolute Compartment Value Reference</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Absolute Compartment Value Reference</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAbsoluteCompartmentValueReference(AbsoluteCompartmentValueReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Relative Compartment Value Reference</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Relative Compartment Value Reference</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRelativeCompartmentValueReference(RelativeCompartmentValueReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>EObject</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + @Override + public T defaultCase(EObject object) + { + return null; + } + +} //CtdlSwitch diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/CTDLAntlrTokenFileProvider.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/CTDLAntlrTokenFileProvider.java new file mode 100644 index 000000000..91f936d45 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/CTDLAntlrTokenFileProvider.java @@ -0,0 +1,16 @@ +/* +* generated by Xtext +*/ +package org.eclipse.stem.model.ctdl.parser.antlr; + +import java.io.InputStream; + +import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider; + +public class CTDLAntlrTokenFileProvider implements IAntlrTokenFileProvider { + + public InputStream getAntlrTokenFile() { + ClassLoader classLoader = getClass().getClassLoader(); + return classLoader.getResourceAsStream("org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.tokens"); + } +} diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/CTDLParser.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/CTDLParser.java new file mode 100644 index 000000000..b3bab7284 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/CTDLParser.java @@ -0,0 +1,39 @@ +/* +* generated by Xtext +*/ +package org.eclipse.stem.model.ctdl.parser.antlr; + +import org.eclipse.stem.model.ctdl.services.CTDLGrammarAccess; +import org.eclipse.xtext.parser.antlr.XtextTokenStream; + +import com.google.inject.Inject; + +public class CTDLParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser { + + @Inject + private CTDLGrammarAccess grammarAccess; + + @Override + protected void setInitialHiddenTokens(XtextTokenStream tokenStream) { + tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT"); + } + + @Override + protected org.eclipse.stem.model.ctdl.parser.antlr.internal.InternalCTDLParser createParser(XtextTokenStream stream) { + return new org.eclipse.stem.model.ctdl.parser.antlr.internal.InternalCTDLParser(stream, getGrammarAccess()); + } + + @Override + protected String getDefaultRuleName() { + return "CompartmentTransitionDefinitions"; + } + + public CTDLGrammarAccess getGrammarAccess() { + return this.grammarAccess; + } + + public void setGrammarAccess(CTDLGrammarAccess grammarAccess) { + this.grammarAccess = grammarAccess; + } + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g new file mode 100644 index 000000000..1ec2a6556 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g @@ -0,0 +1,862 @@ +/* +* generated by Xtext +*/ +grammar InternalCTDL; + +options { + superClass=AbstractInternalAntlrParser; + +} + +@lexer::header { +package org.eclipse.stem.model.ctdl.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 org.eclipse.stem.model.ctdl.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 org.eclipse.stem.model.ctdl.services.CTDLGrammarAccess; + +} + +@parser::members { + + private CTDLGrammarAccess grammarAccess; + + public InternalCTDLParser(TokenStream input, CTDLGrammarAccess grammarAccess) { + this(input); + this.grammarAccess = grammarAccess; + registerRules(grammarAccess.getGrammar()); + } + + @Override + protected String getFirstRuleName() { + return "CompartmentTransitionDefinitions"; + } + + @Override + protected CTDLGrammarAccess getGrammarAccess() { + return grammarAccess; + } +} + +@rulecatch { + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } +} + + + + +// Entry rule entryRuleCompartmentTransitionDefinitions +entryRuleCompartmentTransitionDefinitions returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getCompartmentTransitionDefinitionsRule()); } + iv_ruleCompartmentTransitionDefinitions=ruleCompartmentTransitionDefinitions + { $current=$iv_ruleCompartmentTransitionDefinitions.current; } + EOF +; + +// Rule CompartmentTransitionDefinitions +ruleCompartmentTransitionDefinitions returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +(( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getCompartmentTransitionDefinitionsRule()); + } + } + otherlv_0=RULE_ID + { + newLeafNode(otherlv_0, grammarAccess.getCompartmentTransitionDefinitionsAccess().getMetamodelMetamodelResourceCrossReference_0_0()); + } + +) +)?( +( + { + newCompositeNode(grammarAccess.getCompartmentTransitionDefinitionsAccess().getExpressionTransitionBlockParserRuleCall_1_0()); + } + lv_expression_1_0=ruleTransitionBlock { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCompartmentTransitionDefinitionsRule()); + } + set( + $current, + "expression", + lv_expression_1_0, + "TransitionBlock"); + afterParserOrEnumRuleCall(); + } + +) +)) +; + + + + + + + +// Entry rule entryRuleTransitionBlock +entryRuleTransitionBlock returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getTransitionBlockRule()); } + iv_ruleTransitionBlock=ruleTransitionBlock + { $current=$iv_ruleTransitionBlock.current; } + EOF +; + +// Rule TransitionBlock +ruleTransitionBlock returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( +( + { + newCompositeNode(grammarAccess.getTransitionBlockAccess().getBlockBlockParserRuleCall_0()); + } + lv_block_0_0=ruleBlock { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getTransitionBlockRule()); + } + set( + $current, + "block", + lv_block_0_0, + "Block"); + afterParserOrEnumRuleCall(); + } + +) +) +; + + + + + + + + + +// Entry rule entryRuleBlock +entryRuleBlock returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getBlockRule()); } + iv_ruleBlock=ruleBlock + { $current=$iv_ruleBlock.current; } + EOF +; + +// Rule Block +ruleBlock returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +(( + { + $current = forceCreateModelElement( + grammarAccess.getBlockAccess().getBlockAction_0(), + $current); + } +)( +( + { + newCompositeNode(grammarAccess.getBlockAccess().getStatementsDefStatementParserRuleCall_1_0()); + } + lv_statements_1_0=ruleDefStatement { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getBlockRule()); + } + add( + $current, + "statements", + lv_statements_1_0, + "DefStatement"); + afterParserOrEnumRuleCall(); + } + +) +)*( +( + { + newCompositeNode(grammarAccess.getBlockAccess().getRetReturnStatementParserRuleCall_2_0()); + } + lv_ret_2_0=ruleReturnStatement { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getBlockRule()); + } + set( + $current, + "ret", + lv_ret_2_0, + "ReturnStatement"); + afterParserOrEnumRuleCall(); + } + +) +)) +; + + + + + +// Entry rule entryRuleDefStatement +entryRuleDefStatement returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getDefStatementRule()); } + iv_ruleDefStatement=ruleDefStatement + { $current=$iv_ruleDefStatement.current; } + EOF +; + +// Rule DefStatement +ruleDefStatement returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +(( +( + lv_varname_0_0=RULE_ID + { + newLeafNode(lv_varname_0_0, grammarAccess.getDefStatementAccess().getVarnameIDTerminalRuleCall_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getDefStatementRule()); + } + setWithLastConsumed( + $current, + "varname", + lv_varname_0_0, + "ID"); + } + +) +) otherlv_1='=' + { + newLeafNode(otherlv_1, grammarAccess.getDefStatementAccess().getEqualsSignKeyword_1()); + } +( +( + { + newCompositeNode(grammarAccess.getDefStatementAccess().getExprEvaluationParserRuleCall_2_0()); + } + lv_expr_2_0=ruleEvaluation { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getDefStatementRule()); + } + set( + $current, + "expr", + lv_expr_2_0, + "Evaluation"); + afterParserOrEnumRuleCall(); + } + +) +)) +; + + + + + +// Entry rule entryRuleReturnStatement +entryRuleReturnStatement returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getReturnStatementRule()); } + iv_ruleReturnStatement=ruleReturnStatement + { $current=$iv_ruleReturnStatement.current; } + EOF +; + +// Rule ReturnStatement +ruleReturnStatement returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( otherlv_0='delta' + { + newLeafNode(otherlv_0, grammarAccess.getReturnStatementAccess().getDeltaKeyword_0()); + } + + { + newCompositeNode(grammarAccess.getReturnStatementAccess().getEvaluationParserRuleCall_1()); + } + this_Evaluation_1=ruleEvaluation + { + $current = $this_Evaluation_1.current; + afterParserOrEnumRuleCall(); + } +) +; + + + + + +// Entry rule entryRuleEvaluation +entryRuleEvaluation returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getEvaluationRule()); } + iv_ruleEvaluation=ruleEvaluation + { $current=$iv_ruleEvaluation.current; } + EOF +; + +// Rule Evaluation +ruleEvaluation returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +(( +( + { + newCompositeNode(grammarAccess.getEvaluationAccess().getExpressionExpressionParserRuleCall_0_0()); + } + lv_expression_0_0=ruleExpression { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getEvaluationRule()); + } + set( + $current, + "expression", + lv_expression_0_0, + "Expression"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_1=';' + { + newLeafNode(otherlv_1, grammarAccess.getEvaluationAccess().getSemicolonKeyword_1()); + } +) +; + + + + + +// Entry rule entryRuleExpression +entryRuleExpression returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getExpressionRule()); } + iv_ruleExpression=ruleExpression + { $current=$iv_ruleExpression.current; } + EOF +; + +// Rule Expression +ruleExpression returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: + + { + newCompositeNode(grammarAccess.getExpressionAccess().getAdditionParserRuleCall()); + } + this_Addition_0=ruleAddition + { + $current = $this_Addition_0.current; + afterParserOrEnumRuleCall(); + } + +; + + + + + +// Entry rule entryRuleAddition +entryRuleAddition returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getAdditionRule()); } + iv_ruleAddition=ruleAddition + { $current=$iv_ruleAddition.current; } + EOF +; + +// Rule Addition +ruleAddition returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( + { + newCompositeNode(grammarAccess.getAdditionAccess().getMultiplicationParserRuleCall_0()); + } + this_Multiplication_0=ruleMultiplication + { + $current = $this_Multiplication_0.current; + afterParserOrEnumRuleCall(); + } +(((( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getAdditionAccess().getPlusLeftAction_1_0_0_0(), + $current); + } +) otherlv_2='+' + { + newLeafNode(otherlv_2, grammarAccess.getAdditionAccess().getPlusSignKeyword_1_0_0_1()); + } +) + |(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getAdditionAccess().getMinusLeftAction_1_0_1_0(), + $current); + } +) otherlv_4='-' + { + newLeafNode(otherlv_4, grammarAccess.getAdditionAccess().getHyphenMinusKeyword_1_0_1_1()); + } +))( +( + { + newCompositeNode(grammarAccess.getAdditionAccess().getRightMultiplicationParserRuleCall_1_1_0()); + } + lv_right_5_0=ruleMultiplication { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAdditionRule()); + } + set( + $current, + "right", + lv_right_5_0, + "Multiplication"); + afterParserOrEnumRuleCall(); + } + +) +))*) +; + + + + + +// Entry rule entryRuleMultiplication +entryRuleMultiplication returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getMultiplicationRule()); } + iv_ruleMultiplication=ruleMultiplication + { $current=$iv_ruleMultiplication.current; } + EOF +; + +// Rule Multiplication +ruleMultiplication returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( + { + newCompositeNode(grammarAccess.getMultiplicationAccess().getNegatedExpressionParserRuleCall_0()); + } + this_NegatedExpression_0=ruleNegatedExpression + { + $current = $this_NegatedExpression_0.current; + afterParserOrEnumRuleCall(); + } +(((( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getMultiplicationAccess().getMultiLeftAction_1_0_0_0(), + $current); + } +) otherlv_2='*' + { + newLeafNode(otherlv_2, grammarAccess.getMultiplicationAccess().getAsteriskKeyword_1_0_0_1()); + } +) + |(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getMultiplicationAccess().getDivLeftAction_1_0_1_0(), + $current); + } +) otherlv_4='/' + { + newLeafNode(otherlv_4, grammarAccess.getMultiplicationAccess().getSolidusKeyword_1_0_1_1()); + } +))( +( + { + newCompositeNode(grammarAccess.getMultiplicationAccess().getRightNegatedExpressionParserRuleCall_1_1_0()); + } + lv_right_5_0=ruleNegatedExpression { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getMultiplicationRule()); + } + set( + $current, + "right", + lv_right_5_0, + "NegatedExpression"); + afterParserOrEnumRuleCall(); + } + +) +))*) +; + + + + + +// Entry rule entryRuleNegatedExpression +entryRuleNegatedExpression returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getNegatedExpressionRule()); } + iv_ruleNegatedExpression=ruleNegatedExpression + { $current=$iv_ruleNegatedExpression.current; } + EOF +; + +// Rule NegatedExpression +ruleNegatedExpression returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +(( + { + $current = forceCreateModelElement( + grammarAccess.getNegatedExpressionAccess().getPrimaryExpressionAction_0(), + $current); + } +)( +( + lv_negate_1_0= '-' + { + newLeafNode(lv_negate_1_0, grammarAccess.getNegatedExpressionAccess().getNegateHyphenMinusKeyword_1_0()); + } + + { + if ($current==null) { + $current = createModelElement(grammarAccess.getNegatedExpressionRule()); + } + setWithLastConsumed($current, "negate", true, "-"); + } + +) +)?( +( + { + newCompositeNode(grammarAccess.getNegatedExpressionAccess().getExpPrimaryExpressionParserRuleCall_2_0()); + } + lv_exp_2_0=rulePrimaryExpression { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getNegatedExpressionRule()); + } + set( + $current, + "exp", + lv_exp_2_0, + "PrimaryExpression"); + afterParserOrEnumRuleCall(); + } + +) +)) +; + + + + + +// Entry rule entryRulePrimaryExpression +entryRulePrimaryExpression returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getPrimaryExpressionRule()); } + iv_rulePrimaryExpression=rulePrimaryExpression + { $current=$iv_rulePrimaryExpression.current; } + EOF +; + +// Rule PrimaryExpression +rulePrimaryExpression returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +((( + { + $current = forceCreateModelElement( + grammarAccess.getPrimaryExpressionAccess().getNumberLiteralAction_0_0(), + $current); + } +)( +( + lv_value_1_0=RULE_NUMBER + { + newLeafNode(lv_value_1_0, grammarAccess.getPrimaryExpressionAccess().getValueNUMBERTerminalRuleCall_0_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getPrimaryExpressionRule()); + } + setWithLastConsumed( + $current, + "value", + lv_value_1_0, + "NUMBER"); + } + +) +)) + |( otherlv_2='(' + { + newLeafNode(otherlv_2, grammarAccess.getPrimaryExpressionAccess().getLeftParenthesisKeyword_1_0()); + } +( +( + { + newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getExpExpressionParserRuleCall_1_1_0()); + } + lv_exp_3_0=ruleExpression { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule()); + } + set( + $current, + "exp", + lv_exp_3_0, + "Expression"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_4=')' + { + newLeafNode(otherlv_4, grammarAccess.getPrimaryExpressionAccess().getRightParenthesisKeyword_1_2()); + } +) + |(( + { + $current = forceCreateModelElement( + grammarAccess.getPrimaryExpressionAccess().getFunctionCallAction_2_0(), + $current); + } +)( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getPrimaryExpressionRule()); + } + } + otherlv_6=RULE_ID + { + newLeafNode(otherlv_6, grammarAccess.getPrimaryExpressionAccess().getRefFunctionReferenceCrossReference_2_1_0()); + } + +) +)( otherlv_7='(' + { + newLeafNode(otherlv_7, grammarAccess.getPrimaryExpressionAccess().getLeftParenthesisKeyword_2_2_0()); + } +( +( + { + newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getArgsFunctionArgumentParserRuleCall_2_2_1_0()); + } + lv_args_8_0=ruleFunctionArgument { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule()); + } + add( + $current, + "args", + lv_args_8_0, + "FunctionArgument"); + afterParserOrEnumRuleCall(); + } + +) +)?( otherlv_9=',' + { + newLeafNode(otherlv_9, grammarAccess.getPrimaryExpressionAccess().getCommaKeyword_2_2_2_0()); + } +( +( + { + newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getArgsFunctionArgumentParserRuleCall_2_2_2_1_0()); + } + lv_args_10_0=ruleFunctionArgument { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule()); + } + add( + $current, + "args", + lv_args_10_0, + "FunctionArgument"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_11=')' + { + newLeafNode(otherlv_11, grammarAccess.getPrimaryExpressionAccess().getRightParenthesisKeyword_2_2_3()); + } +)) + |(( + { + $current = forceCreateModelElement( + grammarAccess.getPrimaryExpressionAccess().getVariableReferenceAction_3_0(), + $current); + } +)( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getPrimaryExpressionRule()); + } + } + otherlv_13=RULE_ID + { + newLeafNode(otherlv_13, grammarAccess.getPrimaryExpressionAccess().getRefScopedVariableReferenceCrossReference_3_1_0()); + } + +) +))) +; + + + + + +// Entry rule entryRuleFunctionArgument +entryRuleFunctionArgument returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getFunctionArgumentRule()); } + iv_ruleFunctionArgument=ruleFunctionArgument + { $current=$iv_ruleFunctionArgument.current; } + EOF +; + +// Rule FunctionArgument +ruleFunctionArgument returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +((( + { + $current = forceCreateModelElement( + grammarAccess.getFunctionArgumentAccess().getBooleanLiteralAction_0_0(), + $current); + } +)( +( + lv_value_1_0=RULE_BOOLEAN + { + newLeafNode(lv_value_1_0, grammarAccess.getFunctionArgumentAccess().getValueBOOLEANTerminalRuleCall_0_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getFunctionArgumentRule()); + } + setWithLastConsumed( + $current, + "value", + lv_value_1_0, + "BOOLEAN"); + } + +) +)) + |(( + { + $current = forceCreateModelElement( + grammarAccess.getFunctionArgumentAccess().getStringLiteralAction_1_0(), + $current); + } +)( +( + lv_value_3_0=RULE_STRING + { + newLeafNode(lv_value_3_0, grammarAccess.getFunctionArgumentAccess().getValueSTRINGTerminalRuleCall_1_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getFunctionArgumentRule()); + } + setWithLastConsumed( + $current, + "value", + lv_value_3_0, + "STRING"); + } + +) +)) + | + { + newCompositeNode(grammarAccess.getFunctionArgumentAccess().getExpressionParserRuleCall_2()); + } + this_Expression_4=ruleExpression + { + $current = $this_Expression_4.current; + afterParserOrEnumRuleCall(); + } +) +; + + + + + + + + + + + + + + + + + +RULE_BOOLEAN : ('true'|'false'); + +RULE_NUMBER : (('0'..'9')+ ('.' ('0'..'9')*)?|'.' ('0'..'9')+) (('e'|'E') ('+'|'-')? ('0'..'9')+)?; + +RULE_INT : 'this one has been deactivated'; + +RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; + +RULE_STRING : ('"' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'"')))* '"'|'\'' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'\'')))* '\''); + +RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/'; + +RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?; + +RULE_WS : (' '|'\t'|'\r'|'\n')+; + +RULE_ANY_OTHER : .; + + diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.tokens b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.tokens new file mode 100644 index 000000000..090f73453 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.tokens @@ -0,0 +1,29 @@ +RULE_BOOLEAN=6 +RULE_ID=4 +T__22=22 +RULE_ANY_OTHER=12 +T__21=21 +T__20=20 +RULE_SL_COMMENT=10 +RULE_ML_COMMENT=9 +T__19=19 +RULE_STRING=7 +T__16=16 +T__15=15 +T__18=18 +T__17=17 +RULE_NUMBER=5 +T__14=14 +T__13=13 +RULE_INT=8 +RULE_WS=11 +';'=15 +'delta'=14 +'='=13 +'/'=19 +'('=20 +'*'=18 +'-'=17 +'+'=16 +','=22 +')'=21 diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDLLexer.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDLLexer.java new file mode 100644 index 000000000..76a57b79a --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDLLexer.java @@ -0,0 +1,1368 @@ +package org.eclipse.stem.model.ctdl.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.antlr.runtime.BaseRecognizer; +import org.antlr.runtime.CharStream; +import org.antlr.runtime.DFA; +import org.antlr.runtime.EarlyExitException; +import org.antlr.runtime.IntStream; +import org.antlr.runtime.MismatchedSetException; +import org.antlr.runtime.NoViableAltException; +import org.antlr.runtime.RecognitionException; +import org.antlr.runtime.RecognizerSharedState; +import org.eclipse.xtext.parser.antlr.Lexer; + +@SuppressWarnings("all") +public class InternalCTDLLexer extends Lexer { + public static final int RULE_BOOLEAN=6; + public static final int RULE_ID=4; + public static final int T__22=22; + public static final int RULE_ANY_OTHER=12; + public static final int T__21=21; + public static final int T__20=20; + public static final int EOF=-1; + public static final int RULE_SL_COMMENT=10; + public static final int RULE_ML_COMMENT=9; + public static final int T__19=19; + public static final int RULE_STRING=7; + public static final int T__16=16; + public static final int T__15=15; + public static final int T__18=18; + public static final int T__17=17; + public static final int RULE_NUMBER=5; + public static final int T__14=14; + public static final int T__13=13; + public static final int RULE_INT=8; + public static final int RULE_WS=11; + + // delegates + // delegators + + public InternalCTDLLexer() {;} + public InternalCTDLLexer(CharStream input) { + this(input, new RecognizerSharedState()); + } + public InternalCTDLLexer(CharStream input, RecognizerSharedState state) { + super(input,state); + + } + public String getGrammarFileName() { return "../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g"; } + + // $ANTLR start "T__13" + public final void mT__13() throws RecognitionException { + try { + int _type = T__13; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:11:7: ( '=' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:11:9: '=' + { + match('='); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__13" + + // $ANTLR start "T__14" + public final void mT__14() throws RecognitionException { + try { + int _type = T__14; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:12:7: ( 'delta' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:12:9: 'delta' + { + match("delta"); + + + } + + 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; + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:13:7: ( ';' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:13: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; + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:14:7: ( '+' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:14: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; + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:15:7: ( '-' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:15: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; + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:16:7: ( '*' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:16: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; + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:17:7: ( '/' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:17: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; + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:18:7: ( '(' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:18: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; + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:19:7: ( ')' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:19: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; + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:20:7: ( ',' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:20:9: ',' + { + match(','); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__22" + + // $ANTLR start "RULE_BOOLEAN" + public final void mRULE_BOOLEAN() throws RecognitionException { + try { + int _type = RULE_BOOLEAN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:844:14: ( ( 'true' | 'false' ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:844:16: ( 'true' | 'false' ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:844:16: ( 'true' | 'false' ) + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0=='t') ) { + alt1=1; + } + else if ( (LA1_0=='f') ) { + alt1=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 1, 0, input); + + throw nvae; + } + switch (alt1) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:844:17: 'true' + { + match("true"); + + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:844:24: 'false' + { + match("false"); + + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_BOOLEAN" + + // $ANTLR start "RULE_NUMBER" + public final void mRULE_NUMBER() throws RecognitionException { + try { + int _type = RULE_NUMBER; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:846:13: ( ( ( '0' .. '9' )+ ( '.' ( '0' .. '9' )* )? | '.' ( '0' .. '9' )+ ) ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )? ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:846:15: ( ( '0' .. '9' )+ ( '.' ( '0' .. '9' )* )? | '.' ( '0' .. '9' )+ ) ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )? + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:846:15: ( ( '0' .. '9' )+ ( '.' ( '0' .. '9' )* )? | '.' ( '0' .. '9' )+ ) + int alt6=2; + int LA6_0 = input.LA(1); + + if ( ((LA6_0>='0' && LA6_0<='9')) ) { + alt6=1; + } + else if ( (LA6_0=='.') ) { + alt6=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 6, 0, input); + + throw nvae; + } + switch (alt6) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:846:16: ( '0' .. '9' )+ ( '.' ( '0' .. '9' )* )? + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:846:16: ( '0' .. '9' )+ + int cnt2=0; + loop2: + do { + int alt2=2; + int LA2_0 = input.LA(1); + + if ( ((LA2_0>='0' && LA2_0<='9')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:846:17: '0' .. '9' + { + matchRange('0','9'); + + } + break; + + default : + if ( cnt2 >= 1 ) break loop2; + EarlyExitException eee = + new EarlyExitException(2, input); + throw eee; + } + cnt2++; + } while (true); + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:846:28: ( '.' ( '0' .. '9' )* )? + int alt4=2; + int LA4_0 = input.LA(1); + + if ( (LA4_0=='.') ) { + alt4=1; + } + switch (alt4) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:846:29: '.' ( '0' .. '9' )* + { + match('.'); + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:846:33: ( '0' .. '9' )* + loop3: + do { + int alt3=2; + int LA3_0 = input.LA(1); + + if ( ((LA3_0>='0' && LA3_0<='9')) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:846:34: '0' .. '9' + { + matchRange('0','9'); + + } + break; + + default : + break loop3; + } + } while (true); + + + } + break; + + } + + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:846:47: '.' ( '0' .. '9' )+ + { + match('.'); + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:846:51: ( '0' .. '9' )+ + int cnt5=0; + loop5: + do { + int alt5=2; + int LA5_0 = input.LA(1); + + if ( ((LA5_0>='0' && LA5_0<='9')) ) { + alt5=1; + } + + + switch (alt5) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:846:52: '0' .. '9' + { + matchRange('0','9'); + + } + break; + + default : + if ( cnt5 >= 1 ) break loop5; + EarlyExitException eee = + new EarlyExitException(5, input); + throw eee; + } + cnt5++; + } while (true); + + + } + break; + + } + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:846:64: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )? + int alt9=2; + int LA9_0 = input.LA(1); + + if ( (LA9_0=='E'||LA9_0=='e') ) { + alt9=1; + } + switch (alt9) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:846:65: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ + { + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:846:75: ( '+' | '-' )? + int alt7=2; + int LA7_0 = input.LA(1); + + if ( (LA7_0=='+'||LA7_0=='-') ) { + alt7=1; + } + switch (alt7) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g: + { + if ( input.LA(1)=='+'||input.LA(1)=='-' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + } + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:846:86: ( '0' .. '9' )+ + int cnt8=0; + loop8: + do { + int alt8=2; + int LA8_0 = input.LA(1); + + if ( ((LA8_0>='0' && LA8_0<='9')) ) { + alt8=1; + } + + + switch (alt8) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:846:87: '0' .. '9' + { + matchRange('0','9'); + + } + break; + + default : + if ( cnt8 >= 1 ) break loop8; + EarlyExitException eee = + new EarlyExitException(8, input); + throw eee; + } + cnt8++; + } while (true); + + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_NUMBER" + + // $ANTLR start "RULE_INT" + public final void mRULE_INT() throws RecognitionException { + try { + int _type = RULE_INT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:848:10: ( 'this one has been deactivated' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:848:12: 'this one has been deactivated' + { + match("this one has been deactivated"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_INT" + + // $ANTLR start "RULE_ID" + public final void mRULE_ID() throws RecognitionException { + try { + int _type = RULE_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:850:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:850:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:850:11: ( '^' )? + int alt10=2; + int LA10_0 = input.LA(1); + + if ( (LA10_0=='^') ) { + alt10=1; + } + switch (alt10) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:850:11: '^' + { + match('^'); + + } + break; + + } + + if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:850:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + loop11: + do { + int alt11=2; + int LA11_0 = input.LA(1); + + if ( ((LA11_0>='0' && LA11_0<='9')||(LA11_0>='A' && LA11_0<='Z')||LA11_0=='_'||(LA11_0>='a' && LA11_0<='z')) ) { + alt11=1; + } + + + switch (alt11) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g: + { + if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop11; + } + } 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; + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:852:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:852:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:852:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + int alt14=2; + int LA14_0 = input.LA(1); + + if ( (LA14_0=='\"') ) { + alt14=1; + } + else if ( (LA14_0=='\'') ) { + alt14=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 14, 0, input); + + throw nvae; + } + switch (alt14) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:852:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + { + match('\"'); + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:852:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* + loop12: + do { + int alt12=3; + int LA12_0 = input.LA(1); + + if ( (LA12_0=='\\') ) { + alt12=1; + } + else if ( ((LA12_0>='\u0000' && LA12_0<='!')||(LA12_0>='#' && LA12_0<='[')||(LA12_0>=']' && LA12_0<='\uFFFF')) ) { + alt12=2; + } + + + switch (alt12) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:852:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) + { + match('\\'); + if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:852:66: ~ ( ( '\\\\' | '\"' ) ) + { + 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 loop12; + } + } while (true); + + match('\"'); + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:852:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' + { + match('\''); + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:852:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* + loop13: + do { + int alt13=3; + int LA13_0 = input.LA(1); + + if ( (LA13_0=='\\') ) { + alt13=1; + } + else if ( ((LA13_0>='\u0000' && LA13_0<='&')||(LA13_0>='(' && LA13_0<='[')||(LA13_0>=']' && LA13_0<='\uFFFF')) ) { + alt13=2; + } + + + switch (alt13) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:852:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) + { + match('\\'); + if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:852:137: ~ ( ( '\\\\' | '\\'' ) ) + { + 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 loop13; + } + } while (true); + + match('\''); + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_STRING" + + // $ANTLR start "RULE_ML_COMMENT" + public final void mRULE_ML_COMMENT() throws RecognitionException { + try { + int _type = RULE_ML_COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:854:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:854:19: '/*' ( options {greedy=false; } : . )* '*/' + { + match("/*"); + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:854:24: ( options {greedy=false; } : . )* + loop15: + do { + int alt15=2; + int LA15_0 = input.LA(1); + + if ( (LA15_0=='*') ) { + int LA15_1 = input.LA(2); + + if ( (LA15_1=='/') ) { + alt15=2; + } + else if ( ((LA15_1>='\u0000' && LA15_1<='.')||(LA15_1>='0' && LA15_1<='\uFFFF')) ) { + alt15=1; + } + + + } + else if ( ((LA15_0>='\u0000' && LA15_0<=')')||(LA15_0>='+' && LA15_0<='\uFFFF')) ) { + alt15=1; + } + + + switch (alt15) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:854:52: . + { + matchAny(); + + } + break; + + default : + break loop15; + } + } 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; + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:856:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:856:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + { + match("//"); + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:856:24: (~ ( ( '\\n' | '\\r' ) ) )* + loop16: + do { + int alt16=2; + int LA16_0 = input.LA(1); + + if ( ((LA16_0>='\u0000' && LA16_0<='\t')||(LA16_0>='\u000B' && LA16_0<='\f')||(LA16_0>='\u000E' && LA16_0<='\uFFFF')) ) { + alt16=1; + } + + + switch (alt16) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:856: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 loop16; + } + } while (true); + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:856:40: ( ( '\\r' )? '\\n' )? + int alt18=2; + int LA18_0 = input.LA(1); + + if ( (LA18_0=='\n'||LA18_0=='\r') ) { + alt18=1; + } + switch (alt18) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:856:41: ( '\\r' )? '\\n' + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:856:41: ( '\\r' )? + int alt17=2; + int LA17_0 = input.LA(1); + + if ( (LA17_0=='\r') ) { + alt17=1; + } + switch (alt17) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:856: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; + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:858:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:858:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:858:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + int cnt19=0; + loop19: + do { + int alt19=2; + int LA19_0 = input.LA(1); + + if ( ((LA19_0>='\t' && LA19_0<='\n')||LA19_0=='\r'||LA19_0==' ') ) { + alt19=1; + } + + + switch (alt19) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.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 ( cnt19 >= 1 ) break loop19; + EarlyExitException eee = + new EarlyExitException(19, input); + throw eee; + } + cnt19++; + } 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; + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:860:16: ( . ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:860:18: . + { + matchAny(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ANY_OTHER" + + public void mTokens() throws RecognitionException { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | RULE_BOOLEAN | RULE_NUMBER | RULE_INT | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) + int alt20=19; + alt20 = dfa20.predict(input); + switch (alt20) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:10: T__13 + { + mT__13(); + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:16: T__14 + { + mT__14(); + + } + break; + case 3 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:22: T__15 + { + mT__15(); + + } + break; + case 4 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:28: T__16 + { + mT__16(); + + } + break; + case 5 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:34: T__17 + { + mT__17(); + + } + break; + case 6 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:40: T__18 + { + mT__18(); + + } + break; + case 7 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:46: T__19 + { + mT__19(); + + } + break; + case 8 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:52: T__20 + { + mT__20(); + + } + break; + case 9 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:58: T__21 + { + mT__21(); + + } + break; + case 10 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:64: T__22 + { + mT__22(); + + } + break; + case 11 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:70: RULE_BOOLEAN + { + mRULE_BOOLEAN(); + + } + break; + case 12 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:83: RULE_NUMBER + { + mRULE_NUMBER(); + + } + break; + case 13 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:95: RULE_INT + { + mRULE_INT(); + + } + break; + case 14 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:104: RULE_ID + { + mRULE_ID(); + + } + break; + case 15 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:112: RULE_STRING + { + mRULE_STRING(); + + } + break; + case 16 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:124: RULE_ML_COMMENT + { + mRULE_ML_COMMENT(); + + } + break; + case 17 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:140: RULE_SL_COMMENT + { + mRULE_SL_COMMENT(); + + } + break; + case 18 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:156: RULE_WS + { + mRULE_WS(); + + } + break; + case 19 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:1:164: RULE_ANY_OTHER + { + mRULE_ANY_OTHER(); + + } + break; + + } + + } + + + protected DFA20 dfa20 = new DFA20(this); + static final String DFA20_eotS = + "\2\uffff\1\27\4\uffff\1\36\3\uffff\2\27\1\uffff\2\24\1\uffff\2\24"+ + "\3\uffff\1\27\13\uffff\3\27\3\uffff\5\27\1\61\2\27\1\64\2\uffff"+ + "\1\61\1\uffff"; + static final String DFA20_eofS = + "\65\uffff"; + static final String DFA20_minS = + "\1\0\1\uffff\1\145\4\uffff\1\52\3\uffff\1\150\1\141\1\uffff\1\60"+ + "\1\101\1\uffff\2\0\3\uffff\1\154\13\uffff\1\165\1\151\1\154\3\uffff"+ + "\1\164\1\145\2\163\1\141\1\60\1\40\1\145\1\60\2\uffff\1\60\1\uffff"; + static final String DFA20_maxS = + "\1\uffff\1\uffff\1\145\4\uffff\1\57\3\uffff\1\162\1\141\1\uffff"+ + "\1\71\1\172\1\uffff\2\uffff\3\uffff\1\154\13\uffff\1\165\1\151\1"+ + "\154\3\uffff\1\164\1\145\2\163\1\141\1\172\1\40\1\145\1\172\2\uffff"+ + "\1\172\1\uffff"; + static final String DFA20_acceptS = + "\1\uffff\1\1\1\uffff\1\3\1\4\1\5\1\6\1\uffff\1\10\1\11\1\12\2\uffff"+ + "\1\14\2\uffff\1\16\2\uffff\1\22\1\23\1\1\1\uffff\1\16\1\3\1\4\1"+ + "\5\1\6\1\20\1\21\1\7\1\10\1\11\1\12\3\uffff\1\14\1\17\1\22\11\uffff"+ + "\1\13\1\15\1\uffff\1\2"; + static final String DFA20_specialS = + "\1\2\20\uffff\1\1\1\0\42\uffff}>"; + static final String[] DFA20_transitionS = { + "\11\24\2\23\2\24\1\23\22\24\1\23\1\24\1\21\4\24\1\22\1\10\1"+ + "\11\1\6\1\4\1\12\1\5\1\16\1\7\12\15\1\24\1\3\1\24\1\1\3\24\32"+ + "\20\3\24\1\17\1\20\1\24\3\20\1\2\1\20\1\14\15\20\1\13\6\20\uff85"+ + "\24", + "", + "\1\26", + "", + "", + "", + "", + "\1\34\4\uffff\1\35", + "", + "", + "", + "\1\43\11\uffff\1\42", + "\1\44", + "", + "\12\45", + "\32\27\4\uffff\1\27\1\uffff\32\27", + "", + "\0\46", + "\0\46", + "", + "", + "", + "\1\50", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\51", + "\1\52", + "\1\53", + "", + "", + "", + "\1\54", + "\1\55", + "\1\56", + "\1\57", + "\1\60", + "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27", + "\1\62", + "\1\63", + "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27", + "", + "", + "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27", + "" + }; + + static final short[] DFA20_eot = DFA.unpackEncodedString(DFA20_eotS); + static final short[] DFA20_eof = DFA.unpackEncodedString(DFA20_eofS); + static final char[] DFA20_min = DFA.unpackEncodedStringToUnsignedChars(DFA20_minS); + static final char[] DFA20_max = DFA.unpackEncodedStringToUnsignedChars(DFA20_maxS); + static final short[] DFA20_accept = DFA.unpackEncodedString(DFA20_acceptS); + static final short[] DFA20_special = DFA.unpackEncodedString(DFA20_specialS); + static final short[][] DFA20_transition; + + static { + int numStates = DFA20_transitionS.length; + DFA20_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA20_transition[i] = DFA.unpackEncodedString(DFA20_transitionS[i]); + } + } + + class DFA20 extends DFA { + + public DFA20(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 20; + this.eot = DFA20_eot; + this.eof = DFA20_eof; + this.min = DFA20_min; + this.max = DFA20_max; + this.accept = DFA20_accept; + this.special = DFA20_special; + this.transition = DFA20_transition; + } + public String getDescription() { + return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | RULE_BOOLEAN | RULE_NUMBER | RULE_INT | 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; + int _s = s; + switch ( s ) { + case 0 : + int LA20_18 = input.LA(1); + + s = -1; + if ( ((LA20_18>='\u0000' && LA20_18<='\uFFFF')) ) {s = 38;} + + else s = 20; + + if ( s>=0 ) return s; + break; + case 1 : + int LA20_17 = input.LA(1); + + s = -1; + if ( ((LA20_17>='\u0000' && LA20_17<='\uFFFF')) ) {s = 38;} + + else s = 20; + + if ( s>=0 ) return s; + break; + case 2 : + int LA20_0 = input.LA(1); + + s = -1; + if ( (LA20_0=='=') ) {s = 1;} + + else if ( (LA20_0=='d') ) {s = 2;} + + else if ( (LA20_0==';') ) {s = 3;} + + else if ( (LA20_0=='+') ) {s = 4;} + + else if ( (LA20_0=='-') ) {s = 5;} + + else if ( (LA20_0=='*') ) {s = 6;} + + else if ( (LA20_0=='/') ) {s = 7;} + + else if ( (LA20_0=='(') ) {s = 8;} + + else if ( (LA20_0==')') ) {s = 9;} + + else if ( (LA20_0==',') ) {s = 10;} + + else if ( (LA20_0=='t') ) {s = 11;} + + else if ( (LA20_0=='f') ) {s = 12;} + + else if ( ((LA20_0>='0' && LA20_0<='9')) ) {s = 13;} + + else if ( (LA20_0=='.') ) {s = 14;} + + else if ( (LA20_0=='^') ) {s = 15;} + + else if ( ((LA20_0>='A' && LA20_0<='Z')||LA20_0=='_'||(LA20_0>='a' && LA20_0<='c')||LA20_0=='e'||(LA20_0>='g' && LA20_0<='s')||(LA20_0>='u' && LA20_0<='z')) ) {s = 16;} + + else if ( (LA20_0=='\"') ) {s = 17;} + + else if ( (LA20_0=='\'') ) {s = 18;} + + else if ( ((LA20_0>='\t' && LA20_0<='\n')||LA20_0=='\r'||LA20_0==' ') ) {s = 19;} + + else if ( ((LA20_0>='\u0000' && LA20_0<='\b')||(LA20_0>='\u000B' && LA20_0<='\f')||(LA20_0>='\u000E' && LA20_0<='\u001F')||LA20_0=='!'||(LA20_0>='#' && LA20_0<='&')||LA20_0==':'||LA20_0=='<'||(LA20_0>='>' && LA20_0<='@')||(LA20_0>='[' && LA20_0<=']')||LA20_0=='`'||(LA20_0>='{' && LA20_0<='\uFFFF')) ) {s = 20;} + + if ( s>=0 ) return s; + break; + } + NoViableAltException nvae = + new NoViableAltException(getDescription(), 20, _s, input); + error(nvae); + throw nvae; + } + } + + +}
\ No newline at end of file diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDLParser.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDLParser.java new file mode 100644 index 000000000..df05db087 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDLParser.java @@ -0,0 +1,2188 @@ +package org.eclipse.stem.model.ctdl.parser.antlr.internal; + +import org.antlr.runtime.BitSet; +import org.antlr.runtime.NoViableAltException; +import org.antlr.runtime.RecognitionException; +import org.antlr.runtime.RecognizerSharedState; +import org.antlr.runtime.Token; +import org.antlr.runtime.TokenStream; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.stem.model.ctdl.services.CTDLGrammarAccess; +import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser; + +@SuppressWarnings("all") +public class InternalCTDLParser extends AbstractInternalAntlrParser { + public static final String[] tokenNames = new String[] { + "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_NUMBER", "RULE_BOOLEAN", "RULE_STRING", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'='", "'delta'", "';'", "'+'", "'-'", "'*'", "'/'", "'('", "')'", "','" + }; + public static final int RULE_BOOLEAN=6; + public static final int RULE_ID=4; + public static final int T__22=22; + public static final int RULE_ANY_OTHER=12; + public static final int T__21=21; + public static final int T__20=20; + public static final int RULE_SL_COMMENT=10; + public static final int EOF=-1; + public static final int RULE_ML_COMMENT=9; + public static final int T__19=19; + public static final int RULE_STRING=7; + public static final int T__16=16; + public static final int T__15=15; + public static final int T__18=18; + public static final int T__17=17; + public static final int RULE_NUMBER=5; + public static final int T__14=14; + public static final int T__13=13; + public static final int RULE_INT=8; + public static final int RULE_WS=11; + + // delegates + // delegators + + + public InternalCTDLParser(TokenStream input) { + this(input, new RecognizerSharedState()); + } + public InternalCTDLParser(TokenStream input, RecognizerSharedState state) { + super(input, state); + + } + + + public String[] getTokenNames() { return InternalCTDLParser.tokenNames; } + public String getGrammarFileName() { return "../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g"; } + + + + private CTDLGrammarAccess grammarAccess; + + public InternalCTDLParser(TokenStream input, CTDLGrammarAccess grammarAccess) { + this(input); + this.grammarAccess = grammarAccess; + registerRules(grammarAccess.getGrammar()); + } + + @Override + protected String getFirstRuleName() { + return "CompartmentTransitionDefinitions"; + } + + @Override + protected CTDLGrammarAccess getGrammarAccess() { + return grammarAccess; + } + + + + // $ANTLR start "entryRuleCompartmentTransitionDefinitions" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:67:1: entryRuleCompartmentTransitionDefinitions returns [EObject current=null] : iv_ruleCompartmentTransitionDefinitions= ruleCompartmentTransitionDefinitions EOF ; + public final EObject entryRuleCompartmentTransitionDefinitions() throws RecognitionException { + EObject current = null; + + EObject iv_ruleCompartmentTransitionDefinitions = null; + + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:68:2: (iv_ruleCompartmentTransitionDefinitions= ruleCompartmentTransitionDefinitions EOF ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:69:2: iv_ruleCompartmentTransitionDefinitions= ruleCompartmentTransitionDefinitions EOF + { + newCompositeNode(grammarAccess.getCompartmentTransitionDefinitionsRule()); + pushFollow(FOLLOW_ruleCompartmentTransitionDefinitions_in_entryRuleCompartmentTransitionDefinitions75); + iv_ruleCompartmentTransitionDefinitions=ruleCompartmentTransitionDefinitions(); + + state._fsp--; + + current =iv_ruleCompartmentTransitionDefinitions; + match(input,EOF,FOLLOW_EOF_in_entryRuleCompartmentTransitionDefinitions85); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleCompartmentTransitionDefinitions" + + + // $ANTLR start "ruleCompartmentTransitionDefinitions" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:76:1: ruleCompartmentTransitionDefinitions returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) )? ( (lv_expression_1_0= ruleTransitionBlock ) ) ) ; + public final EObject ruleCompartmentTransitionDefinitions() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + EObject lv_expression_1_0 = null; + + + enterRule(); + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:79:28: ( ( ( (otherlv_0= RULE_ID ) )? ( (lv_expression_1_0= ruleTransitionBlock ) ) ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:80:1: ( ( (otherlv_0= RULE_ID ) )? ( (lv_expression_1_0= ruleTransitionBlock ) ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:80:1: ( ( (otherlv_0= RULE_ID ) )? ( (lv_expression_1_0= ruleTransitionBlock ) ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:80:2: ( (otherlv_0= RULE_ID ) )? ( (lv_expression_1_0= ruleTransitionBlock ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:80:2: ( (otherlv_0= RULE_ID ) )? + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0==RULE_ID) ) { + int LA1_1 = input.LA(2); + + if ( (LA1_1==RULE_ID||LA1_1==14) ) { + alt1=1; + } + } + switch (alt1) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:81:1: (otherlv_0= RULE_ID ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:81:1: (otherlv_0= RULE_ID ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:82:3: otherlv_0= RULE_ID + { + + if (current==null) { + current = createModelElement(grammarAccess.getCompartmentTransitionDefinitionsRule()); + } + + otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleCompartmentTransitionDefinitions130); + + newLeafNode(otherlv_0, grammarAccess.getCompartmentTransitionDefinitionsAccess().getMetamodelMetamodelResourceCrossReference_0_0()); + + + } + + + } + break; + + } + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:93:3: ( (lv_expression_1_0= ruleTransitionBlock ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:94:1: (lv_expression_1_0= ruleTransitionBlock ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:94:1: (lv_expression_1_0= ruleTransitionBlock ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:95:3: lv_expression_1_0= ruleTransitionBlock + { + + newCompositeNode(grammarAccess.getCompartmentTransitionDefinitionsAccess().getExpressionTransitionBlockParserRuleCall_1_0()); + + pushFollow(FOLLOW_ruleTransitionBlock_in_ruleCompartmentTransitionDefinitions152); + lv_expression_1_0=ruleTransitionBlock(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCompartmentTransitionDefinitionsRule()); + } + set( + current, + "expression", + lv_expression_1_0, + "TransitionBlock"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleCompartmentTransitionDefinitions" + + + // $ANTLR start "entryRuleTransitionBlock" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:121:1: entryRuleTransitionBlock returns [EObject current=null] : iv_ruleTransitionBlock= ruleTransitionBlock EOF ; + public final EObject entryRuleTransitionBlock() throws RecognitionException { + EObject current = null; + + EObject iv_ruleTransitionBlock = null; + + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:122:2: (iv_ruleTransitionBlock= ruleTransitionBlock EOF ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:123:2: iv_ruleTransitionBlock= ruleTransitionBlock EOF + { + newCompositeNode(grammarAccess.getTransitionBlockRule()); + pushFollow(FOLLOW_ruleTransitionBlock_in_entryRuleTransitionBlock190); + iv_ruleTransitionBlock=ruleTransitionBlock(); + + state._fsp--; + + current =iv_ruleTransitionBlock; + match(input,EOF,FOLLOW_EOF_in_entryRuleTransitionBlock200); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleTransitionBlock" + + + // $ANTLR start "ruleTransitionBlock" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:130:1: ruleTransitionBlock returns [EObject current=null] : ( (lv_block_0_0= ruleBlock ) ) ; + public final EObject ruleTransitionBlock() throws RecognitionException { + EObject current = null; + + EObject lv_block_0_0 = null; + + + enterRule(); + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:133:28: ( ( (lv_block_0_0= ruleBlock ) ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:134:1: ( (lv_block_0_0= ruleBlock ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:134:1: ( (lv_block_0_0= ruleBlock ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:135:1: (lv_block_0_0= ruleBlock ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:135:1: (lv_block_0_0= ruleBlock ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:136:3: lv_block_0_0= ruleBlock + { + + newCompositeNode(grammarAccess.getTransitionBlockAccess().getBlockBlockParserRuleCall_0()); + + pushFollow(FOLLOW_ruleBlock_in_ruleTransitionBlock245); + lv_block_0_0=ruleBlock(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getTransitionBlockRule()); + } + set( + current, + "block", + lv_block_0_0, + "Block"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleTransitionBlock" + + + // $ANTLR start "entryRuleBlock" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:164:1: entryRuleBlock returns [EObject current=null] : iv_ruleBlock= ruleBlock EOF ; + public final EObject entryRuleBlock() throws RecognitionException { + EObject current = null; + + EObject iv_ruleBlock = null; + + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:165:2: (iv_ruleBlock= ruleBlock EOF ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:166:2: iv_ruleBlock= ruleBlock EOF + { + newCompositeNode(grammarAccess.getBlockRule()); + pushFollow(FOLLOW_ruleBlock_in_entryRuleBlock284); + iv_ruleBlock=ruleBlock(); + + state._fsp--; + + current =iv_ruleBlock; + match(input,EOF,FOLLOW_EOF_in_entryRuleBlock294); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleBlock" + + + // $ANTLR start "ruleBlock" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:173:1: ruleBlock returns [EObject current=null] : ( () ( (lv_statements_1_0= ruleDefStatement ) )* ( (lv_ret_2_0= ruleReturnStatement ) ) ) ; + public final EObject ruleBlock() throws RecognitionException { + EObject current = null; + + EObject lv_statements_1_0 = null; + + EObject lv_ret_2_0 = null; + + + enterRule(); + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:176:28: ( ( () ( (lv_statements_1_0= ruleDefStatement ) )* ( (lv_ret_2_0= ruleReturnStatement ) ) ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:177:1: ( () ( (lv_statements_1_0= ruleDefStatement ) )* ( (lv_ret_2_0= ruleReturnStatement ) ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:177:1: ( () ( (lv_statements_1_0= ruleDefStatement ) )* ( (lv_ret_2_0= ruleReturnStatement ) ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:177:2: () ( (lv_statements_1_0= ruleDefStatement ) )* ( (lv_ret_2_0= ruleReturnStatement ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:177:2: () + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:178:5: + { + + current = forceCreateModelElement( + grammarAccess.getBlockAccess().getBlockAction_0(), + current); + + + } + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:183:2: ( (lv_statements_1_0= ruleDefStatement ) )* + loop2: + do { + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0==RULE_ID) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:184:1: (lv_statements_1_0= ruleDefStatement ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:184:1: (lv_statements_1_0= ruleDefStatement ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:185:3: lv_statements_1_0= ruleDefStatement + { + + newCompositeNode(grammarAccess.getBlockAccess().getStatementsDefStatementParserRuleCall_1_0()); + + pushFollow(FOLLOW_ruleDefStatement_in_ruleBlock349); + lv_statements_1_0=ruleDefStatement(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getBlockRule()); + } + add( + current, + "statements", + lv_statements_1_0, + "DefStatement"); + afterParserOrEnumRuleCall(); + + + } + + + } + break; + + default : + break loop2; + } + } while (true); + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:201:3: ( (lv_ret_2_0= ruleReturnStatement ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:202:1: (lv_ret_2_0= ruleReturnStatement ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:202:1: (lv_ret_2_0= ruleReturnStatement ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:203:3: lv_ret_2_0= ruleReturnStatement + { + + newCompositeNode(grammarAccess.getBlockAccess().getRetReturnStatementParserRuleCall_2_0()); + + pushFollow(FOLLOW_ruleReturnStatement_in_ruleBlock371); + lv_ret_2_0=ruleReturnStatement(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getBlockRule()); + } + set( + current, + "ret", + lv_ret_2_0, + "ReturnStatement"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleBlock" + + + // $ANTLR start "entryRuleDefStatement" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:227:1: entryRuleDefStatement returns [EObject current=null] : iv_ruleDefStatement= ruleDefStatement EOF ; + public final EObject entryRuleDefStatement() throws RecognitionException { + EObject current = null; + + EObject iv_ruleDefStatement = null; + + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:228:2: (iv_ruleDefStatement= ruleDefStatement EOF ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:229:2: iv_ruleDefStatement= ruleDefStatement EOF + { + newCompositeNode(grammarAccess.getDefStatementRule()); + pushFollow(FOLLOW_ruleDefStatement_in_entryRuleDefStatement407); + iv_ruleDefStatement=ruleDefStatement(); + + state._fsp--; + + current =iv_ruleDefStatement; + match(input,EOF,FOLLOW_EOF_in_entryRuleDefStatement417); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleDefStatement" + + + // $ANTLR start "ruleDefStatement" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:236:1: ruleDefStatement returns [EObject current=null] : ( ( (lv_varname_0_0= RULE_ID ) ) otherlv_1= '=' ( (lv_expr_2_0= ruleEvaluation ) ) ) ; + public final EObject ruleDefStatement() throws RecognitionException { + EObject current = null; + + Token lv_varname_0_0=null; + Token otherlv_1=null; + EObject lv_expr_2_0 = null; + + + enterRule(); + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:239:28: ( ( ( (lv_varname_0_0= RULE_ID ) ) otherlv_1= '=' ( (lv_expr_2_0= ruleEvaluation ) ) ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:240:1: ( ( (lv_varname_0_0= RULE_ID ) ) otherlv_1= '=' ( (lv_expr_2_0= ruleEvaluation ) ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:240:1: ( ( (lv_varname_0_0= RULE_ID ) ) otherlv_1= '=' ( (lv_expr_2_0= ruleEvaluation ) ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:240:2: ( (lv_varname_0_0= RULE_ID ) ) otherlv_1= '=' ( (lv_expr_2_0= ruleEvaluation ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:240:2: ( (lv_varname_0_0= RULE_ID ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:241:1: (lv_varname_0_0= RULE_ID ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:241:1: (lv_varname_0_0= RULE_ID ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:242:3: lv_varname_0_0= RULE_ID + { + lv_varname_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDefStatement459); + + newLeafNode(lv_varname_0_0, grammarAccess.getDefStatementAccess().getVarnameIDTerminalRuleCall_0_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getDefStatementRule()); + } + setWithLastConsumed( + current, + "varname", + lv_varname_0_0, + "ID"); + + + } + + + } + + otherlv_1=(Token)match(input,13,FOLLOW_13_in_ruleDefStatement476); + + newLeafNode(otherlv_1, grammarAccess.getDefStatementAccess().getEqualsSignKeyword_1()); + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:262:1: ( (lv_expr_2_0= ruleEvaluation ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:263:1: (lv_expr_2_0= ruleEvaluation ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:263:1: (lv_expr_2_0= ruleEvaluation ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:264:3: lv_expr_2_0= ruleEvaluation + { + + newCompositeNode(grammarAccess.getDefStatementAccess().getExprEvaluationParserRuleCall_2_0()); + + pushFollow(FOLLOW_ruleEvaluation_in_ruleDefStatement497); + lv_expr_2_0=ruleEvaluation(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getDefStatementRule()); + } + set( + current, + "expr", + lv_expr_2_0, + "Evaluation"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleDefStatement" + + + // $ANTLR start "entryRuleReturnStatement" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:288:1: entryRuleReturnStatement returns [EObject current=null] : iv_ruleReturnStatement= ruleReturnStatement EOF ; + public final EObject entryRuleReturnStatement() throws RecognitionException { + EObject current = null; + + EObject iv_ruleReturnStatement = null; + + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:289:2: (iv_ruleReturnStatement= ruleReturnStatement EOF ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:290:2: iv_ruleReturnStatement= ruleReturnStatement EOF + { + newCompositeNode(grammarAccess.getReturnStatementRule()); + pushFollow(FOLLOW_ruleReturnStatement_in_entryRuleReturnStatement533); + iv_ruleReturnStatement=ruleReturnStatement(); + + state._fsp--; + + current =iv_ruleReturnStatement; + match(input,EOF,FOLLOW_EOF_in_entryRuleReturnStatement543); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleReturnStatement" + + + // $ANTLR start "ruleReturnStatement" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:297:1: ruleReturnStatement returns [EObject current=null] : (otherlv_0= 'delta' this_Evaluation_1= ruleEvaluation ) ; + public final EObject ruleReturnStatement() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + EObject this_Evaluation_1 = null; + + + enterRule(); + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:300:28: ( (otherlv_0= 'delta' this_Evaluation_1= ruleEvaluation ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:301:1: (otherlv_0= 'delta' this_Evaluation_1= ruleEvaluation ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:301:1: (otherlv_0= 'delta' this_Evaluation_1= ruleEvaluation ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:301:3: otherlv_0= 'delta' this_Evaluation_1= ruleEvaluation + { + otherlv_0=(Token)match(input,14,FOLLOW_14_in_ruleReturnStatement580); + + newLeafNode(otherlv_0, grammarAccess.getReturnStatementAccess().getDeltaKeyword_0()); + + + newCompositeNode(grammarAccess.getReturnStatementAccess().getEvaluationParserRuleCall_1()); + + pushFollow(FOLLOW_ruleEvaluation_in_ruleReturnStatement602); + this_Evaluation_1=ruleEvaluation(); + + state._fsp--; + + + current = this_Evaluation_1; + afterParserOrEnumRuleCall(); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleReturnStatement" + + + // $ANTLR start "entryRuleEvaluation" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:322:1: entryRuleEvaluation returns [EObject current=null] : iv_ruleEvaluation= ruleEvaluation EOF ; + public final EObject entryRuleEvaluation() throws RecognitionException { + EObject current = null; + + EObject iv_ruleEvaluation = null; + + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:323:2: (iv_ruleEvaluation= ruleEvaluation EOF ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:324:2: iv_ruleEvaluation= ruleEvaluation EOF + { + newCompositeNode(grammarAccess.getEvaluationRule()); + pushFollow(FOLLOW_ruleEvaluation_in_entryRuleEvaluation637); + iv_ruleEvaluation=ruleEvaluation(); + + state._fsp--; + + current =iv_ruleEvaluation; + match(input,EOF,FOLLOW_EOF_in_entryRuleEvaluation647); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleEvaluation" + + + // $ANTLR start "ruleEvaluation" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:331:1: ruleEvaluation returns [EObject current=null] : ( ( (lv_expression_0_0= ruleExpression ) ) otherlv_1= ';' ) ; + public final EObject ruleEvaluation() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + EObject lv_expression_0_0 = null; + + + enterRule(); + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:334:28: ( ( ( (lv_expression_0_0= ruleExpression ) ) otherlv_1= ';' ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:335:1: ( ( (lv_expression_0_0= ruleExpression ) ) otherlv_1= ';' ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:335:1: ( ( (lv_expression_0_0= ruleExpression ) ) otherlv_1= ';' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:335:2: ( (lv_expression_0_0= ruleExpression ) ) otherlv_1= ';' + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:335:2: ( (lv_expression_0_0= ruleExpression ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:336:1: (lv_expression_0_0= ruleExpression ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:336:1: (lv_expression_0_0= ruleExpression ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:337:3: lv_expression_0_0= ruleExpression + { + + newCompositeNode(grammarAccess.getEvaluationAccess().getExpressionExpressionParserRuleCall_0_0()); + + pushFollow(FOLLOW_ruleExpression_in_ruleEvaluation693); + lv_expression_0_0=ruleExpression(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getEvaluationRule()); + } + set( + current, + "expression", + lv_expression_0_0, + "Expression"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_1=(Token)match(input,15,FOLLOW_15_in_ruleEvaluation705); + + newLeafNode(otherlv_1, grammarAccess.getEvaluationAccess().getSemicolonKeyword_1()); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleEvaluation" + + + // $ANTLR start "entryRuleExpression" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:365:1: entryRuleExpression returns [EObject current=null] : iv_ruleExpression= ruleExpression EOF ; + public final EObject entryRuleExpression() throws RecognitionException { + EObject current = null; + + EObject iv_ruleExpression = null; + + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:366:2: (iv_ruleExpression= ruleExpression EOF ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:367:2: iv_ruleExpression= ruleExpression EOF + { + newCompositeNode(grammarAccess.getExpressionRule()); + pushFollow(FOLLOW_ruleExpression_in_entryRuleExpression741); + iv_ruleExpression=ruleExpression(); + + state._fsp--; + + current =iv_ruleExpression; + match(input,EOF,FOLLOW_EOF_in_entryRuleExpression751); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleExpression" + + + // $ANTLR start "ruleExpression" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:374:1: ruleExpression returns [EObject current=null] : this_Addition_0= ruleAddition ; + public final EObject ruleExpression() throws RecognitionException { + EObject current = null; + + EObject this_Addition_0 = null; + + + enterRule(); + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:377:28: (this_Addition_0= ruleAddition ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:379:5: this_Addition_0= ruleAddition + { + + newCompositeNode(grammarAccess.getExpressionAccess().getAdditionParserRuleCall()); + + pushFollow(FOLLOW_ruleAddition_in_ruleExpression797); + this_Addition_0=ruleAddition(); + + state._fsp--; + + + current = this_Addition_0; + afterParserOrEnumRuleCall(); + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleExpression" + + + // $ANTLR start "entryRuleAddition" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:395:1: entryRuleAddition returns [EObject current=null] : iv_ruleAddition= ruleAddition EOF ; + public final EObject entryRuleAddition() throws RecognitionException { + EObject current = null; + + EObject iv_ruleAddition = null; + + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:396:2: (iv_ruleAddition= ruleAddition EOF ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:397:2: iv_ruleAddition= ruleAddition EOF + { + newCompositeNode(grammarAccess.getAdditionRule()); + pushFollow(FOLLOW_ruleAddition_in_entryRuleAddition831); + iv_ruleAddition=ruleAddition(); + + state._fsp--; + + current =iv_ruleAddition; + match(input,EOF,FOLLOW_EOF_in_entryRuleAddition841); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleAddition" + + + // $ANTLR start "ruleAddition" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:404:1: ruleAddition returns [EObject current=null] : (this_Multiplication_0= ruleMultiplication ( ( ( () otherlv_2= '+' ) | ( () otherlv_4= '-' ) ) ( (lv_right_5_0= ruleMultiplication ) ) )* ) ; + public final EObject ruleAddition() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + Token otherlv_4=null; + EObject this_Multiplication_0 = null; + + EObject lv_right_5_0 = null; + + + enterRule(); + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:407:28: ( (this_Multiplication_0= ruleMultiplication ( ( ( () otherlv_2= '+' ) | ( () otherlv_4= '-' ) ) ( (lv_right_5_0= ruleMultiplication ) ) )* ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:408:1: (this_Multiplication_0= ruleMultiplication ( ( ( () otherlv_2= '+' ) | ( () otherlv_4= '-' ) ) ( (lv_right_5_0= ruleMultiplication ) ) )* ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:408:1: (this_Multiplication_0= ruleMultiplication ( ( ( () otherlv_2= '+' ) | ( () otherlv_4= '-' ) ) ( (lv_right_5_0= ruleMultiplication ) ) )* ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:409:5: this_Multiplication_0= ruleMultiplication ( ( ( () otherlv_2= '+' ) | ( () otherlv_4= '-' ) ) ( (lv_right_5_0= ruleMultiplication ) ) )* + { + + newCompositeNode(grammarAccess.getAdditionAccess().getMultiplicationParserRuleCall_0()); + + pushFollow(FOLLOW_ruleMultiplication_in_ruleAddition888); + this_Multiplication_0=ruleMultiplication(); + + state._fsp--; + + + current = this_Multiplication_0; + afterParserOrEnumRuleCall(); + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:417:1: ( ( ( () otherlv_2= '+' ) | ( () otherlv_4= '-' ) ) ( (lv_right_5_0= ruleMultiplication ) ) )* + loop4: + do { + int alt4=2; + int LA4_0 = input.LA(1); + + if ( ((LA4_0>=16 && LA4_0<=17)) ) { + alt4=1; + } + + + switch (alt4) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:417:2: ( ( () otherlv_2= '+' ) | ( () otherlv_4= '-' ) ) ( (lv_right_5_0= ruleMultiplication ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:417:2: ( ( () otherlv_2= '+' ) | ( () otherlv_4= '-' ) ) + int alt3=2; + int LA3_0 = input.LA(1); + + if ( (LA3_0==16) ) { + alt3=1; + } + else if ( (LA3_0==17) ) { + alt3=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 3, 0, input); + + throw nvae; + } + switch (alt3) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:417:3: ( () otherlv_2= '+' ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:417:3: ( () otherlv_2= '+' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:417:4: () otherlv_2= '+' + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:417:4: () + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:418:5: + { + + current = forceCreateModelElementAndSet( + grammarAccess.getAdditionAccess().getPlusLeftAction_1_0_0_0(), + current); + + + } + + otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleAddition911); + + newLeafNode(otherlv_2, grammarAccess.getAdditionAccess().getPlusSignKeyword_1_0_0_1()); + + + } + + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:428:6: ( () otherlv_4= '-' ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:428:6: ( () otherlv_4= '-' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:428:7: () otherlv_4= '-' + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:428:7: () + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:429:5: + { + + current = forceCreateModelElementAndSet( + grammarAccess.getAdditionAccess().getMinusLeftAction_1_0_1_0(), + current); + + + } + + otherlv_4=(Token)match(input,17,FOLLOW_17_in_ruleAddition940); + + newLeafNode(otherlv_4, grammarAccess.getAdditionAccess().getHyphenMinusKeyword_1_0_1_1()); + + + } + + + } + break; + + } + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:438:3: ( (lv_right_5_0= ruleMultiplication ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:439:1: (lv_right_5_0= ruleMultiplication ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:439:1: (lv_right_5_0= ruleMultiplication ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:440:3: lv_right_5_0= ruleMultiplication + { + + newCompositeNode(grammarAccess.getAdditionAccess().getRightMultiplicationParserRuleCall_1_1_0()); + + pushFollow(FOLLOW_ruleMultiplication_in_ruleAddition963); + lv_right_5_0=ruleMultiplication(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAdditionRule()); + } + set( + current, + "right", + lv_right_5_0, + "Multiplication"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop4; + } + } while (true); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleAddition" + + + // $ANTLR start "entryRuleMultiplication" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:464:1: entryRuleMultiplication returns [EObject current=null] : iv_ruleMultiplication= ruleMultiplication EOF ; + public final EObject entryRuleMultiplication() throws RecognitionException { + EObject current = null; + + EObject iv_ruleMultiplication = null; + + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:465:2: (iv_ruleMultiplication= ruleMultiplication EOF ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:466:2: iv_ruleMultiplication= ruleMultiplication EOF + { + newCompositeNode(grammarAccess.getMultiplicationRule()); + pushFollow(FOLLOW_ruleMultiplication_in_entryRuleMultiplication1001); + iv_ruleMultiplication=ruleMultiplication(); + + state._fsp--; + + current =iv_ruleMultiplication; + match(input,EOF,FOLLOW_EOF_in_entryRuleMultiplication1011); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleMultiplication" + + + // $ANTLR start "ruleMultiplication" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:473:1: ruleMultiplication returns [EObject current=null] : (this_NegatedExpression_0= ruleNegatedExpression ( ( ( () otherlv_2= '*' ) | ( () otherlv_4= '/' ) ) ( (lv_right_5_0= ruleNegatedExpression ) ) )* ) ; + public final EObject ruleMultiplication() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + Token otherlv_4=null; + EObject this_NegatedExpression_0 = null; + + EObject lv_right_5_0 = null; + + + enterRule(); + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:476:28: ( (this_NegatedExpression_0= ruleNegatedExpression ( ( ( () otherlv_2= '*' ) | ( () otherlv_4= '/' ) ) ( (lv_right_5_0= ruleNegatedExpression ) ) )* ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:477:1: (this_NegatedExpression_0= ruleNegatedExpression ( ( ( () otherlv_2= '*' ) | ( () otherlv_4= '/' ) ) ( (lv_right_5_0= ruleNegatedExpression ) ) )* ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:477:1: (this_NegatedExpression_0= ruleNegatedExpression ( ( ( () otherlv_2= '*' ) | ( () otherlv_4= '/' ) ) ( (lv_right_5_0= ruleNegatedExpression ) ) )* ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:478:5: this_NegatedExpression_0= ruleNegatedExpression ( ( ( () otherlv_2= '*' ) | ( () otherlv_4= '/' ) ) ( (lv_right_5_0= ruleNegatedExpression ) ) )* + { + + newCompositeNode(grammarAccess.getMultiplicationAccess().getNegatedExpressionParserRuleCall_0()); + + pushFollow(FOLLOW_ruleNegatedExpression_in_ruleMultiplication1058); + this_NegatedExpression_0=ruleNegatedExpression(); + + state._fsp--; + + + current = this_NegatedExpression_0; + afterParserOrEnumRuleCall(); + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:486:1: ( ( ( () otherlv_2= '*' ) | ( () otherlv_4= '/' ) ) ( (lv_right_5_0= ruleNegatedExpression ) ) )* + loop6: + do { + int alt6=2; + int LA6_0 = input.LA(1); + + if ( ((LA6_0>=18 && LA6_0<=19)) ) { + alt6=1; + } + + + switch (alt6) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:486:2: ( ( () otherlv_2= '*' ) | ( () otherlv_4= '/' ) ) ( (lv_right_5_0= ruleNegatedExpression ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:486:2: ( ( () otherlv_2= '*' ) | ( () otherlv_4= '/' ) ) + int alt5=2; + int LA5_0 = input.LA(1); + + if ( (LA5_0==18) ) { + alt5=1; + } + else if ( (LA5_0==19) ) { + alt5=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 5, 0, input); + + throw nvae; + } + switch (alt5) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:486:3: ( () otherlv_2= '*' ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:486:3: ( () otherlv_2= '*' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:486:4: () otherlv_2= '*' + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:486:4: () + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:487:5: + { + + current = forceCreateModelElementAndSet( + grammarAccess.getMultiplicationAccess().getMultiLeftAction_1_0_0_0(), + current); + + + } + + otherlv_2=(Token)match(input,18,FOLLOW_18_in_ruleMultiplication1081); + + newLeafNode(otherlv_2, grammarAccess.getMultiplicationAccess().getAsteriskKeyword_1_0_0_1()); + + + } + + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:497:6: ( () otherlv_4= '/' ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:497:6: ( () otherlv_4= '/' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:497:7: () otherlv_4= '/' + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:497:7: () + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:498:5: + { + + current = forceCreateModelElementAndSet( + grammarAccess.getMultiplicationAccess().getDivLeftAction_1_0_1_0(), + current); + + + } + + otherlv_4=(Token)match(input,19,FOLLOW_19_in_ruleMultiplication1110); + + newLeafNode(otherlv_4, grammarAccess.getMultiplicationAccess().getSolidusKeyword_1_0_1_1()); + + + } + + + } + break; + + } + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:507:3: ( (lv_right_5_0= ruleNegatedExpression ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:508:1: (lv_right_5_0= ruleNegatedExpression ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:508:1: (lv_right_5_0= ruleNegatedExpression ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:509:3: lv_right_5_0= ruleNegatedExpression + { + + newCompositeNode(grammarAccess.getMultiplicationAccess().getRightNegatedExpressionParserRuleCall_1_1_0()); + + pushFollow(FOLLOW_ruleNegatedExpression_in_ruleMultiplication1133); + lv_right_5_0=ruleNegatedExpression(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getMultiplicationRule()); + } + set( + current, + "right", + lv_right_5_0, + "NegatedExpression"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop6; + } + } while (true); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleMultiplication" + + + // $ANTLR start "entryRuleNegatedExpression" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:533:1: entryRuleNegatedExpression returns [EObject current=null] : iv_ruleNegatedExpression= ruleNegatedExpression EOF ; + public final EObject entryRuleNegatedExpression() throws RecognitionException { + EObject current = null; + + EObject iv_ruleNegatedExpression = null; + + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:534:2: (iv_ruleNegatedExpression= ruleNegatedExpression EOF ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:535:2: iv_ruleNegatedExpression= ruleNegatedExpression EOF + { + newCompositeNode(grammarAccess.getNegatedExpressionRule()); + pushFollow(FOLLOW_ruleNegatedExpression_in_entryRuleNegatedExpression1171); + iv_ruleNegatedExpression=ruleNegatedExpression(); + + state._fsp--; + + current =iv_ruleNegatedExpression; + match(input,EOF,FOLLOW_EOF_in_entryRuleNegatedExpression1181); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleNegatedExpression" + + + // $ANTLR start "ruleNegatedExpression" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:542:1: ruleNegatedExpression returns [EObject current=null] : ( () ( (lv_negate_1_0= '-' ) )? ( (lv_exp_2_0= rulePrimaryExpression ) ) ) ; + public final EObject ruleNegatedExpression() throws RecognitionException { + EObject current = null; + + Token lv_negate_1_0=null; + EObject lv_exp_2_0 = null; + + + enterRule(); + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:545:28: ( ( () ( (lv_negate_1_0= '-' ) )? ( (lv_exp_2_0= rulePrimaryExpression ) ) ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:546:1: ( () ( (lv_negate_1_0= '-' ) )? ( (lv_exp_2_0= rulePrimaryExpression ) ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:546:1: ( () ( (lv_negate_1_0= '-' ) )? ( (lv_exp_2_0= rulePrimaryExpression ) ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:546:2: () ( (lv_negate_1_0= '-' ) )? ( (lv_exp_2_0= rulePrimaryExpression ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:546:2: () + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:547:5: + { + + current = forceCreateModelElement( + grammarAccess.getNegatedExpressionAccess().getPrimaryExpressionAction_0(), + current); + + + } + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:552:2: ( (lv_negate_1_0= '-' ) )? + int alt7=2; + int LA7_0 = input.LA(1); + + if ( (LA7_0==17) ) { + alt7=1; + } + switch (alt7) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:553:1: (lv_negate_1_0= '-' ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:553:1: (lv_negate_1_0= '-' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:554:3: lv_negate_1_0= '-' + { + lv_negate_1_0=(Token)match(input,17,FOLLOW_17_in_ruleNegatedExpression1233); + + newLeafNode(lv_negate_1_0, grammarAccess.getNegatedExpressionAccess().getNegateHyphenMinusKeyword_1_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getNegatedExpressionRule()); + } + setWithLastConsumed(current, "negate", true, "-"); + + + } + + + } + break; + + } + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:567:3: ( (lv_exp_2_0= rulePrimaryExpression ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:568:1: (lv_exp_2_0= rulePrimaryExpression ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:568:1: (lv_exp_2_0= rulePrimaryExpression ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:569:3: lv_exp_2_0= rulePrimaryExpression + { + + newCompositeNode(grammarAccess.getNegatedExpressionAccess().getExpPrimaryExpressionParserRuleCall_2_0()); + + pushFollow(FOLLOW_rulePrimaryExpression_in_ruleNegatedExpression1268); + lv_exp_2_0=rulePrimaryExpression(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getNegatedExpressionRule()); + } + set( + current, + "exp", + lv_exp_2_0, + "PrimaryExpression"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleNegatedExpression" + + + // $ANTLR start "entryRulePrimaryExpression" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:593:1: entryRulePrimaryExpression returns [EObject current=null] : iv_rulePrimaryExpression= rulePrimaryExpression EOF ; + public final EObject entryRulePrimaryExpression() throws RecognitionException { + EObject current = null; + + EObject iv_rulePrimaryExpression = null; + + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:594:2: (iv_rulePrimaryExpression= rulePrimaryExpression EOF ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:595:2: iv_rulePrimaryExpression= rulePrimaryExpression EOF + { + newCompositeNode(grammarAccess.getPrimaryExpressionRule()); + pushFollow(FOLLOW_rulePrimaryExpression_in_entryRulePrimaryExpression1304); + iv_rulePrimaryExpression=rulePrimaryExpression(); + + state._fsp--; + + current =iv_rulePrimaryExpression; + match(input,EOF,FOLLOW_EOF_in_entryRulePrimaryExpression1314); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePrimaryExpression" + + + // $ANTLR start "rulePrimaryExpression" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:602:1: rulePrimaryExpression returns [EObject current=null] : ( ( () ( (lv_value_1_0= RULE_NUMBER ) ) ) | (otherlv_2= '(' ( (lv_exp_3_0= ruleExpression ) ) otherlv_4= ')' ) | ( () ( (otherlv_6= RULE_ID ) ) (otherlv_7= '(' ( (lv_args_8_0= ruleFunctionArgument ) )? (otherlv_9= ',' ( (lv_args_10_0= ruleFunctionArgument ) ) )* otherlv_11= ')' ) ) | ( () ( (otherlv_13= RULE_ID ) ) ) ) ; + public final EObject rulePrimaryExpression() throws RecognitionException { + EObject current = null; + + Token lv_value_1_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_7=null; + Token otherlv_9=null; + Token otherlv_11=null; + Token otherlv_13=null; + EObject lv_exp_3_0 = null; + + EObject lv_args_8_0 = null; + + EObject lv_args_10_0 = null; + + + enterRule(); + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:605:28: ( ( ( () ( (lv_value_1_0= RULE_NUMBER ) ) ) | (otherlv_2= '(' ( (lv_exp_3_0= ruleExpression ) ) otherlv_4= ')' ) | ( () ( (otherlv_6= RULE_ID ) ) (otherlv_7= '(' ( (lv_args_8_0= ruleFunctionArgument ) )? (otherlv_9= ',' ( (lv_args_10_0= ruleFunctionArgument ) ) )* otherlv_11= ')' ) ) | ( () ( (otherlv_13= RULE_ID ) ) ) ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:606:1: ( ( () ( (lv_value_1_0= RULE_NUMBER ) ) ) | (otherlv_2= '(' ( (lv_exp_3_0= ruleExpression ) ) otherlv_4= ')' ) | ( () ( (otherlv_6= RULE_ID ) ) (otherlv_7= '(' ( (lv_args_8_0= ruleFunctionArgument ) )? (otherlv_9= ',' ( (lv_args_10_0= ruleFunctionArgument ) ) )* otherlv_11= ')' ) ) | ( () ( (otherlv_13= RULE_ID ) ) ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:606:1: ( ( () ( (lv_value_1_0= RULE_NUMBER ) ) ) | (otherlv_2= '(' ( (lv_exp_3_0= ruleExpression ) ) otherlv_4= ')' ) | ( () ( (otherlv_6= RULE_ID ) ) (otherlv_7= '(' ( (lv_args_8_0= ruleFunctionArgument ) )? (otherlv_9= ',' ( (lv_args_10_0= ruleFunctionArgument ) ) )* otherlv_11= ')' ) ) | ( () ( (otherlv_13= RULE_ID ) ) ) ) + int alt10=4; + switch ( input.LA(1) ) { + case RULE_NUMBER: + { + alt10=1; + } + break; + case 20: + { + alt10=2; + } + break; + case RULE_ID: + { + int LA10_3 = input.LA(2); + + if ( (LA10_3==20) ) { + alt10=3; + } + else if ( (LA10_3==EOF||(LA10_3>=15 && LA10_3<=19)||(LA10_3>=21 && LA10_3<=22)) ) { + alt10=4; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 10, 3, input); + + throw nvae; + } + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 10, 0, input); + + throw nvae; + } + + switch (alt10) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:606:2: ( () ( (lv_value_1_0= RULE_NUMBER ) ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:606:2: ( () ( (lv_value_1_0= RULE_NUMBER ) ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:606:3: () ( (lv_value_1_0= RULE_NUMBER ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:606:3: () + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:607:5: + { + + current = forceCreateModelElement( + grammarAccess.getPrimaryExpressionAccess().getNumberLiteralAction_0_0(), + current); + + + } + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:612:2: ( (lv_value_1_0= RULE_NUMBER ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:613:1: (lv_value_1_0= RULE_NUMBER ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:613:1: (lv_value_1_0= RULE_NUMBER ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:614:3: lv_value_1_0= RULE_NUMBER + { + lv_value_1_0=(Token)match(input,RULE_NUMBER,FOLLOW_RULE_NUMBER_in_rulePrimaryExpression1366); + + newLeafNode(lv_value_1_0, grammarAccess.getPrimaryExpressionAccess().getValueNUMBERTerminalRuleCall_0_1_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getPrimaryExpressionRule()); + } + setWithLastConsumed( + current, + "value", + lv_value_1_0, + "NUMBER"); + + + } + + + } + + + } + + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:631:6: (otherlv_2= '(' ( (lv_exp_3_0= ruleExpression ) ) otherlv_4= ')' ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:631:6: (otherlv_2= '(' ( (lv_exp_3_0= ruleExpression ) ) otherlv_4= ')' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:631:8: otherlv_2= '(' ( (lv_exp_3_0= ruleExpression ) ) otherlv_4= ')' + { + otherlv_2=(Token)match(input,20,FOLLOW_20_in_rulePrimaryExpression1391); + + newLeafNode(otherlv_2, grammarAccess.getPrimaryExpressionAccess().getLeftParenthesisKeyword_1_0()); + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:635:1: ( (lv_exp_3_0= ruleExpression ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:636:1: (lv_exp_3_0= ruleExpression ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:636:1: (lv_exp_3_0= ruleExpression ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:637:3: lv_exp_3_0= ruleExpression + { + + newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getExpExpressionParserRuleCall_1_1_0()); + + pushFollow(FOLLOW_ruleExpression_in_rulePrimaryExpression1412); + lv_exp_3_0=ruleExpression(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule()); + } + set( + current, + "exp", + lv_exp_3_0, + "Expression"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_4=(Token)match(input,21,FOLLOW_21_in_rulePrimaryExpression1424); + + newLeafNode(otherlv_4, grammarAccess.getPrimaryExpressionAccess().getRightParenthesisKeyword_1_2()); + + + } + + + } + break; + case 3 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:658:6: ( () ( (otherlv_6= RULE_ID ) ) (otherlv_7= '(' ( (lv_args_8_0= ruleFunctionArgument ) )? (otherlv_9= ',' ( (lv_args_10_0= ruleFunctionArgument ) ) )* otherlv_11= ')' ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:658:6: ( () ( (otherlv_6= RULE_ID ) ) (otherlv_7= '(' ( (lv_args_8_0= ruleFunctionArgument ) )? (otherlv_9= ',' ( (lv_args_10_0= ruleFunctionArgument ) ) )* otherlv_11= ')' ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:658:7: () ( (otherlv_6= RULE_ID ) ) (otherlv_7= '(' ( (lv_args_8_0= ruleFunctionArgument ) )? (otherlv_9= ',' ( (lv_args_10_0= ruleFunctionArgument ) ) )* otherlv_11= ')' ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:658:7: () + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:659:5: + { + + current = forceCreateModelElement( + grammarAccess.getPrimaryExpressionAccess().getFunctionCallAction_2_0(), + current); + + + } + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:664:2: ( (otherlv_6= RULE_ID ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:665:1: (otherlv_6= RULE_ID ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:665:1: (otherlv_6= RULE_ID ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:666:3: otherlv_6= RULE_ID + { + + if (current==null) { + current = createModelElement(grammarAccess.getPrimaryExpressionRule()); + } + + otherlv_6=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePrimaryExpression1461); + + newLeafNode(otherlv_6, grammarAccess.getPrimaryExpressionAccess().getRefFunctionReferenceCrossReference_2_1_0()); + + + } + + + } + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:677:2: (otherlv_7= '(' ( (lv_args_8_0= ruleFunctionArgument ) )? (otherlv_9= ',' ( (lv_args_10_0= ruleFunctionArgument ) ) )* otherlv_11= ')' ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:677:4: otherlv_7= '(' ( (lv_args_8_0= ruleFunctionArgument ) )? (otherlv_9= ',' ( (lv_args_10_0= ruleFunctionArgument ) ) )* otherlv_11= ')' + { + otherlv_7=(Token)match(input,20,FOLLOW_20_in_rulePrimaryExpression1474); + + newLeafNode(otherlv_7, grammarAccess.getPrimaryExpressionAccess().getLeftParenthesisKeyword_2_2_0()); + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:681:1: ( (lv_args_8_0= ruleFunctionArgument ) )? + int alt8=2; + int LA8_0 = input.LA(1); + + if ( ((LA8_0>=RULE_ID && LA8_0<=RULE_STRING)||LA8_0==17||LA8_0==20) ) { + alt8=1; + } + switch (alt8) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:682:1: (lv_args_8_0= ruleFunctionArgument ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:682:1: (lv_args_8_0= ruleFunctionArgument ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:683:3: lv_args_8_0= ruleFunctionArgument + { + + newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getArgsFunctionArgumentParserRuleCall_2_2_1_0()); + + pushFollow(FOLLOW_ruleFunctionArgument_in_rulePrimaryExpression1495); + lv_args_8_0=ruleFunctionArgument(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule()); + } + add( + current, + "args", + lv_args_8_0, + "FunctionArgument"); + afterParserOrEnumRuleCall(); + + + } + + + } + break; + + } + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:699:3: (otherlv_9= ',' ( (lv_args_10_0= ruleFunctionArgument ) ) )* + loop9: + do { + int alt9=2; + int LA9_0 = input.LA(1); + + if ( (LA9_0==22) ) { + alt9=1; + } + + + switch (alt9) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:699:5: otherlv_9= ',' ( (lv_args_10_0= ruleFunctionArgument ) ) + { + otherlv_9=(Token)match(input,22,FOLLOW_22_in_rulePrimaryExpression1509); + + newLeafNode(otherlv_9, grammarAccess.getPrimaryExpressionAccess().getCommaKeyword_2_2_2_0()); + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:703:1: ( (lv_args_10_0= ruleFunctionArgument ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:704:1: (lv_args_10_0= ruleFunctionArgument ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:704:1: (lv_args_10_0= ruleFunctionArgument ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:705:3: lv_args_10_0= ruleFunctionArgument + { + + newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getArgsFunctionArgumentParserRuleCall_2_2_2_1_0()); + + pushFollow(FOLLOW_ruleFunctionArgument_in_rulePrimaryExpression1530); + lv_args_10_0=ruleFunctionArgument(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule()); + } + add( + current, + "args", + lv_args_10_0, + "FunctionArgument"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop9; + } + } while (true); + + otherlv_11=(Token)match(input,21,FOLLOW_21_in_rulePrimaryExpression1544); + + newLeafNode(otherlv_11, grammarAccess.getPrimaryExpressionAccess().getRightParenthesisKeyword_2_2_3()); + + + } + + + } + + + } + break; + case 4 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:726:6: ( () ( (otherlv_13= RULE_ID ) ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:726:6: ( () ( (otherlv_13= RULE_ID ) ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:726:7: () ( (otherlv_13= RULE_ID ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:726:7: () + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:727:5: + { + + current = forceCreateModelElement( + grammarAccess.getPrimaryExpressionAccess().getVariableReferenceAction_3_0(), + current); + + + } + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:732:2: ( (otherlv_13= RULE_ID ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:733:1: (otherlv_13= RULE_ID ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:733:1: (otherlv_13= RULE_ID ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:734:3: otherlv_13= RULE_ID + { + + if (current==null) { + current = createModelElement(grammarAccess.getPrimaryExpressionRule()); + } + + otherlv_13=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePrimaryExpression1582); + + newLeafNode(otherlv_13, grammarAccess.getPrimaryExpressionAccess().getRefScopedVariableReferenceCrossReference_3_1_0()); + + + } + + + } + + + } + + + } + break; + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePrimaryExpression" + + + // $ANTLR start "entryRuleFunctionArgument" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:753:1: entryRuleFunctionArgument returns [EObject current=null] : iv_ruleFunctionArgument= ruleFunctionArgument EOF ; + public final EObject entryRuleFunctionArgument() throws RecognitionException { + EObject current = null; + + EObject iv_ruleFunctionArgument = null; + + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:754:2: (iv_ruleFunctionArgument= ruleFunctionArgument EOF ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:755:2: iv_ruleFunctionArgument= ruleFunctionArgument EOF + { + newCompositeNode(grammarAccess.getFunctionArgumentRule()); + pushFollow(FOLLOW_ruleFunctionArgument_in_entryRuleFunctionArgument1619); + iv_ruleFunctionArgument=ruleFunctionArgument(); + + state._fsp--; + + current =iv_ruleFunctionArgument; + match(input,EOF,FOLLOW_EOF_in_entryRuleFunctionArgument1629); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleFunctionArgument" + + + // $ANTLR start "ruleFunctionArgument" + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:762:1: ruleFunctionArgument returns [EObject current=null] : ( ( () ( (lv_value_1_0= RULE_BOOLEAN ) ) ) | ( () ( (lv_value_3_0= RULE_STRING ) ) ) | this_Expression_4= ruleExpression ) ; + public final EObject ruleFunctionArgument() throws RecognitionException { + EObject current = null; + + Token lv_value_1_0=null; + Token lv_value_3_0=null; + EObject this_Expression_4 = null; + + + enterRule(); + + try { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:765:28: ( ( ( () ( (lv_value_1_0= RULE_BOOLEAN ) ) ) | ( () ( (lv_value_3_0= RULE_STRING ) ) ) | this_Expression_4= ruleExpression ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:766:1: ( ( () ( (lv_value_1_0= RULE_BOOLEAN ) ) ) | ( () ( (lv_value_3_0= RULE_STRING ) ) ) | this_Expression_4= ruleExpression ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:766:1: ( ( () ( (lv_value_1_0= RULE_BOOLEAN ) ) ) | ( () ( (lv_value_3_0= RULE_STRING ) ) ) | this_Expression_4= ruleExpression ) + int alt11=3; + switch ( input.LA(1) ) { + case RULE_BOOLEAN: + { + alt11=1; + } + break; + case RULE_STRING: + { + alt11=2; + } + break; + case RULE_ID: + case RULE_NUMBER: + case 17: + case 20: + { + alt11=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 11, 0, input); + + throw nvae; + } + + switch (alt11) { + case 1 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:766:2: ( () ( (lv_value_1_0= RULE_BOOLEAN ) ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:766:2: ( () ( (lv_value_1_0= RULE_BOOLEAN ) ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:766:3: () ( (lv_value_1_0= RULE_BOOLEAN ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:766:3: () + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:767:5: + { + + current = forceCreateModelElement( + grammarAccess.getFunctionArgumentAccess().getBooleanLiteralAction_0_0(), + current); + + + } + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:772:2: ( (lv_value_1_0= RULE_BOOLEAN ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:773:1: (lv_value_1_0= RULE_BOOLEAN ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:773:1: (lv_value_1_0= RULE_BOOLEAN ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:774:3: lv_value_1_0= RULE_BOOLEAN + { + lv_value_1_0=(Token)match(input,RULE_BOOLEAN,FOLLOW_RULE_BOOLEAN_in_ruleFunctionArgument1681); + + newLeafNode(lv_value_1_0, grammarAccess.getFunctionArgumentAccess().getValueBOOLEANTerminalRuleCall_0_1_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getFunctionArgumentRule()); + } + setWithLastConsumed( + current, + "value", + lv_value_1_0, + "BOOLEAN"); + + + } + + + } + + + } + + + } + break; + case 2 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:791:6: ( () ( (lv_value_3_0= RULE_STRING ) ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:791:6: ( () ( (lv_value_3_0= RULE_STRING ) ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:791:7: () ( (lv_value_3_0= RULE_STRING ) ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:791:7: () + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:792:5: + { + + current = forceCreateModelElement( + grammarAccess.getFunctionArgumentAccess().getStringLiteralAction_1_0(), + current); + + + } + + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:797:2: ( (lv_value_3_0= RULE_STRING ) ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:798:1: (lv_value_3_0= RULE_STRING ) + { + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:798:1: (lv_value_3_0= RULE_STRING ) + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:799:3: lv_value_3_0= RULE_STRING + { + lv_value_3_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleFunctionArgument1720); + + newLeafNode(lv_value_3_0, grammarAccess.getFunctionArgumentAccess().getValueSTRINGTerminalRuleCall_1_1_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getFunctionArgumentRule()); + } + setWithLastConsumed( + current, + "value", + lv_value_3_0, + "STRING"); + + + } + + + } + + + } + + + } + break; + case 3 : + // ../org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/parser/antlr/internal/InternalCTDL.g:817:5: this_Expression_4= ruleExpression + { + + newCompositeNode(grammarAccess.getFunctionArgumentAccess().getExpressionParserRuleCall_2()); + + pushFollow(FOLLOW_ruleExpression_in_ruleFunctionArgument1754); + this_Expression_4=ruleExpression(); + + state._fsp--; + + + current = this_Expression_4; + afterParserOrEnumRuleCall(); + + + } + break; + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleFunctionArgument" + + // Delegated rules + + + + + public static final BitSet FOLLOW_ruleCompartmentTransitionDefinitions_in_entryRuleCompartmentTransitionDefinitions75 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleCompartmentTransitionDefinitions85 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_ID_in_ruleCompartmentTransitionDefinitions130 = new BitSet(new long[]{0x0000000000004010L}); + public static final BitSet FOLLOW_ruleTransitionBlock_in_ruleCompartmentTransitionDefinitions152 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleTransitionBlock_in_entryRuleTransitionBlock190 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleTransitionBlock200 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleBlock_in_ruleTransitionBlock245 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleBlock_in_entryRuleBlock284 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleBlock294 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleDefStatement_in_ruleBlock349 = new BitSet(new long[]{0x0000000000004010L}); + public static final BitSet FOLLOW_ruleReturnStatement_in_ruleBlock371 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleDefStatement_in_entryRuleDefStatement407 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleDefStatement417 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_ID_in_ruleDefStatement459 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_13_in_ruleDefStatement476 = new BitSet(new long[]{0x0000000000120030L}); + public static final BitSet FOLLOW_ruleEvaluation_in_ruleDefStatement497 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleReturnStatement_in_entryRuleReturnStatement533 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleReturnStatement543 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_14_in_ruleReturnStatement580 = new BitSet(new long[]{0x0000000000120030L}); + public static final BitSet FOLLOW_ruleEvaluation_in_ruleReturnStatement602 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleEvaluation_in_entryRuleEvaluation637 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleEvaluation647 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleExpression_in_ruleEvaluation693 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_ruleEvaluation705 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleExpression_in_entryRuleExpression741 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleExpression751 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleAddition_in_ruleExpression797 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleAddition_in_entryRuleAddition831 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleAddition841 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleMultiplication_in_ruleAddition888 = new BitSet(new long[]{0x0000000000030002L}); + public static final BitSet FOLLOW_16_in_ruleAddition911 = new BitSet(new long[]{0x0000000000120030L}); + public static final BitSet FOLLOW_17_in_ruleAddition940 = new BitSet(new long[]{0x0000000000120030L}); + public static final BitSet FOLLOW_ruleMultiplication_in_ruleAddition963 = new BitSet(new long[]{0x0000000000030002L}); + public static final BitSet FOLLOW_ruleMultiplication_in_entryRuleMultiplication1001 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleMultiplication1011 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleNegatedExpression_in_ruleMultiplication1058 = new BitSet(new long[]{0x00000000000C0002L}); + public static final BitSet FOLLOW_18_in_ruleMultiplication1081 = new BitSet(new long[]{0x0000000000120030L}); + public static final BitSet FOLLOW_19_in_ruleMultiplication1110 = new BitSet(new long[]{0x0000000000120030L}); + public static final BitSet FOLLOW_ruleNegatedExpression_in_ruleMultiplication1133 = new BitSet(new long[]{0x00000000000C0002L}); + public static final BitSet FOLLOW_ruleNegatedExpression_in_entryRuleNegatedExpression1171 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleNegatedExpression1181 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_17_in_ruleNegatedExpression1233 = new BitSet(new long[]{0x0000000000120030L}); + public static final BitSet FOLLOW_rulePrimaryExpression_in_ruleNegatedExpression1268 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rulePrimaryExpression_in_entryRulePrimaryExpression1304 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRulePrimaryExpression1314 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_NUMBER_in_rulePrimaryExpression1366 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_20_in_rulePrimaryExpression1391 = new BitSet(new long[]{0x0000000000120030L}); + public static final BitSet FOLLOW_ruleExpression_in_rulePrimaryExpression1412 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_rulePrimaryExpression1424 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_ID_in_rulePrimaryExpression1461 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_rulePrimaryExpression1474 = new BitSet(new long[]{0x00000000007200F0L}); + public static final BitSet FOLLOW_ruleFunctionArgument_in_rulePrimaryExpression1495 = new BitSet(new long[]{0x0000000000600000L}); + public static final BitSet FOLLOW_22_in_rulePrimaryExpression1509 = new BitSet(new long[]{0x00000000001200F0L}); + public static final BitSet FOLLOW_ruleFunctionArgument_in_rulePrimaryExpression1530 = new BitSet(new long[]{0x0000000000600000L}); + public static final BitSet FOLLOW_21_in_rulePrimaryExpression1544 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_ID_in_rulePrimaryExpression1582 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleFunctionArgument_in_entryRuleFunctionArgument1619 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleFunctionArgument1629 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_BOOLEAN_in_ruleFunctionArgument1681 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_STRING_in_ruleFunctionArgument1720 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleExpression_in_ruleFunctionArgument1754 = new BitSet(new long[]{0x0000000000000002L}); + +}
\ No newline at end of file diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/serializer/CTDLSemanticSequencer.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/serializer/CTDLSemanticSequencer.java new file mode 100644 index 000000000..4f58a448b --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/serializer/CTDLSemanticSequencer.java @@ -0,0 +1,628 @@ +package org.eclipse.stem.model.ctdl.serializer; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.stem.model.ctdl.ctdl.AbsoluteCompartmentValueReference; +import org.eclipse.stem.model.ctdl.ctdl.Block; +import org.eclipse.stem.model.ctdl.ctdl.BooleanLiteral; +import org.eclipse.stem.model.ctdl.ctdl.CompartmentReference; +import org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.DefStatement; +import org.eclipse.stem.model.ctdl.ctdl.DefStatementReference; +import org.eclipse.stem.model.ctdl.ctdl.Div; +import org.eclipse.stem.model.ctdl.ctdl.Evaluation; +import org.eclipse.stem.model.ctdl.ctdl.Expression; +import org.eclipse.stem.model.ctdl.ctdl.ExternalFunctionReference; +import org.eclipse.stem.model.ctdl.ctdl.FunctionCall; +import org.eclipse.stem.model.ctdl.ctdl.FunctionReference; +import org.eclipse.stem.model.ctdl.ctdl.GlobalVariable; +import org.eclipse.stem.model.ctdl.ctdl.GlobalVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.LocalVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.MetamodelResource; +import org.eclipse.stem.model.ctdl.ctdl.Minus; +import org.eclipse.stem.model.ctdl.ctdl.ModelParamReference; +import org.eclipse.stem.model.ctdl.ctdl.Multi; +import org.eclipse.stem.model.ctdl.ctdl.NumberLiteral; +import org.eclipse.stem.model.ctdl.ctdl.Plus; +import org.eclipse.stem.model.ctdl.ctdl.PrimaryExpression; +import org.eclipse.stem.model.ctdl.ctdl.RelativeCompartmentValueReference; +import org.eclipse.stem.model.ctdl.ctdl.ScopedVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.StringLiteral; +import org.eclipse.stem.model.ctdl.ctdl.TransitionBlock; +import org.eclipse.stem.model.ctdl.ctdl.VariableReference; +import org.eclipse.stem.model.ctdl.services.CTDLGrammarAccess; +import org.eclipse.stem.model.metamodel.Compartment; +import org.eclipse.stem.model.metamodel.MetamodelPackage; +import org.eclipse.stem.model.metamodel.Transition; +import org.eclipse.xtext.serializer.acceptor.SequenceFeeder; +import org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer; +import org.eclipse.xtext.serializer.sequencer.ISemanticNodeProvider.INodesForEObjectProvider; +import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient; + +import com.google.inject.Inject; + +@SuppressWarnings("all") +public class CTDLSemanticSequencer extends AbstractDelegatingSemanticSequencer { + + @Inject + private CTDLGrammarAccess grammarAccess; + + public void createSequence(EObject context, EObject semanticObject) { + if(semanticObject.eClass().getEPackage() == CtdlPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) { + case CtdlPackage.ABSOLUTE_COMPARTMENT_VALUE_REFERENCE: + if(context == grammarAccess.getCompartmentReferenceRule()) { + sequence_CompartmentReference(context, (AbsoluteCompartmentValueReference) semanticObject); + return; + } + else break; + case CtdlPackage.BLOCK: + if(context == grammarAccess.getBlockRule()) { + sequence_Block(context, (Block) semanticObject); + return; + } + else break; + case CtdlPackage.BOOLEAN_LITERAL: + if(context == grammarAccess.getFunctionArgumentRule()) { + sequence_FunctionArgument(context, (BooleanLiteral) semanticObject); + return; + } + else break; + case CtdlPackage.COMPARTMENT_REFERENCE: + if(context == grammarAccess.getCompartmentReferenceRule()) { + sequence_CompartmentReference(context, (CompartmentReference) semanticObject); + return; + } + else if(context == grammarAccess.getScopedVariableReferenceRule()) { + sequence_ScopedVariableReference(context, (CompartmentReference) semanticObject); + return; + } + else break; + case CtdlPackage.COMPARTMENT_TRANSITION_DEFINITIONS: + if(context == grammarAccess.getCompartmentTransitionDefinitionsRule()) { + sequence_CompartmentTransitionDefinitions(context, (CompartmentTransitionDefinitions) semanticObject); + return; + } + else break; + case CtdlPackage.DEF_STATEMENT: + if(context == grammarAccess.getDefStatementRule()) { + sequence_DefStatement(context, (DefStatement) semanticObject); + return; + } + else break; + case CtdlPackage.DEF_STATEMENT_REFERENCE: + if(context == grammarAccess.getLocalVariableReferenceRule()) { + sequence_LocalVariableReference(context, (DefStatementReference) semanticObject); + return; + } + else break; + case CtdlPackage.DIV: + if(context == grammarAccess.getAdditionRule() || + context == grammarAccess.getAdditionAccess().getMinusLeftAction_1_0_1_0() || + context == grammarAccess.getAdditionAccess().getPlusLeftAction_1_0_0_0() || + context == grammarAccess.getExpressionRule() || + context == grammarAccess.getFunctionArgumentRule() || + context == grammarAccess.getMultiplicationRule() || + context == grammarAccess.getMultiplicationAccess().getDivLeftAction_1_0_1_0() || + context == grammarAccess.getMultiplicationAccess().getMultiLeftAction_1_0_0_0()) { + sequence_Multiplication(context, (Div) semanticObject); + return; + } + else break; + case CtdlPackage.EVALUATION: + if(context == grammarAccess.getEvaluationRule() || + context == grammarAccess.getReturnStatementRule()) { + sequence_Evaluation(context, (Evaluation) semanticObject); + return; + } + else break; + case CtdlPackage.EXPRESSION: + if(context == grammarAccess.getPrimaryExpressionRule()) { + sequence_PrimaryExpression(context, (Expression) semanticObject); + return; + } + else break; + case CtdlPackage.EXTERNAL_FUNCTION_REFERENCE: + if(context == grammarAccess.getFunctionReferenceRule()) { + sequence_FunctionReference(context, (ExternalFunctionReference) semanticObject); + return; + } + else break; + case CtdlPackage.FUNCTION_CALL: + if(context == grammarAccess.getPrimaryExpressionRule()) { + sequence_PrimaryExpression(context, (FunctionCall) semanticObject); + return; + } + else break; + case CtdlPackage.FUNCTION_REFERENCE: + if(context == grammarAccess.getFunctionReferenceRule()) { + sequence_FunctionReference(context, (FunctionReference) semanticObject); + return; + } + else break; + case CtdlPackage.GLOBAL_VARIABLE: + if(context == grammarAccess.getGlobalVariableRule()) { + sequence_GlobalVariable(context, (GlobalVariable) semanticObject); + return; + } + else break; + case CtdlPackage.GLOBAL_VARIABLE_REFERENCE: + if(context == grammarAccess.getScopedVariableReferenceRule()) { + sequence_ScopedVariableReference(context, (GlobalVariableReference) semanticObject); + return; + } + else break; + case CtdlPackage.LOCAL_VARIABLE_REFERENCE: + if(context == grammarAccess.getScopedVariableReferenceRule()) { + sequence_ScopedVariableReference(context, (LocalVariableReference) semanticObject); + return; + } + else break; + case CtdlPackage.METAMODEL_RESOURCE: + if(context == grammarAccess.getMetamodelResourceRule()) { + sequence_MetamodelResource(context, (MetamodelResource) semanticObject); + return; + } + else break; + case CtdlPackage.MINUS: + if(context == grammarAccess.getAdditionRule() || + context == grammarAccess.getAdditionAccess().getMinusLeftAction_1_0_1_0() || + context == grammarAccess.getAdditionAccess().getPlusLeftAction_1_0_0_0() || + context == grammarAccess.getExpressionRule() || + context == grammarAccess.getFunctionArgumentRule()) { + sequence_Addition(context, (Minus) semanticObject); + return; + } + else break; + case CtdlPackage.MODEL_PARAM_REFERENCE: + if(context == grammarAccess.getModelParamReferenceRule()) { + sequence_ModelParamReference(context, (ModelParamReference) semanticObject); + return; + } + else if(context == grammarAccess.getScopedVariableReferenceRule()) { + sequence_ScopedVariableReference(context, (ModelParamReference) semanticObject); + return; + } + else break; + case CtdlPackage.MULTI: + if(context == grammarAccess.getAdditionRule() || + context == grammarAccess.getAdditionAccess().getMinusLeftAction_1_0_1_0() || + context == grammarAccess.getAdditionAccess().getPlusLeftAction_1_0_0_0() || + context == grammarAccess.getExpressionRule() || + context == grammarAccess.getFunctionArgumentRule() || + context == grammarAccess.getMultiplicationRule() || + context == grammarAccess.getMultiplicationAccess().getDivLeftAction_1_0_1_0() || + context == grammarAccess.getMultiplicationAccess().getMultiLeftAction_1_0_0_0()) { + sequence_Multiplication(context, (Multi) semanticObject); + return; + } + else break; + case CtdlPackage.NUMBER_LITERAL: + if(context == grammarAccess.getPrimaryExpressionRule()) { + sequence_PrimaryExpression(context, (NumberLiteral) semanticObject); + return; + } + else break; + case CtdlPackage.PLUS: + if(context == grammarAccess.getAdditionRule() || + context == grammarAccess.getAdditionAccess().getMinusLeftAction_1_0_1_0() || + context == grammarAccess.getAdditionAccess().getPlusLeftAction_1_0_0_0() || + context == grammarAccess.getExpressionRule() || + context == grammarAccess.getFunctionArgumentRule()) { + sequence_Addition(context, (Plus) semanticObject); + return; + } + else break; + case CtdlPackage.PRIMARY_EXPRESSION: + if(context == grammarAccess.getAdditionRule() || + context == grammarAccess.getAdditionAccess().getMinusLeftAction_1_0_1_0() || + context == grammarAccess.getAdditionAccess().getPlusLeftAction_1_0_0_0() || + context == grammarAccess.getExpressionRule() || + context == grammarAccess.getFunctionArgumentRule() || + context == grammarAccess.getMultiplicationRule() || + context == grammarAccess.getMultiplicationAccess().getDivLeftAction_1_0_1_0() || + context == grammarAccess.getMultiplicationAccess().getMultiLeftAction_1_0_0_0() || + context == grammarAccess.getNegatedExpressionRule()) { + sequence_NegatedExpression(context, (PrimaryExpression) semanticObject); + return; + } + else break; + case CtdlPackage.RELATIVE_COMPARTMENT_VALUE_REFERENCE: + if(context == grammarAccess.getCompartmentReferenceRule()) { + sequence_CompartmentReference(context, (RelativeCompartmentValueReference) semanticObject); + return; + } + else break; + case CtdlPackage.SCOPED_VARIABLE_REFERENCE: + if(context == grammarAccess.getScopedVariableReferenceRule()) { + sequence_ScopedVariableReference(context, (ScopedVariableReference) semanticObject); + return; + } + else break; + case CtdlPackage.STRING_LITERAL: + if(context == grammarAccess.getFunctionArgumentRule()) { + sequence_FunctionArgument(context, (StringLiteral) semanticObject); + return; + } + else break; + case CtdlPackage.TRANSITION_BLOCK: + if(context == grammarAccess.getTransitionBlockRule()) { + sequence_TransitionBlock(context, (TransitionBlock) semanticObject); + return; + } + else break; + case CtdlPackage.VARIABLE_REFERENCE: + if(context == grammarAccess.getPrimaryExpressionRule()) { + sequence_PrimaryExpression(context, (VariableReference) semanticObject); + return; + } + else break; + } + else if(semanticObject.eClass().getEPackage() == MetamodelPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) { + case MetamodelPackage.COMPARTMENT: + if(context == grammarAccess.getCompartmentRule()) { + sequence_Compartment(context, (Compartment) semanticObject); + return; + } + else break; + case MetamodelPackage.TRANSITION: + if(context == grammarAccess.getTransitionRule()) { + sequence_Transition(context, (Transition) semanticObject); + return; + } + else break; + } + if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context)); + } + + /** + * Constraint: + * (left=Addition_Minus_1_0_1_0 right=Multiplication) + */ + protected void sequence_Addition(EObject context, Minus semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * (left=Addition_Plus_1_0_0_0 right=Multiplication) + */ + protected void sequence_Addition(EObject context, Plus semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * (statements+=DefStatement* ret=ReturnStatement) + */ + protected void sequence_Block(EObject context, Block semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * {AbsoluteCompartmentValueReference} + */ + protected void sequence_CompartmentReference(EObject context, AbsoluteCompartmentValueReference semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * obj=[Compartment|ID] + */ + protected void sequence_CompartmentReference(EObject context, CompartmentReference semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * {RelativeCompartmentValueReference} + */ + protected void sequence_CompartmentReference(EObject context, RelativeCompartmentValueReference semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * (metamodel=[MetamodelResource|ID]? expression=TransitionBlock) + */ + protected void sequence_CompartmentTransitionDefinitions(EObject context, CompartmentTransitionDefinitions semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * name=ID + */ + protected void sequence_Compartment(EObject context, Compartment semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * (varname=ID expr=Evaluation) + */ + protected void sequence_DefStatement(EObject context, DefStatement semanticObject) { + if(errorAcceptor != null) { + if(transientValues.isValueTransient(semanticObject, CtdlPackage.Literals.DEF_STATEMENT__VARNAME) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CtdlPackage.Literals.DEF_STATEMENT__VARNAME)); + if(transientValues.isValueTransient(semanticObject, CtdlPackage.Literals.DEF_STATEMENT__EXPR) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CtdlPackage.Literals.DEF_STATEMENT__EXPR)); + } + INodesForEObjectProvider nodes = createNodeProvider(semanticObject); + SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); + feeder.accept(grammarAccess.getDefStatementAccess().getVarnameIDTerminalRuleCall_0_0(), semanticObject.getVarname()); + feeder.accept(grammarAccess.getDefStatementAccess().getExprEvaluationParserRuleCall_2_0(), semanticObject.getExpr()); + feeder.finish(); + } + + + /** + * Constraint: + * expression=Expression + */ + protected void sequence_Evaluation(EObject context, Evaluation semanticObject) { + if(errorAcceptor != null) { + if(transientValues.isValueTransient(semanticObject, CtdlPackage.Literals.EVALUATION__EXPRESSION) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CtdlPackage.Literals.EVALUATION__EXPRESSION)); + } + INodesForEObjectProvider nodes = createNodeProvider(semanticObject); + SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); + feeder.accept(grammarAccess.getEvaluationAccess().getExpressionExpressionParserRuleCall_0_0(), semanticObject.getExpression()); + feeder.finish(); + } + + + /** + * Constraint: + * value=BOOLEAN + */ + protected void sequence_FunctionArgument(EObject context, BooleanLiteral semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * value=STRING + */ + protected void sequence_FunctionArgument(EObject context, StringLiteral semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * func=[ExternalFunctionDefinition|ID] + */ + protected void sequence_FunctionReference(EObject context, ExternalFunctionReference semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * name=ID + */ + protected void sequence_FunctionReference(EObject context, FunctionReference semanticObject) { + if(errorAcceptor != null) { + if(transientValues.isValueTransient(semanticObject, CtdlPackage.Literals.FUNCTION_REFERENCE__NAME) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CtdlPackage.Literals.FUNCTION_REFERENCE__NAME)); + } + INodesForEObjectProvider nodes = createNodeProvider(semanticObject); + SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); + feeder.accept(grammarAccess.getFunctionReferenceAccess().getNameIDTerminalRuleCall_0_0(), semanticObject.getName()); + feeder.finish(); + } + + + /** + * Constraint: + * name=ID + */ + protected void sequence_GlobalVariable(EObject context, GlobalVariable semanticObject) { + if(errorAcceptor != null) { + if(transientValues.isValueTransient(semanticObject, CtdlPackage.Literals.GLOBAL_VARIABLE__NAME) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CtdlPackage.Literals.GLOBAL_VARIABLE__NAME)); + } + INodesForEObjectProvider nodes = createNodeProvider(semanticObject); + SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); + feeder.accept(grammarAccess.getGlobalVariableAccess().getNameIDTerminalRuleCall_0(), semanticObject.getName()); + feeder.finish(); + } + + + /** + * Constraint: + * obj=[DefStatement|ID] + */ + protected void sequence_LocalVariableReference(EObject context, DefStatementReference semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * (package=[Package|STRING] model=[Model|ID] transition=[Transition|ID]) + */ + protected void sequence_MetamodelResource(EObject context, MetamodelResource semanticObject) { + if(errorAcceptor != null) { + if(transientValues.isValueTransient(semanticObject, CtdlPackage.Literals.METAMODEL_RESOURCE__PACKAGE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CtdlPackage.Literals.METAMODEL_RESOURCE__PACKAGE)); + if(transientValues.isValueTransient(semanticObject, CtdlPackage.Literals.METAMODEL_RESOURCE__MODEL) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CtdlPackage.Literals.METAMODEL_RESOURCE__MODEL)); + if(transientValues.isValueTransient(semanticObject, CtdlPackage.Literals.METAMODEL_RESOURCE__TRANSITION) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CtdlPackage.Literals.METAMODEL_RESOURCE__TRANSITION)); + } + INodesForEObjectProvider nodes = createNodeProvider(semanticObject); + SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); + feeder.accept(grammarAccess.getMetamodelResourceAccess().getPackagePackageSTRINGTerminalRuleCall_1_0_1(), semanticObject.getPackage()); + feeder.accept(grammarAccess.getMetamodelResourceAccess().getModelModelIDTerminalRuleCall_3_0_1(), semanticObject.getModel()); + feeder.accept(grammarAccess.getMetamodelResourceAccess().getTransitionTransitionIDTerminalRuleCall_5_0_1(), semanticObject.getTransition()); + feeder.finish(); + } + + + /** + * Constraint: + * obj=[ModelParam|ID] + */ + protected void sequence_ModelParamReference(EObject context, ModelParamReference semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * (left=Multiplication_Div_1_0_1_0 right=NegatedExpression) + */ + protected void sequence_Multiplication(EObject context, Div semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * (left=Multiplication_Multi_1_0_0_0 right=NegatedExpression) + */ + protected void sequence_Multiplication(EObject context, Multi semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * (negate?='-'? exp=PrimaryExpression) + */ + protected void sequence_NegatedExpression(EObject context, PrimaryExpression semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * exp=Expression + */ + protected void sequence_PrimaryExpression(EObject context, Expression semanticObject) { + if(errorAcceptor != null) { + if(transientValues.isValueTransient(semanticObject, CtdlPackage.Literals.EXPRESSION__EXP) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CtdlPackage.Literals.EXPRESSION__EXP)); + } + INodesForEObjectProvider nodes = createNodeProvider(semanticObject); + SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); + feeder.accept(grammarAccess.getPrimaryExpressionAccess().getExpExpressionParserRuleCall_1_1_0(), semanticObject.getExp()); + feeder.finish(); + } + + + /** + * Constraint: + * (ref=[FunctionReference|ID] args+=FunctionArgument? args+=FunctionArgument*) + */ + protected void sequence_PrimaryExpression(EObject context, FunctionCall semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * value=NUMBER + */ + protected void sequence_PrimaryExpression(EObject context, NumberLiteral semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * ref=[ScopedVariableReference|ID] + */ + protected void sequence_PrimaryExpression(EObject context, VariableReference semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * {CompartmentReference} + */ + protected void sequence_ScopedVariableReference(EObject context, CompartmentReference semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * {GlobalVariableReference} + */ + protected void sequence_ScopedVariableReference(EObject context, GlobalVariableReference semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * {LocalVariableReference} + */ + protected void sequence_ScopedVariableReference(EObject context, LocalVariableReference semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * {ModelParamReference} + */ + protected void sequence_ScopedVariableReference(EObject context, ModelParamReference semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Constraint: + * name=ID + */ + protected void sequence_ScopedVariableReference(EObject context, ScopedVariableReference semanticObject) { + if(errorAcceptor != null) { + if(transientValues.isValueTransient(semanticObject, CtdlPackage.Literals.SCOPED_VARIABLE_REFERENCE__NAME) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CtdlPackage.Literals.SCOPED_VARIABLE_REFERENCE__NAME)); + } + INodesForEObjectProvider nodes = createNodeProvider(semanticObject); + SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); + feeder.accept(grammarAccess.getScopedVariableReferenceAccess().getNameIDTerminalRuleCall_0_0(), semanticObject.getName()); + feeder.finish(); + } + + + /** + * Constraint: + * block=Block + */ + protected void sequence_TransitionBlock(EObject context, TransitionBlock semanticObject) { + if(errorAcceptor != null) { + if(transientValues.isValueTransient(semanticObject, CtdlPackage.Literals.TRANSITION_BLOCK__BLOCK) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CtdlPackage.Literals.TRANSITION_BLOCK__BLOCK)); + } + INodesForEObjectProvider nodes = createNodeProvider(semanticObject); + SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); + feeder.accept(grammarAccess.getTransitionBlockAccess().getBlockBlockParserRuleCall_0(), semanticObject.getBlock()); + feeder.finish(); + } + + + /** + * Constraint: + * (source=[Compartment|ID] target=[Compartment|ID]) + */ + protected void sequence_Transition(EObject context, Transition semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } +} diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/serializer/CTDLSyntacticSequencer.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/serializer/CTDLSyntacticSequencer.java new file mode 100644 index 000000000..95fc7802b --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/serializer/CTDLSyntacticSequencer.java @@ -0,0 +1,42 @@ +package org.eclipse.stem.model.ctdl.serializer; + +import java.util.List; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.stem.model.ctdl.services.CTDLGrammarAccess; +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.ISyntacticSequencerPDAProvider.ISynTransition; +import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer; + +import com.google.inject.Inject; + +@SuppressWarnings("all") +public class CTDLSyntacticSequencer extends AbstractSyntacticSequencer { + + protected CTDLGrammarAccess grammarAccess; + + @Inject + protected void init(IGrammarAccess access) { + grammarAccess = (CTDLGrammarAccess) access; + } + + @Override + protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) { + return ""; + } + + + @Override + protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) { + if (transition.getAmbiguousSyntaxes().isEmpty()) return; + List<INode> transitionNodes = collectNodes(fromNode, toNode); + for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) { + List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax); + acceptNodes(getLastNavigableState(), syntaxNodes); + } + } + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/services/CTDLGrammarAccess.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/services/CTDLGrammarAccess.java new file mode 100644 index 000000000..648c8f7b0 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/services/CTDLGrammarAccess.java @@ -0,0 +1,1148 @@ +/* +* generated by Xtext +*/ + +package org.eclipse.stem.model.ctdl.services; + +import java.util.List; + +import org.eclipse.xtext.Action; +import org.eclipse.xtext.Alternatives; +import org.eclipse.xtext.Assignment; +import org.eclipse.xtext.CrossReference; +import org.eclipse.xtext.Grammar; +import org.eclipse.xtext.GrammarUtil; +import org.eclipse.xtext.Group; +import org.eclipse.xtext.Keyword; +import org.eclipse.xtext.ParserRule; +import org.eclipse.xtext.RuleCall; +import org.eclipse.xtext.TerminalRule; +import org.eclipse.xtext.common.services.TerminalsGrammarAccess; +import org.eclipse.xtext.service.AbstractElementFinder.AbstractGrammarElementFinder; +import org.eclipse.xtext.service.GrammarProvider; + +import com.google.inject.Inject; +import com.google.inject.Singleton; + +@Singleton +public class CTDLGrammarAccess extends AbstractGrammarElementFinder { + + + public class CompartmentTransitionDefinitionsElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "CompartmentTransitionDefinitions"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cMetamodelAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final CrossReference cMetamodelMetamodelResourceCrossReference_0_0 = (CrossReference)cMetamodelAssignment_0.eContents().get(0); + private final RuleCall cMetamodelMetamodelResourceIDTerminalRuleCall_0_0_1 = (RuleCall)cMetamodelMetamodelResourceCrossReference_0_0.eContents().get(1); + private final Assignment cExpressionAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cExpressionTransitionBlockParserRuleCall_1_0 = (RuleCall)cExpressionAssignment_1.eContents().get(0); + + //CompartmentTransitionDefinitions: + // metamodel=[MetamodelResource]? expression=TransitionBlock; + public ParserRule getRule() { return rule; } + + //metamodel=[MetamodelResource]? expression=TransitionBlock + public Group getGroup() { return cGroup; } + + //metamodel=[MetamodelResource]? + public Assignment getMetamodelAssignment_0() { return cMetamodelAssignment_0; } + + //[MetamodelResource] + public CrossReference getMetamodelMetamodelResourceCrossReference_0_0() { return cMetamodelMetamodelResourceCrossReference_0_0; } + + //ID + public RuleCall getMetamodelMetamodelResourceIDTerminalRuleCall_0_0_1() { return cMetamodelMetamodelResourceIDTerminalRuleCall_0_0_1; } + + //expression=TransitionBlock + public Assignment getExpressionAssignment_1() { return cExpressionAssignment_1; } + + //TransitionBlock + public RuleCall getExpressionTransitionBlockParserRuleCall_1_0() { return cExpressionTransitionBlockParserRuleCall_1_0; } + } + + public class MetamodelResourceElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "MetamodelResource"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cMetamodelKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cPackageAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final CrossReference cPackagePackageCrossReference_1_0 = (CrossReference)cPackageAssignment_1.eContents().get(0); + private final RuleCall cPackagePackageSTRINGTerminalRuleCall_1_0_1 = (RuleCall)cPackagePackageCrossReference_1_0.eContents().get(1); + private final Keyword cModelKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cModelAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final CrossReference cModelModelCrossReference_3_0 = (CrossReference)cModelAssignment_3.eContents().get(0); + private final RuleCall cModelModelIDTerminalRuleCall_3_0_1 = (RuleCall)cModelModelCrossReference_3_0.eContents().get(1); + private final Keyword cTransitionKeyword_4 = (Keyword)cGroup.eContents().get(4); + private final Assignment cTransitionAssignment_5 = (Assignment)cGroup.eContents().get(5); + private final CrossReference cTransitionTransitionCrossReference_5_0 = (CrossReference)cTransitionAssignment_5.eContents().get(0); + private final RuleCall cTransitionTransitionIDTerminalRuleCall_5_0_1 = (RuleCall)cTransitionTransitionCrossReference_5_0.eContents().get(1); + + //MetamodelResource: + // "metamodel " package=[metamodel::Package|STRING] "model " model=[metamodel::Model] "transition " + // transition=[metamodel::Transition]; + public ParserRule getRule() { return rule; } + + //"metamodel " package=[metamodel::Package|STRING] "model " model=[metamodel::Model] "transition " + //transition=[metamodel::Transition] + public Group getGroup() { return cGroup; } + + //"metamodel " + public Keyword getMetamodelKeyword_0() { return cMetamodelKeyword_0; } + + //package=[metamodel::Package|STRING] + public Assignment getPackageAssignment_1() { return cPackageAssignment_1; } + + //[metamodel::Package|STRING] + public CrossReference getPackagePackageCrossReference_1_0() { return cPackagePackageCrossReference_1_0; } + + //STRING + public RuleCall getPackagePackageSTRINGTerminalRuleCall_1_0_1() { return cPackagePackageSTRINGTerminalRuleCall_1_0_1; } + + //"model " + public Keyword getModelKeyword_2() { return cModelKeyword_2; } + + //model=[metamodel::Model] + public Assignment getModelAssignment_3() { return cModelAssignment_3; } + + //[metamodel::Model] + public CrossReference getModelModelCrossReference_3_0() { return cModelModelCrossReference_3_0; } + + //ID + public RuleCall getModelModelIDTerminalRuleCall_3_0_1() { return cModelModelIDTerminalRuleCall_3_0_1; } + + //"transition " + public Keyword getTransitionKeyword_4() { return cTransitionKeyword_4; } + + //transition=[metamodel::Transition] + public Assignment getTransitionAssignment_5() { return cTransitionAssignment_5; } + + //[metamodel::Transition] + public CrossReference getTransitionTransitionCrossReference_5_0() { return cTransitionTransitionCrossReference_5_0; } + + //ID + public RuleCall getTransitionTransitionIDTerminalRuleCall_5_0_1() { return cTransitionTransitionIDTerminalRuleCall_5_0_1; } + } + + public class TransitionBlockElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TransitionBlock"); + private final Assignment cBlockAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cBlockBlockParserRuleCall_0 = (RuleCall)cBlockAssignment.eContents().get(0); + + //TransitionBlock: //'transition ' transition=[metamodel::Transition|TRANS_STMT] + // block=Block; + public ParserRule getRule() { return rule; } + + ////'transition ' transition=[metamodel::Transition|TRANS_STMT] + //block=Block + public Assignment getBlockAssignment() { return cBlockAssignment; } + + //Block + public RuleCall getBlockBlockParserRuleCall_0() { return cBlockBlockParserRuleCall_0; } + } + + public class TransitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Transition"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cTransitionAction_0 = (Action)cGroup.eContents().get(0); + private final Assignment cSourceAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final CrossReference cSourceCompartmentCrossReference_1_0 = (CrossReference)cSourceAssignment_1.eContents().get(0); + private final RuleCall cSourceCompartmentIDTerminalRuleCall_1_0_1 = (RuleCall)cSourceCompartmentCrossReference_1_0.eContents().get(1); + private final Keyword cHyphenMinusGreaterThanSignKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cTargetAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final CrossReference cTargetCompartmentCrossReference_3_0 = (CrossReference)cTargetAssignment_3.eContents().get(0); + private final RuleCall cTargetCompartmentIDTerminalRuleCall_3_0_1 = (RuleCall)cTargetCompartmentCrossReference_3_0.eContents().get(1); + + //Transition returns metamodel::Transition: + // {metamodel::Transition} source=[metamodel::Compartment] "->" target=[metamodel::Compartment]; + public ParserRule getRule() { return rule; } + + //{metamodel::Transition} source=[metamodel::Compartment] "->" target=[metamodel::Compartment] + public Group getGroup() { return cGroup; } + + //{metamodel::Transition} + public Action getTransitionAction_0() { return cTransitionAction_0; } + + //source=[metamodel::Compartment] + public Assignment getSourceAssignment_1() { return cSourceAssignment_1; } + + //[metamodel::Compartment] + public CrossReference getSourceCompartmentCrossReference_1_0() { return cSourceCompartmentCrossReference_1_0; } + + //ID + public RuleCall getSourceCompartmentIDTerminalRuleCall_1_0_1() { return cSourceCompartmentIDTerminalRuleCall_1_0_1; } + + //"->" + public Keyword getHyphenMinusGreaterThanSignKeyword_2() { return cHyphenMinusGreaterThanSignKeyword_2; } + + //target=[metamodel::Compartment] + public Assignment getTargetAssignment_3() { return cTargetAssignment_3; } + + //[metamodel::Compartment] + public CrossReference getTargetCompartmentCrossReference_3_0() { return cTargetCompartmentCrossReference_3_0; } + + //ID + public RuleCall getTargetCompartmentIDTerminalRuleCall_3_0_1() { return cTargetCompartmentIDTerminalRuleCall_3_0_1; } + } + + public class CompartmentElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Compartment"); + private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0); + + //Compartment returns metamodel::Compartment: + // name=ID; + public ParserRule getRule() { return rule; } + + //name=ID + public Assignment getNameAssignment() { return cNameAssignment; } + + //ID + public RuleCall getNameIDTerminalRuleCall_0() { return cNameIDTerminalRuleCall_0; } + } + + public class BlockElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Block"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cBlockAction_0 = (Action)cGroup.eContents().get(0); + private final Assignment cStatementsAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cStatementsDefStatementParserRuleCall_1_0 = (RuleCall)cStatementsAssignment_1.eContents().get(0); + private final Assignment cRetAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cRetReturnStatementParserRuleCall_2_0 = (RuleCall)cRetAssignment_2.eContents().get(0); + + ////terminal STEM_TRANS_NAME : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_')* '->' ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_')* + //Block: + // {Block} statements+=DefStatement* ret=ReturnStatement; + public ParserRule getRule() { return rule; } + + //{Block} statements+=DefStatement* ret=ReturnStatement + public Group getGroup() { return cGroup; } + + //{Block} + public Action getBlockAction_0() { return cBlockAction_0; } + + //statements+=DefStatement* + public Assignment getStatementsAssignment_1() { return cStatementsAssignment_1; } + + //DefStatement + public RuleCall getStatementsDefStatementParserRuleCall_1_0() { return cStatementsDefStatementParserRuleCall_1_0; } + + //ret=ReturnStatement + public Assignment getRetAssignment_2() { return cRetAssignment_2; } + + //ReturnStatement + public RuleCall getRetReturnStatementParserRuleCall_2_0() { return cRetReturnStatementParserRuleCall_2_0; } + } + + public class DefStatementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DefStatement"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cVarnameAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cVarnameIDTerminalRuleCall_0_0 = (RuleCall)cVarnameAssignment_0.eContents().get(0); + private final Keyword cEqualsSignKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Assignment cExprAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cExprEvaluationParserRuleCall_2_0 = (RuleCall)cExprAssignment_2.eContents().get(0); + + //DefStatement: + // varname=ID "=" expr=Evaluation; + public ParserRule getRule() { return rule; } + + //varname=ID "=" expr=Evaluation + public Group getGroup() { return cGroup; } + + //varname=ID + public Assignment getVarnameAssignment_0() { return cVarnameAssignment_0; } + + //ID + public RuleCall getVarnameIDTerminalRuleCall_0_0() { return cVarnameIDTerminalRuleCall_0_0; } + + //"=" + public Keyword getEqualsSignKeyword_1() { return cEqualsSignKeyword_1; } + + //expr=Evaluation + public Assignment getExprAssignment_2() { return cExprAssignment_2; } + + //Evaluation + public RuleCall getExprEvaluationParserRuleCall_2_0() { return cExprEvaluationParserRuleCall_2_0; } + } + + public class ReturnStatementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ReturnStatement"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cDeltaKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final RuleCall cEvaluationParserRuleCall_1 = (RuleCall)cGroup.eContents().get(1); + + //ReturnStatement: + // "delta" Evaluation; + public ParserRule getRule() { return rule; } + + //"delta" Evaluation + public Group getGroup() { return cGroup; } + + //"delta" + public Keyword getDeltaKeyword_0() { return cDeltaKeyword_0; } + + //Evaluation + public RuleCall getEvaluationParserRuleCall_1() { return cEvaluationParserRuleCall_1; } + } + + public class EvaluationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Evaluation"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cExpressionAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cExpressionExpressionParserRuleCall_0_0 = (RuleCall)cExpressionAssignment_0.eContents().get(0); + private final Keyword cSemicolonKeyword_1 = (Keyword)cGroup.eContents().get(1); + + //Evaluation: + // expression=Expression ";"; + public ParserRule getRule() { return rule; } + + //expression=Expression ";" + public Group getGroup() { return cGroup; } + + //expression=Expression + public Assignment getExpressionAssignment_0() { return cExpressionAssignment_0; } + + //Expression + public RuleCall getExpressionExpressionParserRuleCall_0_0() { return cExpressionExpressionParserRuleCall_0_0; } + + //";" + public Keyword getSemicolonKeyword_1() { return cSemicolonKeyword_1; } + } + + public class ExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Expression"); + private final RuleCall cAdditionParserRuleCall = (RuleCall)rule.eContents().get(1); + + //Expression: + // Addition; + public ParserRule getRule() { return rule; } + + //Addition + public RuleCall getAdditionParserRuleCall() { return cAdditionParserRuleCall; } + } + + public class AdditionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Addition"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cMultiplicationParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Alternatives cAlternatives_1_0 = (Alternatives)cGroup_1.eContents().get(0); + private final Group cGroup_1_0_0 = (Group)cAlternatives_1_0.eContents().get(0); + private final Action cPlusLeftAction_1_0_0_0 = (Action)cGroup_1_0_0.eContents().get(0); + private final Keyword cPlusSignKeyword_1_0_0_1 = (Keyword)cGroup_1_0_0.eContents().get(1); + private final Group cGroup_1_0_1 = (Group)cAlternatives_1_0.eContents().get(1); + private final Action cMinusLeftAction_1_0_1_0 = (Action)cGroup_1_0_1.eContents().get(0); + private final Keyword cHyphenMinusKeyword_1_0_1_1 = (Keyword)cGroup_1_0_1.eContents().get(1); + private final Assignment cRightAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cRightMultiplicationParserRuleCall_1_1_0 = (RuleCall)cRightAssignment_1_1.eContents().get(0); + + //Addition returns Expression: + // Multiplication (({Plus.left=current} "+" | {Minus.left=current} "-") right=Multiplication)*; + public ParserRule getRule() { return rule; } + + //Multiplication (({Plus.left=current} "+" | {Minus.left=current} "-") right=Multiplication)* + public Group getGroup() { return cGroup; } + + //Multiplication + public RuleCall getMultiplicationParserRuleCall_0() { return cMultiplicationParserRuleCall_0; } + + //(({Plus.left=current} "+" | {Minus.left=current} "-") right=Multiplication)* + public Group getGroup_1() { return cGroup_1; } + + //{Plus.left=current} "+" | {Minus.left=current} "-" + public Alternatives getAlternatives_1_0() { return cAlternatives_1_0; } + + //{Plus.left=current} "+" + public Group getGroup_1_0_0() { return cGroup_1_0_0; } + + //{Plus.left=current} + public Action getPlusLeftAction_1_0_0_0() { return cPlusLeftAction_1_0_0_0; } + + //"+" + public Keyword getPlusSignKeyword_1_0_0_1() { return cPlusSignKeyword_1_0_0_1; } + + //{Minus.left=current} "-" + public Group getGroup_1_0_1() { return cGroup_1_0_1; } + + //{Minus.left=current} + public Action getMinusLeftAction_1_0_1_0() { return cMinusLeftAction_1_0_1_0; } + + //"-" + public Keyword getHyphenMinusKeyword_1_0_1_1() { return cHyphenMinusKeyword_1_0_1_1; } + + //right=Multiplication + public Assignment getRightAssignment_1_1() { return cRightAssignment_1_1; } + + //Multiplication + public RuleCall getRightMultiplicationParserRuleCall_1_1_0() { return cRightMultiplicationParserRuleCall_1_1_0; } + } + + public class MultiplicationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Multiplication"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cNegatedExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Alternatives cAlternatives_1_0 = (Alternatives)cGroup_1.eContents().get(0); + private final Group cGroup_1_0_0 = (Group)cAlternatives_1_0.eContents().get(0); + private final Action cMultiLeftAction_1_0_0_0 = (Action)cGroup_1_0_0.eContents().get(0); + private final Keyword cAsteriskKeyword_1_0_0_1 = (Keyword)cGroup_1_0_0.eContents().get(1); + private final Group cGroup_1_0_1 = (Group)cAlternatives_1_0.eContents().get(1); + private final Action cDivLeftAction_1_0_1_0 = (Action)cGroup_1_0_1.eContents().get(0); + private final Keyword cSolidusKeyword_1_0_1_1 = (Keyword)cGroup_1_0_1.eContents().get(1); + private final Assignment cRightAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cRightNegatedExpressionParserRuleCall_1_1_0 = (RuleCall)cRightAssignment_1_1.eContents().get(0); + + //Multiplication returns Expression: + // NegatedExpression (({Multi.left=current} "*" | {Div.left=current} "/") right=NegatedExpression)*; + public ParserRule getRule() { return rule; } + + //NegatedExpression (({Multi.left=current} "*" | {Div.left=current} "/") right=NegatedExpression)* + public Group getGroup() { return cGroup; } + + //NegatedExpression + public RuleCall getNegatedExpressionParserRuleCall_0() { return cNegatedExpressionParserRuleCall_0; } + + //(({Multi.left=current} "*" | {Div.left=current} "/") right=NegatedExpression)* + public Group getGroup_1() { return cGroup_1; } + + //{Multi.left=current} "*" | {Div.left=current} "/" + public Alternatives getAlternatives_1_0() { return cAlternatives_1_0; } + + //{Multi.left=current} "*" + public Group getGroup_1_0_0() { return cGroup_1_0_0; } + + //{Multi.left=current} + public Action getMultiLeftAction_1_0_0_0() { return cMultiLeftAction_1_0_0_0; } + + //"*" + public Keyword getAsteriskKeyword_1_0_0_1() { return cAsteriskKeyword_1_0_0_1; } + + //{Div.left=current} "/" + public Group getGroup_1_0_1() { return cGroup_1_0_1; } + + //{Div.left=current} + public Action getDivLeftAction_1_0_1_0() { return cDivLeftAction_1_0_1_0; } + + //"/" + public Keyword getSolidusKeyword_1_0_1_1() { return cSolidusKeyword_1_0_1_1; } + + //right=NegatedExpression + public Assignment getRightAssignment_1_1() { return cRightAssignment_1_1; } + + //NegatedExpression + public RuleCall getRightNegatedExpressionParserRuleCall_1_1_0() { return cRightNegatedExpressionParserRuleCall_1_1_0; } + } + + public class NegatedExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NegatedExpression"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cPrimaryExpressionAction_0 = (Action)cGroup.eContents().get(0); + private final Assignment cNegateAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final Keyword cNegateHyphenMinusKeyword_1_0 = (Keyword)cNegateAssignment_1.eContents().get(0); + private final Assignment cExpAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cExpPrimaryExpressionParserRuleCall_2_0 = (RuleCall)cExpAssignment_2.eContents().get(0); + + //NegatedExpression returns Expression: + // {PrimaryExpression} negate?="-"? exp=PrimaryExpression; + public ParserRule getRule() { return rule; } + + //{PrimaryExpression} negate?="-"? exp=PrimaryExpression + public Group getGroup() { return cGroup; } + + //{PrimaryExpression} + public Action getPrimaryExpressionAction_0() { return cPrimaryExpressionAction_0; } + + //negate?="-"? + public Assignment getNegateAssignment_1() { return cNegateAssignment_1; } + + //"-" + public Keyword getNegateHyphenMinusKeyword_1_0() { return cNegateHyphenMinusKeyword_1_0; } + + //exp=PrimaryExpression + public Assignment getExpAssignment_2() { return cExpAssignment_2; } + + //PrimaryExpression + public RuleCall getExpPrimaryExpressionParserRuleCall_2_0() { return cExpPrimaryExpressionParserRuleCall_2_0; } + } + + public class PrimaryExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PrimaryExpression"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Action cNumberLiteralAction_0_0 = (Action)cGroup_0.eContents().get(0); + private final Assignment cValueAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1); + private final RuleCall cValueNUMBERTerminalRuleCall_0_1_0 = (RuleCall)cValueAssignment_0_1.eContents().get(0); + private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); + private final Keyword cLeftParenthesisKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final Assignment cExpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cExpExpressionParserRuleCall_1_1_0 = (RuleCall)cExpAssignment_1_1.eContents().get(0); + private final Keyword cRightParenthesisKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2); + private final Group cGroup_2 = (Group)cAlternatives.eContents().get(2); + private final Action cFunctionCallAction_2_0 = (Action)cGroup_2.eContents().get(0); + private final Assignment cRefAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); + private final CrossReference cRefFunctionReferenceCrossReference_2_1_0 = (CrossReference)cRefAssignment_2_1.eContents().get(0); + private final RuleCall cRefFunctionReferenceIDTerminalRuleCall_2_1_0_1 = (RuleCall)cRefFunctionReferenceCrossReference_2_1_0.eContents().get(1); + private final Group cGroup_2_2 = (Group)cGroup_2.eContents().get(2); + private final Keyword cLeftParenthesisKeyword_2_2_0 = (Keyword)cGroup_2_2.eContents().get(0); + private final Assignment cArgsAssignment_2_2_1 = (Assignment)cGroup_2_2.eContents().get(1); + private final RuleCall cArgsFunctionArgumentParserRuleCall_2_2_1_0 = (RuleCall)cArgsAssignment_2_2_1.eContents().get(0); + private final Group cGroup_2_2_2 = (Group)cGroup_2_2.eContents().get(2); + private final Keyword cCommaKeyword_2_2_2_0 = (Keyword)cGroup_2_2_2.eContents().get(0); + private final Assignment cArgsAssignment_2_2_2_1 = (Assignment)cGroup_2_2_2.eContents().get(1); + private final RuleCall cArgsFunctionArgumentParserRuleCall_2_2_2_1_0 = (RuleCall)cArgsAssignment_2_2_2_1.eContents().get(0); + private final Keyword cRightParenthesisKeyword_2_2_3 = (Keyword)cGroup_2_2.eContents().get(3); + private final Group cGroup_3 = (Group)cAlternatives.eContents().get(3); + private final Action cVariableReferenceAction_3_0 = (Action)cGroup_3.eContents().get(0); + private final Assignment cRefAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1); + private final CrossReference cRefScopedVariableReferenceCrossReference_3_1_0 = (CrossReference)cRefAssignment_3_1.eContents().get(0); + private final RuleCall cRefScopedVariableReferenceIDTerminalRuleCall_3_1_0_1 = (RuleCall)cRefScopedVariableReferenceCrossReference_3_1_0.eContents().get(1); + + //PrimaryExpression returns Expression: + // {NumberLiteral} value=NUMBER | "(" exp=Expression ")" | {FunctionCall} ref=[FunctionReference] ("(" + // args+=FunctionArgument? ("," args+=FunctionArgument)* ")") | {VariableReference} ref=[ScopedVariableReference]; + public ParserRule getRule() { return rule; } + + //{NumberLiteral} value=NUMBER | "(" exp=Expression ")" | {FunctionCall} ref=[FunctionReference] ("(" + //args+=FunctionArgument? ("," args+=FunctionArgument)* ")") | {VariableReference} ref=[ScopedVariableReference] + public Alternatives getAlternatives() { return cAlternatives; } + + //{NumberLiteral} value=NUMBER + public Group getGroup_0() { return cGroup_0; } + + //{NumberLiteral} + public Action getNumberLiteralAction_0_0() { return cNumberLiteralAction_0_0; } + + //value=NUMBER + public Assignment getValueAssignment_0_1() { return cValueAssignment_0_1; } + + //NUMBER + public RuleCall getValueNUMBERTerminalRuleCall_0_1_0() { return cValueNUMBERTerminalRuleCall_0_1_0; } + + //"(" exp=Expression ")" + public Group getGroup_1() { return cGroup_1; } + + //"(" + public Keyword getLeftParenthesisKeyword_1_0() { return cLeftParenthesisKeyword_1_0; } + + //exp=Expression + public Assignment getExpAssignment_1_1() { return cExpAssignment_1_1; } + + //Expression + public RuleCall getExpExpressionParserRuleCall_1_1_0() { return cExpExpressionParserRuleCall_1_1_0; } + + //")" + public Keyword getRightParenthesisKeyword_1_2() { return cRightParenthesisKeyword_1_2; } + + //{FunctionCall} ref=[FunctionReference] ("(" args+=FunctionArgument? ("," args+=FunctionArgument)* ")") + public Group getGroup_2() { return cGroup_2; } + + //{FunctionCall} + public Action getFunctionCallAction_2_0() { return cFunctionCallAction_2_0; } + + //ref=[FunctionReference] + public Assignment getRefAssignment_2_1() { return cRefAssignment_2_1; } + + //[FunctionReference] + public CrossReference getRefFunctionReferenceCrossReference_2_1_0() { return cRefFunctionReferenceCrossReference_2_1_0; } + + //ID + public RuleCall getRefFunctionReferenceIDTerminalRuleCall_2_1_0_1() { return cRefFunctionReferenceIDTerminalRuleCall_2_1_0_1; } + + //"(" args+=FunctionArgument? ("," args+=FunctionArgument)* ")" + public Group getGroup_2_2() { return cGroup_2_2; } + + //"(" + public Keyword getLeftParenthesisKeyword_2_2_0() { return cLeftParenthesisKeyword_2_2_0; } + + //args+=FunctionArgument? + public Assignment getArgsAssignment_2_2_1() { return cArgsAssignment_2_2_1; } + + //FunctionArgument + public RuleCall getArgsFunctionArgumentParserRuleCall_2_2_1_0() { return cArgsFunctionArgumentParserRuleCall_2_2_1_0; } + + //("," args+=FunctionArgument)* + public Group getGroup_2_2_2() { return cGroup_2_2_2; } + + //"," + public Keyword getCommaKeyword_2_2_2_0() { return cCommaKeyword_2_2_2_0; } + + //args+=FunctionArgument + public Assignment getArgsAssignment_2_2_2_1() { return cArgsAssignment_2_2_2_1; } + + //FunctionArgument + public RuleCall getArgsFunctionArgumentParserRuleCall_2_2_2_1_0() { return cArgsFunctionArgumentParserRuleCall_2_2_2_1_0; } + + //")" + public Keyword getRightParenthesisKeyword_2_2_3() { return cRightParenthesisKeyword_2_2_3; } + + //{VariableReference} ref=[ScopedVariableReference] + public Group getGroup_3() { return cGroup_3; } + + //{VariableReference} + public Action getVariableReferenceAction_3_0() { return cVariableReferenceAction_3_0; } + + //ref=[ScopedVariableReference] + public Assignment getRefAssignment_3_1() { return cRefAssignment_3_1; } + + //[ScopedVariableReference] + public CrossReference getRefScopedVariableReferenceCrossReference_3_1_0() { return cRefScopedVariableReferenceCrossReference_3_1_0; } + + //ID + public RuleCall getRefScopedVariableReferenceIDTerminalRuleCall_3_1_0_1() { return cRefScopedVariableReferenceIDTerminalRuleCall_3_1_0_1; } + } + + public class FunctionArgumentElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "FunctionArgument"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Action cBooleanLiteralAction_0_0 = (Action)cGroup_0.eContents().get(0); + private final Assignment cValueAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1); + private final RuleCall cValueBOOLEANTerminalRuleCall_0_1_0 = (RuleCall)cValueAssignment_0_1.eContents().get(0); + private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); + private final Action cStringLiteralAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Assignment cValueAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cValueSTRINGTerminalRuleCall_1_1_0 = (RuleCall)cValueAssignment_1_1.eContents().get(0); + private final RuleCall cExpressionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + + //FunctionArgument returns Expression: + // {BooleanLiteral} value=BOOLEAN | {StringLiteral} value=STRING | Expression; + public ParserRule getRule() { return rule; } + + //{BooleanLiteral} value=BOOLEAN | {StringLiteral} value=STRING | Expression + public Alternatives getAlternatives() { return cAlternatives; } + + //{BooleanLiteral} value=BOOLEAN + public Group getGroup_0() { return cGroup_0; } + + //{BooleanLiteral} + public Action getBooleanLiteralAction_0_0() { return cBooleanLiteralAction_0_0; } + + //value=BOOLEAN + public Assignment getValueAssignment_0_1() { return cValueAssignment_0_1; } + + //BOOLEAN + public RuleCall getValueBOOLEANTerminalRuleCall_0_1_0() { return cValueBOOLEANTerminalRuleCall_0_1_0; } + + //{StringLiteral} value=STRING + public Group getGroup_1() { return cGroup_1; } + + //{StringLiteral} + public Action getStringLiteralAction_1_0() { return cStringLiteralAction_1_0; } + + //value=STRING + public Assignment getValueAssignment_1_1() { return cValueAssignment_1_1; } + + //STRING + public RuleCall getValueSTRINGTerminalRuleCall_1_1_0() { return cValueSTRINGTerminalRuleCall_1_1_0; } + + //Expression + public RuleCall getExpressionParserRuleCall_2() { return cExpressionParserRuleCall_2; } + } + + public class FunctionReferenceElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "FunctionReference"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Assignment cNameAssignment_0 = (Assignment)cAlternatives.eContents().get(0); + private final RuleCall cNameIDTerminalRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0); + private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); + private final Action cExternalFunctionReferenceAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Assignment cFuncAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final CrossReference cFuncExternalFunctionDefinitionCrossReference_1_1_0 = (CrossReference)cFuncAssignment_1_1.eContents().get(0); + private final RuleCall cFuncExternalFunctionDefinitionIDTerminalRuleCall_1_1_0_1 = (RuleCall)cFuncExternalFunctionDefinitionCrossReference_1_1_0.eContents().get(1); + + //FunctionReference: + // name=ID | {ExternalFunctionReference} func=[extFunc::ExternalFunctionDefinition]; + public ParserRule getRule() { return rule; } + + //name=ID | {ExternalFunctionReference} func=[extFunc::ExternalFunctionDefinition] + public Alternatives getAlternatives() { return cAlternatives; } + + //name=ID + public Assignment getNameAssignment_0() { return cNameAssignment_0; } + + //ID + public RuleCall getNameIDTerminalRuleCall_0_0() { return cNameIDTerminalRuleCall_0_0; } + + //{ExternalFunctionReference} func=[extFunc::ExternalFunctionDefinition] + public Group getGroup_1() { return cGroup_1; } + + //{ExternalFunctionReference} + public Action getExternalFunctionReferenceAction_1_0() { return cExternalFunctionReferenceAction_1_0; } + + //func=[extFunc::ExternalFunctionDefinition] + public Assignment getFuncAssignment_1_1() { return cFuncAssignment_1_1; } + + //[extFunc::ExternalFunctionDefinition] + public CrossReference getFuncExternalFunctionDefinitionCrossReference_1_1_0() { return cFuncExternalFunctionDefinitionCrossReference_1_1_0; } + + //ID + public RuleCall getFuncExternalFunctionDefinitionIDTerminalRuleCall_1_1_0_1() { return cFuncExternalFunctionDefinitionIDTerminalRuleCall_1_1_0_1; } + } + + public class ScopedVariableReferenceElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ScopedVariableReference"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Assignment cNameAssignment_0 = (Assignment)cAlternatives.eContents().get(0); + private final RuleCall cNameIDTerminalRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0); + private final Action cLocalVariableReferenceAction_1 = (Action)cAlternatives.eContents().get(1); + private final Action cGlobalVariableReferenceAction_2 = (Action)cAlternatives.eContents().get(2); + private final Action cCompartmentReferenceAction_3 = (Action)cAlternatives.eContents().get(3); + private final Action cModelParamReferenceAction_4 = (Action)cAlternatives.eContents().get(4); + + //ScopedVariableReference: + // name=ID | {LocalVariableReference} | {GlobalVariableReference} | {CompartmentReference} | {ModelParamReference}; + public ParserRule getRule() { return rule; } + + //name=ID | {LocalVariableReference} | {GlobalVariableReference} | {CompartmentReference} | {ModelParamReference} + public Alternatives getAlternatives() { return cAlternatives; } + + //name=ID + public Assignment getNameAssignment_0() { return cNameAssignment_0; } + + //ID + public RuleCall getNameIDTerminalRuleCall_0_0() { return cNameIDTerminalRuleCall_0_0; } + + //{LocalVariableReference} + public Action getLocalVariableReferenceAction_1() { return cLocalVariableReferenceAction_1; } + + //{GlobalVariableReference} + public Action getGlobalVariableReferenceAction_2() { return cGlobalVariableReferenceAction_2; } + + //{CompartmentReference} + public Action getCompartmentReferenceAction_3() { return cCompartmentReferenceAction_3; } + + //{ModelParamReference} + public Action getModelParamReferenceAction_4() { return cModelParamReferenceAction_4; } + } + + public class LocalVariableReferenceElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LocalVariableReference"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cDefStatementReferenceAction_0 = (Action)cGroup.eContents().get(0); + private final Assignment cObjAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final CrossReference cObjDefStatementCrossReference_1_0 = (CrossReference)cObjAssignment_1.eContents().get(0); + private final RuleCall cObjDefStatementIDTerminalRuleCall_1_0_1 = (RuleCall)cObjDefStatementCrossReference_1_0.eContents().get(1); + + //LocalVariableReference: + // {DefStatementReference} obj=[DefStatement]; + public ParserRule getRule() { return rule; } + + //{DefStatementReference} obj=[DefStatement] + public Group getGroup() { return cGroup; } + + //{DefStatementReference} + public Action getDefStatementReferenceAction_0() { return cDefStatementReferenceAction_0; } + + //obj=[DefStatement] + public Assignment getObjAssignment_1() { return cObjAssignment_1; } + + //[DefStatement] + public CrossReference getObjDefStatementCrossReference_1_0() { return cObjDefStatementCrossReference_1_0; } + + //ID + public RuleCall getObjDefStatementIDTerminalRuleCall_1_0_1() { return cObjDefStatementIDTerminalRuleCall_1_0_1; } + } + + public class CompartmentReferenceElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "CompartmentReference"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Assignment cObjAssignment_0 = (Assignment)cAlternatives.eContents().get(0); + private final CrossReference cObjCompartmentCrossReference_0_0 = (CrossReference)cObjAssignment_0.eContents().get(0); + private final RuleCall cObjCompartmentIDTerminalRuleCall_0_0_1 = (RuleCall)cObjCompartmentCrossReference_0_0.eContents().get(1); + private final Action cAbsoluteCompartmentValueReferenceAction_1 = (Action)cAlternatives.eContents().get(1); + private final Action cRelativeCompartmentValueReferenceAction_2 = (Action)cAlternatives.eContents().get(2); + + //CompartmentReference: + // obj=[metamodel::Compartment] | {AbsoluteCompartmentValueReference} | {RelativeCompartmentValueReference}; + public ParserRule getRule() { return rule; } + + //obj=[metamodel::Compartment] | {AbsoluteCompartmentValueReference} | {RelativeCompartmentValueReference} + public Alternatives getAlternatives() { return cAlternatives; } + + //obj=[metamodel::Compartment] + public Assignment getObjAssignment_0() { return cObjAssignment_0; } + + //[metamodel::Compartment] + public CrossReference getObjCompartmentCrossReference_0_0() { return cObjCompartmentCrossReference_0_0; } + + //ID + public RuleCall getObjCompartmentIDTerminalRuleCall_0_0_1() { return cObjCompartmentIDTerminalRuleCall_0_0_1; } + + //{AbsoluteCompartmentValueReference} + public Action getAbsoluteCompartmentValueReferenceAction_1() { return cAbsoluteCompartmentValueReferenceAction_1; } + + //{RelativeCompartmentValueReference} + public Action getRelativeCompartmentValueReferenceAction_2() { return cRelativeCompartmentValueReferenceAction_2; } + } + + public class ModelParamReferenceElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ModelParamReference"); + private final Assignment cObjAssignment = (Assignment)rule.eContents().get(1); + private final CrossReference cObjModelParamCrossReference_0 = (CrossReference)cObjAssignment.eContents().get(0); + private final RuleCall cObjModelParamIDTerminalRuleCall_0_1 = (RuleCall)cObjModelParamCrossReference_0.eContents().get(1); + + //ModelParamReference: + // obj=[metamodel::ModelParam]; + public ParserRule getRule() { return rule; } + + //obj=[metamodel::ModelParam] + public Assignment getObjAssignment() { return cObjAssignment; } + + //[metamodel::ModelParam] + public CrossReference getObjModelParamCrossReference_0() { return cObjModelParamCrossReference_0; } + + //ID + public RuleCall getObjModelParamIDTerminalRuleCall_0_1() { return cObjModelParamIDTerminalRuleCall_0_1; } + } + + public class GlobalVariableElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "GlobalVariable"); + private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cNameIDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0); + + //GlobalVariable: + // name=ID; + public ParserRule getRule() { return rule; } + + //name=ID + public Assignment getNameAssignment() { return cNameAssignment; } + + //ID + public RuleCall getNameIDTerminalRuleCall_0() { return cNameIDTerminalRuleCall_0; } + } + + + private CompartmentTransitionDefinitionsElements pCompartmentTransitionDefinitions; + private MetamodelResourceElements pMetamodelResource; + private TransitionBlockElements pTransitionBlock; + private TransitionElements pTransition; + private CompartmentElements pCompartment; + private BlockElements pBlock; + private DefStatementElements pDefStatement; + private ReturnStatementElements pReturnStatement; + private EvaluationElements pEvaluation; + private ExpressionElements pExpression; + private AdditionElements pAddition; + private MultiplicationElements pMultiplication; + private NegatedExpressionElements pNegatedExpression; + private PrimaryExpressionElements pPrimaryExpression; + private FunctionArgumentElements pFunctionArgument; + private FunctionReferenceElements pFunctionReference; + private ScopedVariableReferenceElements pScopedVariableReference; + private LocalVariableReferenceElements pLocalVariableReference; + private CompartmentReferenceElements pCompartmentReference; + private ModelParamReferenceElements pModelParamReference; + private GlobalVariableElements pGlobalVariable; + private TerminalRule tBOOLEAN; + private TerminalRule tNUMBER; + private TerminalRule tINT; + + private final Grammar grammar; + + private TerminalsGrammarAccess gaTerminals; + + @Inject + public CTDLGrammarAccess(GrammarProvider grammarProvider, + TerminalsGrammarAccess gaTerminals) { + this.grammar = internalFindGrammar(grammarProvider); + this.gaTerminals = gaTerminals; + } + + protected Grammar internalFindGrammar(GrammarProvider grammarProvider) { + Grammar grammar = grammarProvider.getGrammar(this); + while (grammar != null) { + if ("org.eclipse.stem.model.ctdl.CTDL".equals(grammar.getName())) { + return grammar; + } + List<Grammar> grammars = grammar.getUsedGrammars(); + if (!grammars.isEmpty()) { + grammar = grammars.iterator().next(); + } else { + return null; + } + } + return grammar; + } + + + public Grammar getGrammar() { + return grammar; + } + + + public TerminalsGrammarAccess getTerminalsGrammarAccess() { + return gaTerminals; + } + + + //CompartmentTransitionDefinitions: + // metamodel=[MetamodelResource]? expression=TransitionBlock; + public CompartmentTransitionDefinitionsElements getCompartmentTransitionDefinitionsAccess() { + return (pCompartmentTransitionDefinitions != null) ? pCompartmentTransitionDefinitions : (pCompartmentTransitionDefinitions = new CompartmentTransitionDefinitionsElements()); + } + + public ParserRule getCompartmentTransitionDefinitionsRule() { + return getCompartmentTransitionDefinitionsAccess().getRule(); + } + + //MetamodelResource: + // "metamodel " package=[metamodel::Package|STRING] "model " model=[metamodel::Model] "transition " + // transition=[metamodel::Transition]; + public MetamodelResourceElements getMetamodelResourceAccess() { + return (pMetamodelResource != null) ? pMetamodelResource : (pMetamodelResource = new MetamodelResourceElements()); + } + + public ParserRule getMetamodelResourceRule() { + return getMetamodelResourceAccess().getRule(); + } + + //TransitionBlock: //'transition ' transition=[metamodel::Transition|TRANS_STMT] + // block=Block; + public TransitionBlockElements getTransitionBlockAccess() { + return (pTransitionBlock != null) ? pTransitionBlock : (pTransitionBlock = new TransitionBlockElements()); + } + + public ParserRule getTransitionBlockRule() { + return getTransitionBlockAccess().getRule(); + } + + //Transition returns metamodel::Transition: + // {metamodel::Transition} source=[metamodel::Compartment] "->" target=[metamodel::Compartment]; + public TransitionElements getTransitionAccess() { + return (pTransition != null) ? pTransition : (pTransition = new TransitionElements()); + } + + public ParserRule getTransitionRule() { + return getTransitionAccess().getRule(); + } + + //Compartment returns metamodel::Compartment: + // name=ID; + public CompartmentElements getCompartmentAccess() { + return (pCompartment != null) ? pCompartment : (pCompartment = new CompartmentElements()); + } + + public ParserRule getCompartmentRule() { + return getCompartmentAccess().getRule(); + } + + ////terminal STEM_TRANS_NAME : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_')* '->' ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_')* + //Block: + // {Block} statements+=DefStatement* ret=ReturnStatement; + public BlockElements getBlockAccess() { + return (pBlock != null) ? pBlock : (pBlock = new BlockElements()); + } + + public ParserRule getBlockRule() { + return getBlockAccess().getRule(); + } + + //DefStatement: + // varname=ID "=" expr=Evaluation; + public DefStatementElements getDefStatementAccess() { + return (pDefStatement != null) ? pDefStatement : (pDefStatement = new DefStatementElements()); + } + + public ParserRule getDefStatementRule() { + return getDefStatementAccess().getRule(); + } + + //ReturnStatement: + // "delta" Evaluation; + public ReturnStatementElements getReturnStatementAccess() { + return (pReturnStatement != null) ? pReturnStatement : (pReturnStatement = new ReturnStatementElements()); + } + + public ParserRule getReturnStatementRule() { + return getReturnStatementAccess().getRule(); + } + + //Evaluation: + // expression=Expression ";"; + public EvaluationElements getEvaluationAccess() { + return (pEvaluation != null) ? pEvaluation : (pEvaluation = new EvaluationElements()); + } + + public ParserRule getEvaluationRule() { + return getEvaluationAccess().getRule(); + } + + //Expression: + // Addition; + public ExpressionElements getExpressionAccess() { + return (pExpression != null) ? pExpression : (pExpression = new ExpressionElements()); + } + + public ParserRule getExpressionRule() { + return getExpressionAccess().getRule(); + } + + //Addition returns Expression: + // Multiplication (({Plus.left=current} "+" | {Minus.left=current} "-") right=Multiplication)*; + public AdditionElements getAdditionAccess() { + return (pAddition != null) ? pAddition : (pAddition = new AdditionElements()); + } + + public ParserRule getAdditionRule() { + return getAdditionAccess().getRule(); + } + + //Multiplication returns Expression: + // NegatedExpression (({Multi.left=current} "*" | {Div.left=current} "/") right=NegatedExpression)*; + public MultiplicationElements getMultiplicationAccess() { + return (pMultiplication != null) ? pMultiplication : (pMultiplication = new MultiplicationElements()); + } + + public ParserRule getMultiplicationRule() { + return getMultiplicationAccess().getRule(); + } + + //NegatedExpression returns Expression: + // {PrimaryExpression} negate?="-"? exp=PrimaryExpression; + public NegatedExpressionElements getNegatedExpressionAccess() { + return (pNegatedExpression != null) ? pNegatedExpression : (pNegatedExpression = new NegatedExpressionElements()); + } + + public ParserRule getNegatedExpressionRule() { + return getNegatedExpressionAccess().getRule(); + } + + //PrimaryExpression returns Expression: + // {NumberLiteral} value=NUMBER | "(" exp=Expression ")" | {FunctionCall} ref=[FunctionReference] ("(" + // args+=FunctionArgument? ("," args+=FunctionArgument)* ")") | {VariableReference} ref=[ScopedVariableReference]; + public PrimaryExpressionElements getPrimaryExpressionAccess() { + return (pPrimaryExpression != null) ? pPrimaryExpression : (pPrimaryExpression = new PrimaryExpressionElements()); + } + + public ParserRule getPrimaryExpressionRule() { + return getPrimaryExpressionAccess().getRule(); + } + + //FunctionArgument returns Expression: + // {BooleanLiteral} value=BOOLEAN | {StringLiteral} value=STRING | Expression; + public FunctionArgumentElements getFunctionArgumentAccess() { + return (pFunctionArgument != null) ? pFunctionArgument : (pFunctionArgument = new FunctionArgumentElements()); + } + + public ParserRule getFunctionArgumentRule() { + return getFunctionArgumentAccess().getRule(); + } + + //FunctionReference: + // name=ID | {ExternalFunctionReference} func=[extFunc::ExternalFunctionDefinition]; + public FunctionReferenceElements getFunctionReferenceAccess() { + return (pFunctionReference != null) ? pFunctionReference : (pFunctionReference = new FunctionReferenceElements()); + } + + public ParserRule getFunctionReferenceRule() { + return getFunctionReferenceAccess().getRule(); + } + + //ScopedVariableReference: + // name=ID | {LocalVariableReference} | {GlobalVariableReference} | {CompartmentReference} | {ModelParamReference}; + public ScopedVariableReferenceElements getScopedVariableReferenceAccess() { + return (pScopedVariableReference != null) ? pScopedVariableReference : (pScopedVariableReference = new ScopedVariableReferenceElements()); + } + + public ParserRule getScopedVariableReferenceRule() { + return getScopedVariableReferenceAccess().getRule(); + } + + //LocalVariableReference: + // {DefStatementReference} obj=[DefStatement]; + public LocalVariableReferenceElements getLocalVariableReferenceAccess() { + return (pLocalVariableReference != null) ? pLocalVariableReference : (pLocalVariableReference = new LocalVariableReferenceElements()); + } + + public ParserRule getLocalVariableReferenceRule() { + return getLocalVariableReferenceAccess().getRule(); + } + + //CompartmentReference: + // obj=[metamodel::Compartment] | {AbsoluteCompartmentValueReference} | {RelativeCompartmentValueReference}; + public CompartmentReferenceElements getCompartmentReferenceAccess() { + return (pCompartmentReference != null) ? pCompartmentReference : (pCompartmentReference = new CompartmentReferenceElements()); + } + + public ParserRule getCompartmentReferenceRule() { + return getCompartmentReferenceAccess().getRule(); + } + + //ModelParamReference: + // obj=[metamodel::ModelParam]; + public ModelParamReferenceElements getModelParamReferenceAccess() { + return (pModelParamReference != null) ? pModelParamReference : (pModelParamReference = new ModelParamReferenceElements()); + } + + public ParserRule getModelParamReferenceRule() { + return getModelParamReferenceAccess().getRule(); + } + + //GlobalVariable: + // name=ID; + public GlobalVariableElements getGlobalVariableAccess() { + return (pGlobalVariable != null) ? pGlobalVariable : (pGlobalVariable = new GlobalVariableElements()); + } + + public ParserRule getGlobalVariableRule() { + return getGlobalVariableAccess().getRule(); + } + + //// Commented out since it breaks expressions with '-' sign. + ////terminal TRANS_STMT returns ecore::EString: + //// ID '->' ID + ////; + //terminal BOOLEAN returns ecore::EBoolean: + // "true" | "false"; + public TerminalRule getBOOLEANRule() { + return (tBOOLEAN != null) ? tBOOLEAN : (tBOOLEAN = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "BOOLEAN")); + } + + //terminal NUMBER returns ecore::EDouble: + // ("0".."9"+ ("." "0".."9"*)? | "." "0".."9"+) (("e" | "E") ("+" | "-")? "0".."9"+)?; + public TerminalRule getNUMBERRule() { + return (tNUMBER != null) ? tNUMBER : (tNUMBER = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "NUMBER")); + } + + //terminal INT returns ecore::EInt: + // "this one has been deactivated"; + public TerminalRule getINTRule() { + return (tINT != null) ? tINT : (tINT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "INT")); + } + + //terminal ID: + // "^"? ("a".."z" | "A".."Z" | "_") ("a".."z" | "A".."Z" | "_" | "0".."9")*; + public TerminalRule getIDRule() { + return gaTerminals.getIDRule(); + } + + //terminal STRING: + // "\"" ("\\" ("b" | "t" | "n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\""))* "\"" | "\'" ("\\" ("b" | "t" | + // "n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\'"))* "\'"; + public TerminalRule getSTRINGRule() { + return gaTerminals.getSTRINGRule(); + } + + //terminal ML_COMMENT: + // "/ *"->"* /"; + public TerminalRule getML_COMMENTRule() { + return gaTerminals.getML_COMMENTRule(); + } + + //terminal SL_COMMENT: + // "//" !("\n" | "\r")* ("\r"? "\n")?; + public TerminalRule getSL_COMMENTRule() { + return gaTerminals.getSL_COMMENTRule(); + } + + //terminal WS: + // (" " | "\t" | "\r" | "\n")+; + public TerminalRule getWSRule() { + return gaTerminals.getWSRule(); + } + + //terminal ANY_OTHER: + // .; + public TerminalRule getANY_OTHERRule() { + return gaTerminals.getANY_OTHERRule(); + } +} diff --git a/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/validation/AbstractCTDLJavaValidator.java b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/validation/AbstractCTDLJavaValidator.java new file mode 100644 index 000000000..7518dfffa --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src-gen/org/eclipse/stem/model/ctdl/validation/AbstractCTDLJavaValidator.java @@ -0,0 +1,19 @@ +package org.eclipse.stem.model.ctdl.validation; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.xtext.validation.AbstractDeclarativeValidator; + +public class AbstractCTDLJavaValidator extends AbstractDeclarativeValidator { + + @Override + protected List<EPackage> getEPackages() { + List<EPackage> result = new ArrayList<EPackage>(); + result.add(org.eclipse.stem.model.ctdl.ctdl.CtdlPackage.eINSTANCE); + result.add(EPackage.Registry.INSTANCE.getEPackage("http:///org/eclipse/stem/model/metamodel.ecore")); + return result; + } + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/CTDL.xtext b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/CTDL.xtext new file mode 100644 index 000000000..d267b78e8 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/CTDL.xtext @@ -0,0 +1,119 @@ +grammar org.eclipse.stem.model.ctdl.CTDL with org.eclipse.xtext.common.Terminals + +import "http://www.eclipse.org/emf/2002/Ecore" as ecore +import "http:///org/eclipse/stem/model/metamodel.ecore" as metamodel +import "http:///org/eclipse/stem/model/ctdl/functions.ecore" as extFunc + +generate ctdl "http:///org/eclipse/stem/model/ctdl.ecore" + +CompartmentTransitionDefinitions: + (metamodel = [MetamodelResource])? + (expression = TransitionBlock) +; + +MetamodelResource: + 'metamodel ' package=[metamodel::Package|STRING] + 'model ' model=[metamodel::Model] + 'transition ' transition=[metamodel::Transition] +; + +TransitionBlock: + //'transition ' transition=[metamodel::Transition|TRANS_STMT] + block = Block +; + +Transition returns metamodel::Transition: + {metamodel::Transition} source=[metamodel::Compartment] '->' target=[metamodel::Compartment] +; + +Compartment returns metamodel::Compartment: + name = ID +; + +//terminal STEM_TRANS_NAME : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_')* '->' ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_')* + +Block : + {Block} (statements+=DefStatement)* ret=ReturnStatement +; + +DefStatement: + varname=ID '=' expr=Evaluation +; + +ReturnStatement: + 'delta' Evaluation +; + +Evaluation: + expression=Expression ';'; + +Expression: + Addition; + +Addition returns Expression: + Multiplication (({Plus.left=current} '+' | {Minus.left=current} '-') right=Multiplication)*; + +Multiplication returns Expression: + NegatedExpression (({Multi.left=current} '*' | {Div.left=current} '/') right=NegatedExpression)*; + +NegatedExpression returns Expression: + {PrimaryExpression} negate?='-'? exp=PrimaryExpression +; + +PrimaryExpression returns Expression: + {NumberLiteral} value=NUMBER | + '(' exp=Expression ')' | + {FunctionCall} ref=[FunctionReference|ID] ('(' (args+=FunctionArgument)? (',' args+=FunctionArgument)* ')') | + {VariableReference} ref=[ScopedVariableReference|ID] +; + +FunctionArgument returns Expression: + {BooleanLiteral} value=BOOLEAN | + {StringLiteral} value=STRING | + Expression +; + +FunctionReference: + name=ID | {ExternalFunctionReference} func=[extFunc::ExternalFunctionDefinition] +; + +ScopedVariableReference: + name=ID | + {LocalVariableReference} | + {GlobalVariableReference} | + {CompartmentReference} | + {ModelParamReference} +; + +LocalVariableReference: + {DefStatementReference} obj=[DefStatement] +; + +CompartmentReference: + obj=[metamodel::Compartment] | {AbsoluteCompartmentValueReference} | {RelativeCompartmentValueReference} +; + +ModelParamReference: + obj=[metamodel::ModelParam] +; + + +GlobalVariable: + name=ID +; + +// Commented out since it breaks expressions with '-' sign. +//terminal TRANS_STMT returns ecore::EString: +// ID '->' ID +//; + +terminal BOOLEAN returns ecore::EBoolean: + ("true")|("false") +; + +terminal NUMBER returns ecore::EDouble: + (('0'..'9')+ ('.' ('0'..'9')*)? | '.' ('0'..'9')+) + (('e' | 'E') ('+' | '-')? ('0'..'9')+)?; + +terminal INT returns ecore::EInt: + 'this one has been deactivated';
\ No newline at end of file diff --git a/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/CTDLRuntimeModule.java b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/CTDLRuntimeModule.java new file mode 100644 index 000000000..9dc0b86b5 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/CTDLRuntimeModule.java @@ -0,0 +1,31 @@ +/* + * generated by Xtext + */ +package org.eclipse.stem.model.ctdl; + +import org.eclipse.stem.model.ctdl.scoping.MetamodelContextLinker; +import org.eclipse.xtext.linking.ILinkingService; +import org.eclipse.xtext.resource.XtextResource; + +/** + * Use this class to register components to be used at runtime / without the Equinox extension registry. + */ +public class CTDLRuntimeModule extends org.eclipse.stem.model.ctdl.AbstractCTDLRuntimeModule { + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + @Override + public Class<? extends org.eclipse.xtext.resource.IContainer.Manager> bindIContainer$Manager() { + return org.eclipse.xtext.resource.impl.SimpleResourceDescriptionsBasedContainerManager.class; + } + + + @Override + public Class<? extends ILinkingService> bindILinkingService() { + return MetamodelContextLinker.class; + } + + @Override + public Class<? extends XtextResource> bindXtextResource() { + return ContextSensitiveResourceWrapper.class; + } +} diff --git a/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/CTDLStandaloneSetup.java b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/CTDLStandaloneSetup.java new file mode 100644 index 000000000..7d6513ca8 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/CTDLStandaloneSetup.java @@ -0,0 +1,14 @@ + +package org.eclipse.stem.model.ctdl; + +/** + * Initialization support for running Xtext languages + * without equinox extension registry + */ +public class CTDLStandaloneSetup extends CTDLStandaloneSetupGenerated{ + + public static void doSetup() { + new CTDLStandaloneSetup().createInjectorAndDoEMFRegistration(); + } +} + diff --git a/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/CTDLUtils.java b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/CTDLUtils.java new file mode 100644 index 000000000..31aa14798 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/CTDLUtils.java @@ -0,0 +1,151 @@ +package org.eclipse.stem.model.ctdl; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.eclipse.stem.model.metamodel.Compartment; +import org.eclipse.stem.model.metamodel.CompartmentGroup; +import org.eclipse.stem.model.metamodel.Model; +import org.eclipse.stem.model.metamodel.ModelParam; + +public class CTDLUtils +{ + private static final Map<String, Class<?>> GLOBAL_USER_VARS = new HashMap<String, Class<?>>(); + private static final Map<String, Class<?>> GLOBAL_SYSTEM_VARS = new HashMap<String, Class<?>>(); + static + { + GLOBAL_USER_VARS.put("timeDelta", long.class); + GLOBAL_USER_VARS.put("t", double.class); + + GLOBAL_SYSTEM_VARS + .put("time", org.eclipse.stem.core.model.STEMTime.class); + GLOBAL_SYSTEM_VARS.put("labelValue", + org.eclipse.stem.core.graph.LabelValue.class); + GLOBAL_SYSTEM_VARS.put("node", + org.eclipse.stem.core.graph.Node.class); + + } + + public static Class<?> getTypeForGlobalVariable(String name) + { + Class<?> type = GLOBAL_USER_VARS.get(name); + if (type == null) { + type = GLOBAL_SYSTEM_VARS.get(name); + } + return type; + } + + public static Map<String, Class<?>> getGlobalUserVariables() + { + return Collections.unmodifiableMap(GLOBAL_USER_VARS); + } + + public static Map<String, Class<?>> getGlobalSystemVariables() + { + return Collections.unmodifiableMap(GLOBAL_SYSTEM_VARS); + } + + public static String getNormalizedTypeNameForClass(Class<?> clazz) + { + if (clazz == null) { + return null; + } + + if (isNumber(clazz)) { + return "number"; + } else if (clazz == String.class) { + return "string"; + } else { + return clazz.getName(); + } + } + + public static String getNormalizedTypeNameForClass(String className) + { + if (className == null) { + return null; + } + + if (isNumber(className)) { + return "number"; + } else if (String.class.getName().equals(className)) { + return "string"; + } else { + return className; + } + } + + public static List<String> classTypeNames = Arrays.asList(new String[] { + "double", "int", "float", "long", "short", + "java.lang.Double", "java.lang.Integer", "java.lang.Float", "java.lang.Long", + "java.lang.Short" + }); + + public static boolean isNumber(String className) + { + return classTypeNames.contains(className); + } + + public static boolean isNumber(Class<?> clazz) + { + return (clazz == double.class || clazz == Double.class || + clazz == int.class || clazz == Integer.class || + clazz == float.class || clazz == Float.class || + clazz == long.class || clazz == Long.class || + clazz == short.class || clazz == Short.class); + + } + + public static List<Compartment> getAllCompartmentsForGroup( + CompartmentGroup cg) { + List<Compartment> compartments = new ArrayList<Compartment>(); + if (cg != null) { + compartments.addAll(getAllCompartmentsForGroup(cg.getParentGroup())); + compartments.addAll(cg.getCompartments()); + + } + return compartments; + } + + public static List<Compartment> getAllCompartmentsForModel(Model model) { + return getAllCompartmentsForGroup(model.getCompartments()); + } + + public static List<ModelParam> getAllParametersForModel(Model model) { + List<ModelParam> params = new ArrayList<ModelParam>(); + if (model != null) { + params.addAll(getAllParametersForModel(model.getParentModel())); + params.addAll(model.getParameters()); + } + return params; + } + + public static String ucfirst(String str) + { + if (str.length() > 0 && Character.isLowerCase(str.codePointAt(0))) { + StringBuilder sb = new StringBuilder(); + sb.appendCodePoint(Character.toUpperCase(str.codePointAt(0))); + sb.append(str.substring(1)); + return sb.toString(); + } + + return str; + } + + public static String lcfirst(String str) + { + if (str.length() > 0 && Character.isUpperCase(str.codePointAt(0))) { + StringBuilder sb = new StringBuilder(); + sb.appendCodePoint(Character.toLowerCase(str.codePointAt(0))); + sb.append(str.substring(1)); + return sb.toString(); + } + + return str; + } + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/ContextSensitiveResourceWrapper.java b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/ContextSensitiveResourceWrapper.java new file mode 100644 index 000000000..90778707e --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/ContextSensitiveResourceWrapper.java @@ -0,0 +1,39 @@ +package org.eclipse.stem.model.ctdl; + +import org.eclipse.stem.model.metamodel.Model; +import org.eclipse.stem.model.metamodel.Transition; +import org.eclipse.xtext.linking.lazy.LazyLinkingResource; + +public class ContextSensitiveResourceWrapper extends LazyLinkingResource +{ + protected Model model; + protected Transition transition; + + public ContextSensitiveResourceWrapper() + { + } + + public Model getModel() + { + return model; + } + + public Transition getTransition() + { + return transition; + } + + + public void setTransition(Transition transition) + { + this.transition = transition; + + if (transition != null) { + model = transition.getContainerModel(); + } else { + model = null; + } + } + + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/GenerateCTDL.mwe2 b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/GenerateCTDL.mwe2 new file mode 100644 index 000000000..1174498bf --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/GenerateCTDL.mwe2 @@ -0,0 +1,157 @@ +module org.eclipse.stem.model.ctdl.GenerateCTDL + +import org.eclipse.emf.mwe.utils.* +import org.eclipse.xtext.generator.* +import org.eclipse.xtext.ui.generator.* + +var grammarURI = "classpath:/org/eclipse/stem/model/ctdl/CTDL.xtext" +var file.extensions = "sctd" +var projectName = "org.eclipse.stem.model.ctdl" +var runtimeProject = "../${projectName}" + +Workflow { + bean = StandaloneSetup { + uriMap = { from = "platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore" + to = "classpath:/model/Ecore.ecore" + } + uriMap = { from = "platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel" + to = "classpath:/model/Ecore.genmodel" + } + scanClassPath = true + platformUri = "${runtimeProject}/.." + // The following two lines can be removed, if Xbase is not used. + //registerGeneratedEPackage = "org.eclipse.xtext.xbase.XbasePackage" + //registerGenModelFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel" + + // Includes the STEM Metamodel Ecore definition + registerGeneratedEPackage = "org.eclipse.stem.model.metamodel.MetamodelPackage" + registerGenModelFile = "platform:/resource/org.eclipse.stem.model/model/metamodel.genmodel" + + // Include the External Functions Ecore definition + registerGeneratedEPackage = "org.eclipse.stem.model.ctdl.functions.ExternalFunctionsPackage" + registerGenModelFile = "platform:/resource/org.eclipse.stem.model.ctdl.functions/model/ExternalFunctions.genmodel" + + // Uncomment to restore Xbase support + //registerGeneratedEPackage = "org.eclipse.xtext.xbase.XbasePackage" + //registerGenModelFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel" + } + + component = DirectoryCleaner { + directory = "${runtimeProject}/src-gen" + } + + component = DirectoryCleaner { + directory = "${runtimeProject}.ui/src-gen" + } + + component = Generator { + pathRtProject = runtimeProject + pathUiProject = "${runtimeProject}.ui" + //pathTestProject = "${runtimeProject}.tests" + projectNameRt = projectName + projectNameUi = "${projectName}.ui" + language = { + uri = grammarURI + fileExtensions = file.extensions + + // Java API to access grammar elements (required by several other fragments) + fragment = grammarAccess.GrammarAccessFragment {} + + // generates Java API for the generated EPackages + fragment = ecore.EcoreGeneratorFragment { + // referencedGenModels = " + // platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel, + // platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.genmodel + // " + } + + // Serializer 2.0 + fragment = serializer.SerializerFragment { + generateStub = false + } + + // the serialization component (1.0) + // fragment = parseTreeConstructor.ParseTreeConstructorFragment {} + + // a custom ResourceFactory for use with EMF + fragment = resourceFactory.ResourceFactoryFragment { + fileExtensions = file.extensions + } + + // The antlr parser generator fragment. + fragment = parser.antlr.XtextAntlrGeneratorFragment { + // options = { + // backtrack = true + // } + } + + // java-based API for validation + fragment = validation.JavaValidatorFragment { + // composedCheck = "org.eclipse.xtext.validation.ImportUriValidator" + // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" + } + + // scoping and exporting API + // fragment = scoping.ImportURIScopingFragment {} + // fragment = exporting.SimpleNamesFragment {} + + // scoping and exporting API + fragment = scoping.ImportNamespacesScopingFragment {} + fragment = exporting.QualifiedNamesFragment {} + fragment = builder.BuilderIntegrationFragment {} + + // generator API + fragment = generator.GeneratorFragment { + generateMwe = false + generateJavaMain = false + } + + // formatter API + fragment = formatting.FormatterFragment {} + + // labeling API + fragment = labeling.LabelProviderFragment {} + + // outline API + fragment = outline.OutlineTreeProviderFragment {} + fragment = outline.QuickOutlineFragment {} + + // quickfix API + fragment = quickfix.QuickfixProviderFragment {} + + // content assist API + fragment = contentAssist.JavaBasedContentAssistFragment {} + + // generates a more lightweight Antlr parser and lexer tailored for content assist + fragment = parser.antlr.XtextAntlrUiGeneratorFragment {} + + // generates junit test support classes into Generator#pathTestProject + //fragment = junit.Junit4Fragment {} + + // project wizard (optional) + // fragment = projectWizard.SimpleProjectWizardFragment { + // generatorProjectName = "${projectName}" + // modelFileExtension = file.extensions + // } + + // rename refactoring + fragment = refactoring.RefactorElementNameFragment {} + + // provides the necessary bindings for java types integration + fragment = types.TypesGeneratorFragment {} + + // generates the required bindings only if the grammar inherits from Xbase + fragment = xbase.XbaseGeneratorFragment {} + + // provides a preference page for template proposals + fragment = templates.CodetemplatesGeneratorFragment {} + + // provides a compare view + fragment = compare.CompareFragment { + fileExtensions = file.extensions + } + + } + } +} + diff --git a/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/formatting/CTDLFormatter.java b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/formatting/CTDLFormatter.java new file mode 100644 index 000000000..323fc9931 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/formatting/CTDLFormatter.java @@ -0,0 +1,27 @@ +/* + * generated by Xtext + */ +package org.eclipse.stem.model.ctdl.formatting; + +import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter; +import org.eclipse.xtext.formatting.impl.FormattingConfig; + +/** + * This class contains custom formatting description. + * + * see : http://www.eclipse.org/Xtext/documentation/latest/xtext.html#formatting + * on how and when to use it + * + * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example + */ +public class CTDLFormatter extends AbstractDeclarativeFormatter { + + @Override + protected void configureFormatting(FormattingConfig c) { +// It's usually a good idea to activate the following three statements. +// They will add and preserve newlines around comments +// c.setLinewrap(0, 1, 2).before(getGrammarAccess().getSL_COMMENTRule()); +// c.setLinewrap(0, 1, 2).before(getGrammarAccess().getML_COMMENTRule()); +// c.setLinewrap(0, 1, 1).after(getGrammarAccess().getML_COMMENTRule()); + } +} diff --git a/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/generator/CTDLGenerator.xtend b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/generator/CTDLGenerator.xtend new file mode 100644 index 000000000..59c406d1e --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/generator/CTDLGenerator.xtend @@ -0,0 +1,175 @@ +/* + * generated by Xtext + */ +package org.eclipse.stem.model.ctdl.generator + +import org.eclipse.emf.codegen.ecore.genmodel.GenModel +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.stem.model.ctdl.ctdl.AbsoluteCompartmentValueReference +import org.eclipse.stem.model.ctdl.ctdl.BooleanLiteral +import org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions +import org.eclipse.stem.model.ctdl.ctdl.DefStatement +import org.eclipse.stem.model.ctdl.ctdl.Div +import org.eclipse.stem.model.ctdl.ctdl.Evaluation +import org.eclipse.stem.model.ctdl.ctdl.ExternalFunctionReference +import org.eclipse.stem.model.ctdl.ctdl.FunctionCall +import org.eclipse.stem.model.ctdl.ctdl.FunctionReference +import org.eclipse.stem.model.ctdl.ctdl.GlobalVariableReference +import org.eclipse.stem.model.ctdl.ctdl.LocalVariableReference +import org.eclipse.stem.model.ctdl.ctdl.Minus +import org.eclipse.stem.model.ctdl.ctdl.ModelParamReference +import org.eclipse.stem.model.ctdl.ctdl.Multi +import org.eclipse.stem.model.ctdl.ctdl.NumberLiteral +import org.eclipse.stem.model.ctdl.ctdl.Plus +import org.eclipse.stem.model.ctdl.ctdl.RelativeCompartmentValueReference +import org.eclipse.stem.model.ctdl.ctdl.StringLiteral +import org.eclipse.stem.model.ctdl.ctdl.TransitionBlock +import org.eclipse.stem.model.ctdl.ctdl.VariableReference +import org.eclipse.xtend.lib.Property +import org.eclipse.xtext.generator.IFileSystemAccess +import org.eclipse.xtext.generator.IGenerator +import org.eclipse.stem.model.ctdl.functions.SystemArgumentReference +import org.eclipse.stem.model.ctdl.functions.FunctionArgumentReference +import org.eclipse.stem.model.ctdl.ctdl.PrimaryExpression + +class CTDLGenerator implements IGenerator { + + @Property GenModel genModel; + + def String addImport(String fqn) + { + if (genModel != null) { + return genModel.getImportedName(fqn); + } else { + return fqn; + } + } + + override void doGenerate(Resource resource, IFileSystemAccess fsa) { + + var ctd = resource.allContents.toIterable.filter(typeof(CompartmentTransitionDefinitions)).head; + var mm = ctd.metamodel + var trans = mm.transition + + var fname = trans.source.name +"_"+ trans.target.name; + + fsa.generateFile(fname, resource.compile()); + } + + def dispatch compile(Resource r) '''«r.allContents.toIterable.filter(typeof(TransitionBlock)).head.compile()»''' +// var ret = ""; //"public class "+name+ "{"+"\n"; +// return ; + + + def dispatch compile(TransitionBlock t) { + var ctd = t.eContainer as CompartmentTransitionDefinitions +// var modelClass = ctd.metamodel.model.class_.instanceTypeName +// if (modelClass == null) { +// modelClass = ctd.metamodel.model.class_.name +// } + var labelValueClass = ctd.metamodel.model.compartments.valueClass.instanceTypeName + if (labelValueClass == null) { + labelValueClass = ctd.metamodel.model.compartments.valueClass.name + } else { + labelValueClass = addImport(labelValueClass); + } + var transition = ctd.metamodel.transition + + //var Model m = (CompartmentTransitionDefinitions::)t.eContainer; + return ''' + protected double «transition.source.name+"_"+transition.target.name» ( + double t, + long timeDelta, + «addImport("org.eclipse.stem.core.model.STEMTime")» time, + «labelValueClass» labelValue, + «addImport("org.eclipse.stem.core.graph.Node")» node) { + «FOR s:t.block.statements»«compile(s)»«ENDFOR» + return «compile(t.block.ret)»; + } + ''' as CharSequence + + } + + def dispatch compile(DefStatement d)'''double «d.varname»=«compile(d.expr)»;''' + + def dispatch compile(Evaluation e) '''«compile(e.expression)»''' + + def dispatch compile(PrimaryExpression pe) { + var neg = "" + if (pe.negate) neg = "-" + return ''' + («neg»«compile(pe.exp)») + ''' as CharSequence + } + + def dispatch compile(Plus p) '''(«compile(p.left)»+«compile(p.right)»)''' + + def dispatch compile(Minus m) '''(«compile(m.left)»-«compile(m.right)»)''' + + def dispatch compile(Multi m) '''«compile(m.left)»*«compile(m.right)»''' + + def dispatch compile(Div d) '''«compile(d.left)»/«compile(d.right)»''' + + def dispatch compile(GlobalVariableReference rf) '''«rf.name»''' + + def dispatch compile(LocalVariableReference rf) '''«rf.name»''' + + def dispatch compile(AbsoluteCompartmentValueReference rf) '''labelValue.get«rf.obj.name.toFirstUpper»()''' + + def dispatch compile(RelativeCompartmentValueReference rf) '''labelValue.get«rf.obj.name.toFirstUpper»()/labelValue.getPopulationCount()''' + + def dispatch compile(ModelParamReference rf) '''get«rf.obj.name.toFirstUpper»()''' + + def dispatch compile(VariableReference rf) '''«compile(rf.ref)»''' + + def dispatch compile(NumberLiteral nl) '''«nl.value»''' + + def dispatch compile(StringLiteral sl) '''"«sl.value»"''' + + def dispatch compile(BooleanLiteral bl) '''«bl.value»''' + + +// def dispatch compile(FunctionCall fc) ''' java.lang.Math.«fc.func»( +// �FOR e:fc.args� +// �IF e==fc.args.head� +// �compile(e)� +// �ELSE� +// ,�compile(e)� +// �ENDIF� +// �ENDFOR�)''' + + def dispatch compileArgument( SystemArgumentReference arg, FunctionCall fc) '''«arg.mapsFrom»''' + + def dispatch compileArgument(FunctionArgumentReference arg, FunctionCall fc) '''«compile(fc.args.get(arg.argIndex))»''' + + def dispatch compileFunction(ExternalFunctionReference fcr, FunctionCall fc) + '''«addImport(fcr.func.className)».«fcr.func.methodName»( + «FOR arg:fcr.func.javaMethodArguments» + «IF arg!=fcr.func.javaMethodArguments.head»,«ENDIF» + «compileArgument(arg,fc)» + «ENDFOR»)''' + + + + def dispatch compileFunction(FunctionReference fcr, FunctionCall fc) + '''«fcr.name»(«FOR e:fc.args» + «IF e==fc.args.head» + «compile(e)» + «ELSE» + ,«compile(e)» + «ENDIF» + «ENDFOR»)''' + + + + def dispatch compile(FunctionCall fc) { + '''«compileFunction(fc.ref, fc)»''' +// if (fc.ref instanceof ExternalFunctionReference) { +// '''«compile(fc.ref as ExternalFunctionReference, fc)»''' +// } else { +// '''«compile(fc.ref, fc)»''' +// } + } + + //def dispatch compile(ExternalFunctionDefinition extFunc) '''«addImport(extFunc.className)».«extFunc.methodName»''' +} diff --git a/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/scoping/CTDLScopeProvider.java b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/scoping/CTDLScopeProvider.java new file mode 100644 index 000000000..e05e23320 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/scoping/CTDLScopeProvider.java @@ -0,0 +1,241 @@ +/* + * generated by Xtext + */ +package org.eclipse.stem.model.ctdl.scoping; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.TreeIterator; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.stem.model.ctdl.CTDLUtils; +import org.eclipse.stem.model.ctdl.ContextSensitiveResourceWrapper; +import org.eclipse.stem.model.ctdl.ctdl.Block; +import org.eclipse.stem.model.ctdl.ctdl.CompartmentReference; +import org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions; +import org.eclipse.stem.model.ctdl.ctdl.CtdlFactory; +import org.eclipse.stem.model.ctdl.ctdl.DefStatement; +import org.eclipse.stem.model.ctdl.ctdl.DefStatementReference; +import org.eclipse.stem.model.ctdl.ctdl.GlobalVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.MetamodelResource; +import org.eclipse.stem.model.ctdl.ctdl.ModelParamReference; +import org.eclipse.stem.model.ctdl.ctdl.TransitionBlock; +import org.eclipse.stem.model.metamodel.Compartment; +import org.eclipse.stem.model.metamodel.Model; +import org.eclipse.stem.model.metamodel.ModelParam; +import org.eclipse.stem.model.metamodel.Transition; +import org.eclipse.xtext.naming.QualifiedName; +import org.eclipse.xtext.resource.EObjectDescription; +import org.eclipse.xtext.resource.IEObjectDescription; +import org.eclipse.xtext.scoping.IScope; +import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider; +import org.eclipse.xtext.scoping.impl.FilteringScope; +import org.eclipse.xtext.scoping.impl.MultimapBasedScope; + +import com.google.common.base.Predicate; + +/** + * This class contains custom scoping description. + * + * see : http://www.eclipse.org/Xtext/documentation/latest/xtext.html#scoping + * on how and when to use it + * + */ +public class CTDLScopeProvider extends AbstractDeclarativeScopeProvider { + + +// private Package metamodel; + private Model model; + //private Transition transition; + + public void setTransition(Transition transition) + { + //this.transition = transition; + + if (transition != null) { + model = transition.getContainerModel(); + } else { + model = null; + } + +// if (model != null) { +// metamodel = model.getContainerPackage(); +// } else { +// metamodel = null; +// } + } + + + @Override + public IScope getScope(final EObject context, final EReference reference) { + IScope scope = super.getScope(context, reference); + return scope; + + } + + + IScope scope_ScopedVariableReference(final Block context, final EReference reference) + { + ResourceSet rs = new ResourceSetImpl(); + Resource resource = rs.createResource(URI.createURI("empty.sctd")); + + List<IEObjectDescription> objs = new ArrayList<IEObjectDescription>(); + + for (DefStatement s : context.getStatements()) { + DefStatementReference ref = CtdlFactory.eINSTANCE.createDefStatementReference(); + ref.setName(s.getVarname()); + ref.setObj(s); + objs.add(new EObjectDescription(QualifiedName.create(s.getVarname()), ref, Collections.<String,String>emptyMap())); + resource.getContents().add(ref); + } + + for (Map.Entry<String, Class<?>> param : CTDLUtils.getGlobalUserVariables().entrySet()) { + GlobalVariableReference ref = CtdlFactory.eINSTANCE.createGlobalVariableReference(); + ref.setName(param.getKey()); + objs.add(new EObjectDescription(QualifiedName.create(param.getKey()), ref, Collections.<String,String>emptyMap())); + resource.getContents().add(ref); + } + + Model model = getModelForContext(context); + if (model == null) { + model = this.model; + } + + if (model != null) { + for (ModelParam param : CTDLUtils.getAllParametersForModel(model)) { + ModelParamReference ref = CtdlFactory.eINSTANCE.createModelParamReference(); + ref.setObj(param); + ref.setName(param.getName()); + objs.add(new EObjectDescription(QualifiedName.create(param.getName()), ref, Collections.<String,String>emptyMap())); + resource.getContents().add(ref); + } + + for (Compartment compartment : CTDLUtils.getAllCompartmentsForModel(model)) { + CompartmentReference rcvRef = CtdlFactory.eINSTANCE.createRelativeCompartmentValueReference(); + rcvRef.setObj(compartment); + rcvRef.setName(CTDLUtils.lcfirst(compartment.getName())); + objs.add(new EObjectDescription(QualifiedName.create(rcvRef.getName()), rcvRef, Collections.<String,String>emptyMap())); + resource.getContents().add(rcvRef); + + CompartmentReference avcRef = CtdlFactory.eINSTANCE.createAbsoluteCompartmentValueReference(); + avcRef.setObj(compartment); + avcRef.setName(CTDLUtils.ucfirst(compartment.getName())); + objs.add(new EObjectDescription(QualifiedName.create(avcRef.getName()), avcRef, Collections.<String,String>emptyMap())); + resource.getContents().add(avcRef); + } + } + + + + //System.out.println(context.getClass() +"/"+ reference); + + return new FilteringScope(MultimapBasedScope.createScope(getDelegate().getScope(context, reference), objs, false), + new Predicate<IEObjectDescription>() { + public boolean apply(IEObjectDescription input) { + return true; + }; + }); + } + + IScope scope_FunctionReference(final Block context, final EReference reference) { + + IScope parent = getDelegate().getScope(context, reference); + + return new FilteringScope(new ExtensionAwareScope(parent, context), + new Predicate<IEObjectDescription>() { + public boolean apply(IEObjectDescription input) { + return input!=null && input.getName()!=null && input.getName().getSegmentCount()==1; + }; + }); + } + + private Model getModelForContext(EObject context) { + EObject root = context; + while (root.eContainer() != null) { + root = root.eContainer(); + } + + CompartmentTransitionDefinitions def = null; + if (root instanceof CompartmentTransitionDefinitions) { + def = (CompartmentTransitionDefinitions)root; + } else { + TreeIterator<EObject> te = root.eAllContents(); + while (te.hasNext()) { + EObject obj = te.next(); + if (obj instanceof CompartmentTransitionDefinitions) { + return ((CompartmentTransitionDefinitions)obj).getMetamodel().getModel(); + } + } + } + + Model model = null; + if (def != null && def.getMetamodel() != null) { + model = def.getMetamodel().getModel(); + } + if (model == null && context.eResource() instanceof ContextSensitiveResourceWrapper) { + model = ((ContextSensitiveResourceWrapper)context.eResource()).getModel(); + } + return model; + } + + IScope scope_Transition(final TransitionBlock context, final EReference reference) + { + Model model = ((CompartmentTransitionDefinitions)context.eContainer()).getMetamodel().getModel(); + + List<IEObjectDescription> objs = new ArrayList<IEObjectDescription>(); + if (model != null) { + for (Transition t : model.getTransitions()) { + objs.add(new EObjectDescription(QualifiedName.create(t.getSource().getName() +"->"+ t.getTarget().getName()), t, Collections.<String,String>emptyMap())); + + } + } + return MultimapBasedScope.createScope(IScope.NULLSCOPE, objs, true); + } + + /*IScope scope_Compartment(final Transition context, final EReference reference) { + + // TODO Evil. There has to be a better way. + Model model = ((CompartmentTransitionDefinitions)((TransitionBlock)context.eContainer()).eContainer()).getMetamodel().getModel(); + + List<IEObjectDescription> objs = new ArrayList<IEObjectDescription>(); + if (model != null) { + for (Compartment c : STEMDSLUtils.getAllCompartmentsForModel(model)) { + objs.add(new EObjectDescription(QualifiedName.create(c.getName()), c, Collections.<String,String>emptyMap())); + } + } + + return MultimapBasedScope.createScope(IScope.NULLSCOPE, objs, true); + //return getScope(context,reference); + }*/ + + IScope scope_Package(final MetamodelResource context, final EReference reference) { + + //EObject obj = ((InternalEObject)MetamodelFactory.eINSTANCE.createPackage()).eSetProxyURI(uri); + List<IEObjectDescription> objs = new ArrayList<IEObjectDescription>(); + + return MultimapBasedScope.createScope(IScope.NULLSCOPE, objs, true); + } + + + IScope scope_Model(final MetamodelResource context, final EReference reference) { + + List<IEObjectDescription> objs = new ArrayList<IEObjectDescription>(); + + if (context.getPackage() != null) { + for (Model model : context.getPackage().getModels()) { + objs.add(new EObjectDescription(QualifiedName.create(model.getName()), model, Collections.<String,String>emptyMap())); + } + } + + return MultimapBasedScope.createScope(IScope.NULLSCOPE, objs, true); + + //return getScope(context,reference); + } +} diff --git a/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/scoping/ExtensionAwareScope.java b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/scoping/ExtensionAwareScope.java new file mode 100644 index 000000000..81816db2a --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/scoping/ExtensionAwareScope.java @@ -0,0 +1,130 @@ +package org.eclipse.stem.model.ctdl.scoping; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.URI; +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.impl.ResourceSetImpl; +import org.eclipse.stem.model.ctdl.CTDLUtils; +import org.eclipse.stem.model.ctdl.ctdl.CtdlFactory; +import org.eclipse.stem.model.ctdl.ctdl.ExternalFunctionReference; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition; +import org.eclipse.stem.model.ctdl.functions.FunctionArgument; +import org.eclipse.stem.model.ctdl.functions.FunctionDefinitionLoader; +import org.eclipse.xtext.naming.QualifiedName; +import org.eclipse.xtext.resource.EObjectDescription; +import org.eclipse.xtext.resource.IEObjectDescription; +import org.eclipse.xtext.scoping.IScope; +import org.eclipse.xtext.scoping.impl.AbstractScope; + +public class ExtensionAwareScope extends AbstractScope +{ + final List<IEObjectDescription> addedOn; + + public ExtensionAwareScope(IScope delegate, EObject ctx) { + super(delegate, true); + ResourceSet rs = new ResourceSetImpl(); + Resource resource = rs.createResource(URI.createURI("empty.sctd")); + + addedOn = new ArrayList<IEObjectDescription>(); + for (ExternalFunctionDefinition def : FunctionDefinitionLoader.getInstance().getDefinitions()) { + ExternalFunctionReference ref = CtdlFactory.eINSTANCE.createExternalFunctionReference(); + ref.setFunc(def); + ref.setName(def.getName()); + resource.getContents().add(ref); + addedOn.add(EObjectDescription.create(QualifiedName.create(getSignatureForFunctionDefinition(def)), ref)); + } + } + + private String getSignatureForFunctionDefinition(ExternalFunctionDefinition def) + { + StringBuilder sb = new StringBuilder(); + sb.append(def.getName()); + sb.append("("); + EList<FunctionArgument> args = def.getFunctionArguments(); + int paramCount = args.size(); + for (int idx=0; idx<args.size(); idx++) { + sb.append(CTDLUtils.getNormalizedTypeNameForClass(args.get(idx).getType())); + if (idx < paramCount-1) { + sb.append(","); + } + } + sb.append(")"); + return sb.toString(); + } + + @Override + protected Iterable<IEObjectDescription> getAllLocalElements() { + return addedOn; + } + + @Override + protected Iterable<IEObjectDescription> getLocalElementsByEObject( + EObject object, URI uri) { + return super.getLocalElementsByEObject(object, uri); + } + + + +// private Collection<IEObjectDescription> addToIterable(final Iterable<IEObjectDescription> list, final Collection<IEObjectDescription> toAdd) { +// +// Collection<IEObjectDescription> retVal = null; +// if (list instanceof Collection) { +// retVal = (Collection<IEObjectDescription>)list; +// } else { +// retVal = new ArrayList<IEObjectDescription>(); +// for (IEObjectDescription desc : list) { +// retVal.add(desc); +// } +// } +// +// retVal.addAll(toAdd); +// return retVal; +// } +// +// @Override +// public Iterable<IEObjectDescription> getAllElements() { +// return addToIterable(super.getAllElements(), addedOn); +// } +// +// @Override +// public Iterable<IEObjectDescription> getElements(EObject object) { +// List<IEObjectDescription> toAdd = new ArrayList<IEObjectDescription>(); +// for (IEObjectDescription obj : addedOn) { +// if (obj.getEObjectOrProxy() != null && obj.getEObjectOrProxy().equals(object)) { +// toAdd.add(obj); +// } +// } +// return addToIterable(super.getElements(object), toAdd); +// } +// +// @Override +// public Iterable<IEObjectDescription> getElements(QualifiedName name) { +// List<IEObjectDescription> toAdd = new ArrayList<IEObjectDescription>(); +// for (IEObjectDescription obj : addedOn) { +// if (obj.getQualifiedName() != null && obj.getQualifiedName().equals(name)) { +// toAdd.add(obj); +// } +// } +// +// return addToIterable(super.getElements(name), toAdd); +// } +// +// @Override +// public IEObjectDescription getSingleElement(EObject object) { +// return super.getSingleElement(object); +// } +// +// @Override +// public IEObjectDescription getSingleElement(QualifiedName name) { +// return super.getSingleElement(name); +// } + + + + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/scoping/MetamodelContextLinker.java b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/scoping/MetamodelContextLinker.java new file mode 100644 index 000000000..daa3418b0 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/scoping/MetamodelContextLinker.java @@ -0,0 +1,166 @@ +package org.eclipse.stem.model.ctdl.scoping; + +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.stem.model.ctdl.CTDLUtils; +import org.eclipse.stem.model.ctdl.ctdl.BooleanLiteral; +import org.eclipse.stem.model.ctdl.ctdl.CompartmentReference; +import org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions; +import org.eclipse.stem.model.ctdl.ctdl.CtdlFactory; +import org.eclipse.stem.model.ctdl.ctdl.CtdlPackage; +import org.eclipse.stem.model.ctdl.ctdl.Expression; +import org.eclipse.stem.model.ctdl.ctdl.ExternalFunctionReference; +import org.eclipse.stem.model.ctdl.ctdl.FunctionCall; +import org.eclipse.stem.model.ctdl.ctdl.FunctionReference; +import org.eclipse.stem.model.ctdl.ctdl.GlobalVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.LocalVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.MetamodelResource; +import org.eclipse.stem.model.ctdl.ctdl.ModelParamReference; +import org.eclipse.stem.model.ctdl.ctdl.ScopedVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.StringLiteral; +import org.eclipse.stem.model.ctdl.ctdl.VariableReference; +import org.eclipse.stem.model.ctdl.functions.STEMDSLUtils; +import org.eclipse.stem.model.metamodel.Model; +import org.eclipse.stem.model.metamodel.Package; +import org.eclipse.stem.model.metamodel.Transition; +import org.eclipse.xtext.linking.impl.DefaultLinkingService; +import org.eclipse.xtext.linking.impl.IllegalNodeException; +import org.eclipse.xtext.nodemodel.INode; + + +public class MetamodelContextLinker extends DefaultLinkingService { + + private Package metamodel; + private Model model; + private Transition transition; + + public void setTransition(Transition transition) + { + this.transition = transition; + + if (transition != null) { + model = transition.getContainerModel(); + } else { + model = null; + } + + if (model != null) { + metamodel = model.getContainerPackage(); + } else { + metamodel = null; + } + } + + + @Override + public List<EObject> getLinkedObjects(EObject context, EReference ref, + INode node) throws IllegalNodeException { + if (context instanceof CompartmentTransitionDefinitions && ref.getEReferenceType() == CtdlPackage.Literals.METAMODEL_RESOURCE) { + + MetamodelResource mmrs = CtdlFactory.eINSTANCE.createMetamodelResource(); + + mmrs.setModel(model); + mmrs.setPackage(metamodel); + mmrs.setTransition(transition); + + return Collections.singletonList((EObject)mmrs); + +// if (ref.getEReferenceType() == MetamodelPackage.Literals.PACKAGE) { +// if (metamodel != null) { +// return Collections.singletonList((EObject)metamodel); +// } else { +// // if we're loading a metamodel package, skip scoping and load it directly +// String path = getCrossRefNodeAsString(node); +// +// try { +// ResourceSet rs = new ResourceSetImpl(); +// Resource r = rs.createResource(URI.createURI(path)); +// r.load(Collections.emptyMap()); +// EcoreUtil.resolveAll(r); +// return Collections.singletonList(r.getContents().get(0)); +// } catch (IOException ioe) { +// ioe.printStackTrace(); +// } +// } +// } else if (ref.getEReferenceType() == MetamodelPackage.Literals.MODEL +// && model != null) { +// return Collections.singletonList((EObject)model); +// } else if (ref.getEReferenceType() == MetamodelPackage.Literals.TRANSITION +// && transition != null) { +// return Collections.singletonList((EObject)transition); +// } + } + + return super.getLinkedObjects(context, ref, node); + + } + + @Override + public String getCrossRefNodeAsString(INode node) throws IllegalNodeException { + String result = super.getCrossRefNodeAsString(node); + EObject element = node.getSemanticElement(); +// if (element instanceof TransitionBlock) { +// result = result.replace("->", ","); +// } + if (element instanceof FunctionCall) { + FunctionCall fc = (FunctionCall) element; + + StringBuilder sb = new StringBuilder(result); + sb.append("("); + boolean first = true; + for(Expression expr : fc.getArgs()) { + if (!first) { + sb.append(","); + } + if (expr instanceof StringLiteral) { + sb.append("string"); + } else if (expr instanceof BooleanLiteral) { + sb.append("boolean"); + } else if (expr instanceof VariableReference) { + sb.append(getTypeForVariableReference((VariableReference)expr)); + } else if (expr instanceof FunctionCall) { + sb.append(getTypeForFunctionReference(((FunctionCall) expr).getRef())); + } else { + sb.append("number"); + } + first = false; + } + sb.append(")"); + + result = sb.toString(); + } + return result; + } + + private String getTypeForFunctionReference(FunctionReference var) { + Class<?> refType = null; + if (var instanceof ExternalFunctionReference) { + refType = ((ExternalFunctionReference) var).getFunc().getReturnType(); + } else { + refType = double.class; + } + return CTDLUtils.getNormalizedTypeNameForClass(refType); + } + + private String getTypeForVariableReference(VariableReference var) { + + ScopedVariableReference ref = var.getRef(); + Class<?> refType = double.class; + if (ref != null) { + if (ref instanceof CompartmentReference) { + refType = ((CompartmentReference) ref).getObj().getDataType().getInstanceClass(); + } else if (ref instanceof ModelParamReference) { + refType = ((ModelParamReference) ref).getObj().getDataType().getInstanceClass(); + } else if (ref instanceof LocalVariableReference) { + // TODO handle non-double local vars + } else if (ref instanceof GlobalVariableReference) { + refType = STEMDSLUtils.getTypeForGlobalVariable(ref.getName()); + } + } + + return CTDLUtils.getNormalizedTypeNameForClass(refType); + } +} diff --git a/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/validation/CTDLJavaValidator.java b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/validation/CTDLJavaValidator.java new file mode 100644 index 000000000..597e772e1 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/src/org/eclipse/stem/model/ctdl/validation/CTDLJavaValidator.java @@ -0,0 +1,13 @@ +package org.eclipse.stem.model.ctdl.validation; + + +public class CTDLJavaValidator extends AbstractCTDLJavaValidator { + +// @Check +// public void checkGreetingStartsWithCapital(Greeting greeting) { +// if (!Character.isUpperCase(greeting.getName().charAt(0))) { +// warning("Name should start with a capital", MyDslPackage.Literals.GREETING__NAME); +// } +// } + +} diff --git a/modelgen/org.eclipse.stem.model.ctdl/xtend-gen/org/eclipse/stem/model/ctdl/generator/.CTDLGenerator.java._trace b/modelgen/org.eclipse.stem.model.ctdl/xtend-gen/org/eclipse/stem/model/ctdl/generator/.CTDLGenerator.java._trace Binary files differnew file mode 100644 index 000000000..2fc383903 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/xtend-gen/org/eclipse/stem/model/ctdl/generator/.CTDLGenerator.java._trace diff --git a/modelgen/org.eclipse.stem.model.ctdl/xtend-gen/org/eclipse/stem/model/ctdl/generator/CTDLGenerator.java b/modelgen/org.eclipse.stem.model.ctdl/xtend-gen/org/eclipse/stem/model/ctdl/generator/CTDLGenerator.java new file mode 100644 index 000000000..717ee37f5 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ctdl/xtend-gen/org/eclipse/stem/model/ctdl/generator/CTDLGenerator.java @@ -0,0 +1,506 @@ +package org.eclipse.stem.model.ctdl.generator; + +import com.google.common.base.Objects; +import com.google.common.collect.Iterables; +import java.util.Arrays; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.common.notify.Notifier; +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.resource.Resource; +import org.eclipse.stem.model.ctdl.ctdl.AbsoluteCompartmentValueReference; +import org.eclipse.stem.model.ctdl.ctdl.Block; +import org.eclipse.stem.model.ctdl.ctdl.BooleanLiteral; +import org.eclipse.stem.model.ctdl.ctdl.CompartmentTransitionDefinitions; +import org.eclipse.stem.model.ctdl.ctdl.DefStatement; +import org.eclipse.stem.model.ctdl.ctdl.Div; +import org.eclipse.stem.model.ctdl.ctdl.Evaluation; +import org.eclipse.stem.model.ctdl.ctdl.Expression; +import org.eclipse.stem.model.ctdl.ctdl.ExternalFunctionReference; +import org.eclipse.stem.model.ctdl.ctdl.FunctionCall; +import org.eclipse.stem.model.ctdl.ctdl.FunctionReference; +import org.eclipse.stem.model.ctdl.ctdl.GlobalVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.LocalVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.MetamodelResource; +import org.eclipse.stem.model.ctdl.ctdl.Minus; +import org.eclipse.stem.model.ctdl.ctdl.ModelParamReference; +import org.eclipse.stem.model.ctdl.ctdl.Multi; +import org.eclipse.stem.model.ctdl.ctdl.NumberLiteral; +import org.eclipse.stem.model.ctdl.ctdl.Plus; +import org.eclipse.stem.model.ctdl.ctdl.PrimaryExpression; +import org.eclipse.stem.model.ctdl.ctdl.RelativeCompartmentValueReference; +import org.eclipse.stem.model.ctdl.ctdl.ReturnStatement; +import org.eclipse.stem.model.ctdl.ctdl.ScopedVariableReference; +import org.eclipse.stem.model.ctdl.ctdl.StringLiteral; +import org.eclipse.stem.model.ctdl.ctdl.TransitionBlock; +import org.eclipse.stem.model.ctdl.ctdl.VariableReference; +import org.eclipse.stem.model.ctdl.functions.ExternalFunctionDefinition; +import org.eclipse.stem.model.ctdl.functions.FunctionArgumentReference; +import org.eclipse.stem.model.ctdl.functions.JavaMethodArgument; +import org.eclipse.stem.model.ctdl.functions.SystemArgumentReference; +import org.eclipse.stem.model.metamodel.Compartment; +import org.eclipse.stem.model.metamodel.CompartmentGroup; +import org.eclipse.stem.model.metamodel.Model; +import org.eclipse.stem.model.metamodel.ModelParam; +import org.eclipse.stem.model.metamodel.Transition; +import org.eclipse.xtend2.lib.StringConcatenation; +import org.eclipse.xtext.generator.IFileSystemAccess; +import org.eclipse.xtext.generator.IGenerator; +import org.eclipse.xtext.xbase.lib.IterableExtensions; +import org.eclipse.xtext.xbase.lib.IteratorExtensions; +import org.eclipse.xtext.xbase.lib.StringExtensions; + +@SuppressWarnings("all") +public class CTDLGenerator implements IGenerator { + private GenModel _genModel; + + public GenModel getGenModel() { + return this._genModel; + } + + public void setGenModel(final GenModel genModel) { + this._genModel = genModel; + } + + public String addImport(final String fqn) { + GenModel _genModel = this.getGenModel(); + boolean _notEquals = (!Objects.equal(_genModel, null)); + if (_notEquals) { + GenModel _genModel_1 = this.getGenModel(); + return _genModel_1.getImportedName(fqn); + } else { + return fqn; + } + } + + public void doGenerate(final Resource resource, final IFileSystemAccess fsa) { + TreeIterator<EObject> _allContents = resource.getAllContents(); + Iterable<EObject> _iterable = IteratorExtensions.<EObject>toIterable(_allContents); + Iterable<CompartmentTransitionDefinitions> _filter = Iterables.<CompartmentTransitionDefinitions>filter(_iterable, CompartmentTransitionDefinitions.class); + CompartmentTransitionDefinitions ctd = IterableExtensions.<CompartmentTransitionDefinitions>head(_filter); + MetamodelResource mm = ctd.getMetamodel(); + Transition trans = mm.getTransition(); + Compartment _source = trans.getSource(); + String _name = _source.getName(); + String _plus = (_name + "_"); + Compartment _target = trans.getTarget(); + String _name_1 = _target.getName(); + String fname = (_plus + _name_1); + CharSequence _compile = this.compile(resource); + fsa.generateFile(fname, _compile); + } + + protected CharSequence _compile(final Resource r) { + StringConcatenation _builder = new StringConcatenation(); + TreeIterator<EObject> _allContents = r.getAllContents(); + Iterable<EObject> _iterable = IteratorExtensions.<EObject>toIterable(_allContents); + Iterable<TransitionBlock> _filter = Iterables.<TransitionBlock>filter(_iterable, TransitionBlock.class); + TransitionBlock _head = IterableExtensions.<TransitionBlock>head(_filter); + CharSequence _compile = this.compile(_head); + _builder.append(_compile, ""); + return _builder; + } + + protected CharSequence _compile(final TransitionBlock t) { + EObject _eContainer = t.eContainer(); + CompartmentTransitionDefinitions ctd = ((CompartmentTransitionDefinitions) _eContainer); + MetamodelResource _metamodel = ctd.getMetamodel(); + Model _model = _metamodel.getModel(); + CompartmentGroup _compartments = _model.getCompartments(); + EClass _valueClass = _compartments.getValueClass(); + String labelValueClass = _valueClass.getInstanceTypeName(); + boolean _equals = Objects.equal(labelValueClass, null); + if (_equals) { + MetamodelResource _metamodel_1 = ctd.getMetamodel(); + Model _model_1 = _metamodel_1.getModel(); + CompartmentGroup _compartments_1 = _model_1.getCompartments(); + EClass _valueClass_1 = _compartments_1.getValueClass(); + String _name = _valueClass_1.getName(); + labelValueClass = _name; + } else { + String _addImport = this.addImport(labelValueClass); + labelValueClass = _addImport; + } + MetamodelResource _metamodel_2 = ctd.getMetamodel(); + Transition transition = _metamodel_2.getTransition(); + StringConcatenation _builder = new StringConcatenation(); + _builder.append("protected double "); + Compartment _source = transition.getSource(); + String _name_1 = _source.getName(); + String _plus = (_name_1 + "_"); + Compartment _target = transition.getTarget(); + String _name_2 = _target.getName(); + String _plus_1 = (_plus + _name_2); + _builder.append(_plus_1, ""); + _builder.append(" ("); + _builder.newLineIfNotEmpty(); + _builder.append("double t, "); + _builder.newLine(); + _builder.append("long timeDelta, "); + _builder.newLine(); + String _addImport_1 = this.addImport("org.eclipse.stem.core.model.STEMTime"); + _builder.append(_addImport_1, ""); + _builder.append(" time,"); + _builder.newLineIfNotEmpty(); + _builder.append(labelValueClass, ""); + _builder.append(" labelValue,"); + _builder.newLineIfNotEmpty(); + String _addImport_2 = this.addImport("org.eclipse.stem.core.graph.Node"); + _builder.append(_addImport_2, ""); + _builder.append(" node) {"); + _builder.newLineIfNotEmpty(); + _builder.append("\t"); + { + Block _block = t.getBlock(); + EList<DefStatement> _statements = _block.getStatements(); + for(final DefStatement s : _statements) { + CharSequence _compile = this.compile(s); + _builder.append(_compile, " "); + } + } + _builder.newLineIfNotEmpty(); + _builder.append("\t"); + _builder.append("return "); + Block _block_1 = t.getBlock(); + ReturnStatement _ret = _block_1.getRet(); + CharSequence _compile_1 = this.compile(_ret); + _builder.append(_compile_1, " "); + _builder.append(";"); + _builder.newLineIfNotEmpty(); + _builder.append("}"); + _builder.newLine(); + return ((CharSequence) _builder); + } + + protected CharSequence _compile(final DefStatement d) { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("double "); + String _varname = d.getVarname(); + _builder.append(_varname, ""); + _builder.append("="); + Evaluation _expr = d.getExpr(); + CharSequence _compile = this.compile(_expr); + _builder.append(_compile, ""); + _builder.append(";"); + return _builder; + } + + protected CharSequence _compile(final Evaluation e) { + StringConcatenation _builder = new StringConcatenation(); + Expression _expression = e.getExpression(); + CharSequence _compile = this.compile(_expression); + _builder.append(_compile, ""); + return _builder; + } + + protected CharSequence _compile(final PrimaryExpression pe) { + String neg = ""; + boolean _isNegate = pe.isNegate(); + if (_isNegate) { + neg = "-"; + } + StringConcatenation _builder = new StringConcatenation(); + _builder.append("("); + _builder.append(neg, ""); + Expression _exp = pe.getExp(); + CharSequence _compile = this.compile(_exp); + _builder.append(_compile, ""); + _builder.append(")"); + _builder.newLineIfNotEmpty(); + return ((CharSequence) _builder); + } + + protected CharSequence _compile(final Plus p) { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("("); + Expression _left = p.getLeft(); + CharSequence _compile = this.compile(_left); + _builder.append(_compile, ""); + _builder.append("+"); + Expression _right = p.getRight(); + CharSequence _compile_1 = this.compile(_right); + _builder.append(_compile_1, ""); + _builder.append(")"); + return _builder; + } + + protected CharSequence _compile(final Minus m) { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("("); + Expression _left = m.getLeft(); + CharSequence _compile = this.compile(_left); + _builder.append(_compile, ""); + _builder.append("-"); + Expression _right = m.getRight(); + CharSequence _compile_1 = this.compile(_right); + _builder.append(_compile_1, ""); + _builder.append(")"); + return _builder; + } + + protected CharSequence _compile(final Multi m) { + StringConcatenation _builder = new StringConcatenation(); + Expression _left = m.getLeft(); + CharSequence _compile = this.compile(_left); + _builder.append(_compile, ""); + _builder.append("*"); + Expression _right = m.getRight(); + CharSequence _compile_1 = this.compile(_right); + _builder.append(_compile_1, ""); + return _builder; + } + + protected CharSequence _compile(final Div d) { + StringConcatenation _builder = new StringConcatenation(); + Expression _left = d.getLeft(); + CharSequence _compile = this.compile(_left); + _builder.append(_compile, ""); + _builder.append("/"); + Expression _right = d.getRight(); + CharSequence _compile_1 = this.compile(_right); + _builder.append(_compile_1, ""); + return _builder; + } + + protected CharSequence _compile(final GlobalVariableReference rf) { + StringConcatenation _builder = new StringConcatenation(); + String _name = rf.getName(); + _builder.append(_name, ""); + return _builder; + } + + protected CharSequence _compile(final LocalVariableReference rf) { + StringConcatenation _builder = new StringConcatenation(); + String _name = rf.getName(); + _builder.append(_name, ""); + return _builder; + } + + protected CharSequence _compile(final AbsoluteCompartmentValueReference rf) { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("labelValue.get"); + Compartment _obj = rf.getObj(); + String _name = _obj.getName(); + String _firstUpper = StringExtensions.toFirstUpper(_name); + _builder.append(_firstUpper, ""); + _builder.append("()"); + return _builder; + } + + protected CharSequence _compile(final RelativeCompartmentValueReference rf) { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("labelValue.get"); + Compartment _obj = rf.getObj(); + String _name = _obj.getName(); + String _firstUpper = StringExtensions.toFirstUpper(_name); + _builder.append(_firstUpper, ""); + _builder.append("()/labelValue.getPopulationCount()"); + return _builder; + } + + protected CharSequence _compile(final ModelParamReference rf) { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("get"); + ModelParam _obj = rf.getObj(); + String _name = _obj.getName(); + String _firstUpper = StringExtensions.toFirstUpper(_name); + _builder.append(_firstUpper, ""); + _builder.append("()"); + return _builder; + } + + protected CharSequence _compile(final VariableReference rf) { + StringConcatenation _builder = new StringConcatenation(); + ScopedVariableReference _ref = rf.getRef(); + CharSequence _compile = this.compile(_ref); + _builder.append(_compile, ""); + return _builder; + } + + protected CharSequence _compile(final NumberLiteral nl) { + StringConcatenation _builder = new StringConcatenation(); + double _value = nl.getValue(); + _builder.append(_value, ""); + return _builder; + } + + protected CharSequence _compile(final StringLiteral sl) { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("\""); + String _value = sl.getValue(); + _builder.append(_value, ""); + _builder.append("\""); + return _builder; + } + + protected CharSequence _compile(final BooleanLiteral bl) { + StringConcatenation _builder = new StringConcatenation(); + boolean _isValue = bl.isValue(); + _builder.append(_isValue, ""); + return _builder; + } + + protected CharSequence _compileArgument(final SystemArgumentReference arg, final FunctionCall fc) { + StringConcatenation _builder = new StringConcatenation(); + String _mapsFrom = arg.getMapsFrom(); + _builder.append(_mapsFrom, ""); + return _builder; + } + + protected CharSequence _compileArgument(final FunctionArgumentReference arg, final FunctionCall fc) { + StringConcatenation _builder = new StringConcatenation(); + EList<Expression> _args = fc.getArgs(); + int _argIndex = arg.getArgIndex(); + Expression _get = _args.get(_argIndex); + CharSequence _compile = this.compile(_get); + _builder.append(_compile, ""); + return _builder; + } + + protected CharSequence _compileFunction(final ExternalFunctionReference fcr, final FunctionCall fc) { + StringConcatenation _builder = new StringConcatenation(); + ExternalFunctionDefinition _func = fcr.getFunc(); + String _className = _func.getClassName(); + String _addImport = this.addImport(_className); + _builder.append(_addImport, ""); + _builder.append("."); + ExternalFunctionDefinition _func_1 = fcr.getFunc(); + String _methodName = _func_1.getMethodName(); + _builder.append(_methodName, ""); + _builder.append("("); + _builder.newLineIfNotEmpty(); + { + ExternalFunctionDefinition _func_2 = fcr.getFunc(); + EList<JavaMethodArgument> _javaMethodArguments = _func_2.getJavaMethodArguments(); + for(final JavaMethodArgument arg : _javaMethodArguments) { + _builder.append("\t\t"); + { + ExternalFunctionDefinition _func_3 = fcr.getFunc(); + EList<JavaMethodArgument> _javaMethodArguments_1 = _func_3.getJavaMethodArguments(); + JavaMethodArgument _head = IterableExtensions.<JavaMethodArgument>head(_javaMethodArguments_1); + boolean _notEquals = (!Objects.equal(arg, _head)); + if (_notEquals) { + _builder.append(","); + } + } + _builder.newLineIfNotEmpty(); + _builder.append("\t\t"); + CharSequence _compileArgument = this.compileArgument(arg, fc); + _builder.append(_compileArgument, " "); + _builder.newLineIfNotEmpty(); + _builder.append("\t\t"); + } + } + _builder.append(")"); + return _builder; + } + + protected CharSequence _compileFunction(final FunctionReference fcr, final FunctionCall fc) { + StringConcatenation _builder = new StringConcatenation(); + String _name = fcr.getName(); + _builder.append(_name, ""); + _builder.append("("); + { + EList<Expression> _args = fc.getArgs(); + for(final Expression e : _args) { + _builder.append(" "); + _builder.newLineIfNotEmpty(); + { + EList<Expression> _args_1 = fc.getArgs(); + Expression _head = IterableExtensions.<Expression>head(_args_1); + boolean _equals = Objects.equal(e, _head); + if (_equals) { + CharSequence _compile = this.compile(e); + _builder.append(_compile, ""); + _builder.newLineIfNotEmpty(); + } else { + _builder.append(","); + CharSequence _compile_1 = this.compile(e); + _builder.append(_compile_1, ""); + _builder.newLineIfNotEmpty(); + } + } + _builder.append("\t\t\t"); + } + } + _builder.append(")"); + return _builder; + } + + protected CharSequence _compile(final FunctionCall fc) { + StringConcatenation _builder = new StringConcatenation(); + FunctionReference _ref = fc.getRef(); + CharSequence _compileFunction = this.compileFunction(_ref, fc); + _builder.append(_compileFunction, ""); + return _builder; + } + + public CharSequence compile(final Notifier rf) { + if (rf instanceof AbsoluteCompartmentValueReference) { + return _compile((AbsoluteCompartmentValueReference)rf); + } else if (rf instanceof RelativeCompartmentValueReference) { + return _compile((RelativeCompartmentValueReference)rf); + } else if (rf instanceof BooleanLiteral) { + return _compile((BooleanLiteral)rf); + } else if (rf instanceof Div) { + return _compile((Div)rf); + } else if (rf instanceof Evaluation) { + return _compile((Evaluation)rf); + } else if (rf instanceof FunctionCall) { + return _compile((FunctionCall)rf); + } else if (rf instanceof GlobalVariableReference) { + return _compile((GlobalVariableReference)rf); + } else if (rf instanceof LocalVariableReference) { + return _compile((LocalVariableReference)rf); + } else if (rf instanceof Minus) { + return _compile((Minus)rf); + } else if (rf instanceof ModelParamReference) { + return _compile((ModelParamReference)rf); + } else if (rf instanceof Multi) { + return _compile((Multi)rf); + } else if (rf instanceof NumberLiteral) { + return _compile((NumberLiteral)rf); + } else if (rf instanceof Plus) { + return _compile((Plus)rf); + } else if (rf instanceof PrimaryExpression) { + return _compile((PrimaryExpression)rf); + } else if (rf instanceof StringLiteral) { + return _compile((StringLiteral)rf); + } else if (rf instanceof VariableReference) { + return _compile((VariableReference)rf); + } else if (rf instanceof DefStatement) { + return _compile((DefStatement)rf); + } else if (rf instanceof TransitionBlock) { + return _compile((TransitionBlock)rf); + } else if (rf instanceof Resource) { + return _compile((Resource)rf); + } else { + throw new IllegalArgumentException("Unhandled parameter types: " + + Arrays.<Object>asList(rf).toString()); + } + } + + public CharSequence compileArgument(final JavaMethodArgument arg, final FunctionCall fc) { + if (arg instanceof FunctionArgumentReference) { + return _compileArgument((FunctionArgumentReference)arg, fc); + } else if (arg instanceof SystemArgumentReference) { + return _compileArgument((SystemArgumentReference)arg, fc); + } else { + throw new IllegalArgumentException("Unhandled parameter types: " + + Arrays.<Object>asList(arg, fc).toString()); + } + } + + public CharSequence compileFunction(final FunctionReference fcr, final FunctionCall fc) { + if (fcr instanceof ExternalFunctionReference) { + return _compileFunction((ExternalFunctionReference)fcr, fc); + } else if (fcr != null) { + return _compileFunction(fcr, fc); + } else { + throw new IllegalArgumentException("Unhandled parameter types: " + + Arrays.<Object>asList(fcr, fc).toString()); + } + } +} diff --git a/modelgen/org.eclipse.stem.model.transform/META-INF/MANIFEST.MF b/modelgen/org.eclipse.stem.model.transform/META-INF/MANIFEST.MF index e573d8689..da4dbc651 100644 --- a/modelgen/org.eclipse.stem.model.transform/META-INF/MANIFEST.MF +++ b/modelgen/org.eclipse.stem.model.transform/META-INF/MANIFEST.MF @@ -15,7 +15,8 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.emf.importer.ecore, org.eclipse.emf.ecore.xmi, org.eclipse.jdt.core, - org.eclipse.jface + org.eclipse.jface, + org.eclipse.stem.model.common Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Export-Package: org.eclipse.stem.model.transform,org.eclipse.stem.model.transform.util diff --git a/modelgen/org.eclipse.stem.model.transform/TransformApp-3.7.launch b/modelgen/org.eclipse.stem.model.transform/TransformApp-3.7.launch index fa38e1530..578cc5982 100644 --- a/modelgen/org.eclipse.stem.model.transform/TransformApp-3.7.launch +++ b/modelgen/org.eclipse.stem.model.transform/TransformApp-3.7.launch @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench"> <booleanAttribute key="append.args" value="true"/> -<stringAttribute key="application" value="org.eclipse.stem.model.transform.util.TransformerApplication"/> <booleanAttribute key="askclear" value="true"/> <booleanAttribute key="automaticAdd" value="false"/> <booleanAttribute key="automaticValidate" value="false"/> @@ -20,7 +19,7 @@ <stringAttribute key="pde.version" value="3.3"/> <stringAttribute key="product" value="org.eclipse.birt.report.engine.ReportEngineSDK"/> <stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.ant@default:default,org.apache.commons.io@default:default,org.apache.commons.logging@default:default,org.apache.commons.math@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.macosx@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.draw2d@default:default,org.eclipse.emf.ant@default:default,org.eclipse.emf.codegen.ecore.ui@default:default,org.eclipse.emf.codegen.ecore@default:default,org.eclipse.emf.codegen@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.converter@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.editor@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.importer.ecore@default:default,org.eclipse.emf.importer@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.macosx@default:false,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.help@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.launching.macosx@default:default,org.eclipse.jdt.launching.ui.macosx@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.search@default:default,org.eclipse.swt.cocoa.macosx.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.cocoa@default:false,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.eclipse.update.core@default:default,org.hamcrest.core@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default"/> -<stringAttribute key="selected_workspace_plugins" value="org.eclipse.stem.analysis@default:default,org.eclipse.stem.core@default:default,org.eclipse.stem.data.geography@default:default,org.eclipse.stem.definitions@default:default,org.eclipse.stem.diseasemodels.multipopulation@default:default,org.eclipse.stem.diseasemodels.swinesalmonella@default:default,org.eclipse.stem.diseasemodels@default:default,org.eclipse.stem.gis@default:default,org.eclipse.stem.graphgenerators@default:default,org.eclipse.stem.interventions@default:default,org.eclipse.stem.jobs@default:default,org.eclipse.stem.model.codegen@default:default,org.eclipse.stem.model.transform@default:default,org.eclipse.stem.model@default:default,org.eclipse.stem.populationmodels@default:default,org.eclipse.stem.transport@default:default,org.eclipse.stem.ui.diseasemodels@default:default,org.eclipse.stem.ui.populationmodels@default:default,org.eclipse.stem.ui@default:default"/> +<stringAttribute key="selected_workspace_plugins" value="org.eclipse.stem.analysis@default:default,org.eclipse.stem.core@default:default,org.eclipse.stem.definitions@default:default,org.eclipse.stem.diseasemodels.multipopulation@default:default,org.eclipse.stem.diseasemodels@default:default,org.eclipse.stem.gis@default:default,org.eclipse.stem.graphgenerators@default:default,org.eclipse.stem.interventions@default:default,org.eclipse.stem.jobs@default:default,org.eclipse.stem.model.codegen@default:default,org.eclipse.stem.model.transform@default:default,org.eclipse.stem.model@default:default,org.eclipse.stem.populationmodels@default:default,org.eclipse.stem.transport@default:default,org.eclipse.stem.ui.diseasemodels@default:default,org.eclipse.stem.ui.populationmodels@default:default,org.eclipse.stem.ui@default:default"/> <booleanAttribute key="show_selected_only" value="false"/> <booleanAttribute key="tracing" value="false"/> <booleanAttribute key="useCustomFeatures" value="false"/> diff --git a/modelgen/org.eclipse.stem.model.transform/src/org/eclipse/stem/model/transform/Activator.java b/modelgen/org.eclipse.stem.model.transform/src/org/eclipse/stem/model/transform/Activator.java index 39c458c2e..cf0f7ed33 100644 --- a/modelgen/org.eclipse.stem.model.transform/src/org/eclipse/stem/model/transform/Activator.java +++ b/modelgen/org.eclipse.stem.model.transform/src/org/eclipse/stem/model/transform/Activator.java @@ -10,18 +10,33 @@ *******************************************************************************/ package org.eclipse.stem.model.transform; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Plugin; import org.eclipse.emf.ecore.resource.Resource; -import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; -public class Activator implements BundleActivator +public class Activator extends Plugin { + public static final String PLUGIN_ID = "org.eclipse.stem.model.transform"; + private static BundleContext context; + private static Activator plugin; + static BundleContext getContext() { return context; } + + public static Activator getPlugin() + { + return plugin; + } + + public static void log(IStatus status) + { + getPlugin().getLog().log(status); + } /* * (non-Javadoc) @@ -29,6 +44,7 @@ public class Activator implements BundleActivator */ public void start(BundleContext bundleContext) throws Exception { + Activator.plugin = this; Activator.context = bundleContext; Resource.Factory.Registry.INSTANCE.getProtocolToFactoryMap().put("platform", new MetamodelResourceFactory()); } @@ -40,6 +56,7 @@ public class Activator implements BundleActivator public void stop(BundleContext bundleContext) throws Exception { Activator.context = null; + Activator.plugin = null; } } diff --git a/modelgen/org.eclipse.stem.model.transform/src/org/eclipse/stem/model/transform/EcoreTransformSwitch.java b/modelgen/org.eclipse.stem.model.transform/src/org/eclipse/stem/model/transform/EcoreTransformSwitch.java index 5ca57b674..7e250b8b0 100644 --- a/modelgen/org.eclipse.stem.model.transform/src/org/eclipse/stem/model/transform/EcoreTransformSwitch.java +++ b/modelgen/org.eclipse.stem.model.transform/src/org/eclipse/stem/model/transform/EcoreTransformSwitch.java @@ -13,6 +13,8 @@ package org.eclipse.stem.model.transform; import java.util.Arrays; import java.util.List; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.EMap; import org.eclipse.emf.common.util.TreeIterator; import org.eclipse.emf.ecore.EAnnotation; import org.eclipse.emf.ecore.EAttribute; @@ -36,6 +38,7 @@ import org.eclipse.stem.model.metamodel.ModelParam; import org.eclipse.stem.model.metamodel.ModelParamConstraint; import org.eclipse.stem.model.metamodel.Package; import org.eclipse.stem.model.metamodel.PackageGenSettings; +import org.eclipse.stem.model.metamodel.Transition; import org.eclipse.stem.model.metamodel.util.MetamodelSwitch; /** @@ -109,6 +112,9 @@ public class EcoreTransformSwitch extends MetamodelSwitch<Object> { modelClass.getEStructuralFeatures().add(caseModelParam(param)); } + modelClass.getEAnnotations(). + add(getTransitionEAnnotations(object.getTransitions())); + if (object.getAuthor() != null) { modelClass.getEAnnotations().add( caseAuthorDetails(object.getAuthor())); @@ -506,6 +512,35 @@ public class EcoreTransformSwitch extends MetamodelSwitch<Object> { return annotation; } + + + + @Override + public EAnnotation caseTransition(Transition object) + { + Compartment source = object.getSource(); + Compartment target = object.getTarget(); + EAnnotation annotation = FACTORY.createEAnnotation(); + annotation.setSource(source.getName() +"/"+ target.getName()); + annotation.getDetails().put("expression", object.getExpression()); + annotation.getDetails().put("source", object.getSource().getName()); + annotation.getDetails().put("target", object.getTarget().getName()); + return annotation; + } + + private EAnnotation getTransitionEAnnotations(EList<Transition> transitions) + { + EAnnotation base = FACTORY.createEAnnotation(); + base.setSource(CodeGenConstants.TRANSITIONS_ANNOTATION_SOURCE); + EMap<String,String> map = base.getDetails(); + for (Transition t : transitions) { + map.put(t.getSource().getName() +"/"+ t.getTarget().getName(), t.getExpression()); + + +// base.getEAnnotations().add(caseTransition(t)); + } + return base; + } /** * Adds a code generator marker annotation to the given Ecore model object diff --git a/modelgen/org.eclipse.stem.model.transform/src/org/eclipse/stem/model/transform/ModelGenerator.java b/modelgen/org.eclipse.stem.model.transform/src/org/eclipse/stem/model/transform/ModelGenerator.java index 8ab3c2abc..b01562275 100644 --- a/modelgen/org.eclipse.stem.model.transform/src/org/eclipse/stem/model/transform/ModelGenerator.java +++ b/modelgen/org.eclipse.stem.model.transform/src/org/eclipse/stem/model/transform/ModelGenerator.java @@ -24,6 +24,7 @@ import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.SubProgressMonitor; import org.eclipse.emf.codegen.ecore.generator.Generator; import org.eclipse.emf.codegen.ecore.genmodel.GenModel; @@ -34,9 +35,11 @@ import org.eclipse.emf.common.util.BasicMonitor; import org.eclipse.emf.common.util.Diagnostic; import org.eclipse.emf.common.util.TreeIterator; import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EAnnotation; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EcoreFactory; import org.eclipse.emf.ecore.plugin.EcorePlugin; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; @@ -45,6 +48,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.ecore.xmi.XMLResource; import org.eclipse.emf.importer.util.ImporterUtil; import org.eclipse.stem.model.codegen.CodeGenConstants; +import org.eclipse.stem.model.common.ModelProjectNature; import org.eclipse.stem.model.metamodel.Package; import org.eclipse.stem.model.metamodel.util.MetamodelSwitch; import org.eclipse.stem.model.transform.MetamodelResourceFactory.MetamodelURIHandler; @@ -114,6 +118,14 @@ public class ModelGenerator { ecoreTransformer = transformer; } + public String getGeneratedModelPluginID() + { + if (genModel != null) { + return genModel.getModelPluginID(); + } + return null; + } + private void applyGenModelSettings() { String project = ecore.getNsPrefix(); String projectSource = "/" + project + "/src"; @@ -133,7 +145,9 @@ public class ModelGenerator { genModel.setTemplateDirectory(CodeGenConstants.CODEGEN_TEMPLATES_PATH); genModel.getTemplatePluginVariables().add( "STEM_CODEGEN=org.eclipse.stem.model.codegen"); - + genModel.getTemplatePluginVariables().add( + "STEM_METAMODEL=org.eclipse.stem.model"); + genModel.setDynamicTemplates(true); genModel.setForceOverwrite(true); genModel.setPublicConstructors(true); @@ -208,6 +222,8 @@ public class ModelGenerator { //System.err.println("No GM for " + pkgRef.getName()); } } + + System.out.println(genModel.getUsedGenPackages()); } private void findAndReplaceSuperType(EClass eClass, String packageUri, @@ -304,11 +320,19 @@ public class ModelGenerator { private void serializeModels(String projectName) throws IOException { String modelName = ecore.getName(); + saveResource(ecore, getEcoreUri(projectName, modelName), resourceSet); saveResource(genModel, getGenModelUri(projectName, modelName), resourceSet); saveResource(metamodel, getMetamodelUri(projectName, modelName), resourceSet); + + EAnnotation metamodelPath = EcoreFactory.eINSTANCE.createEAnnotation(); + metamodelPath.setSource(CodeGenConstants.METAMODEL_URI_ANNOTATION_SOURCE); + metamodelPath.getDetails().put("uri", metamodel.eResource().getURI().toString()); + ecore.getEAnnotations().add(metamodelPath); + + saveResource(ecore, getEcoreUri(projectName, modelName), resourceSet); } private static final String JET_PROJECT_NAME = ".JETEmitters"; @@ -394,6 +418,14 @@ public class ModelGenerator { monitor.subTask("Saving Models and Cleanup"); serializeModels(genModel.getModelPluginID()); + + try { + addModelNature(genModel.getModelPluginID()); + } catch (CoreException ce) { + Activator.log(new Status( + Status.WARNING, Activator.PLUGIN_ID, "Unable to add model project nature to generated project.", ce)); + } + cleanupWorkspace(); monitor.worked(1); } finally { @@ -403,6 +435,10 @@ public class ModelGenerator { return diagnosticResponse; } + private void addModelNature(String projectId) throws CoreException { + ModelProjectNature.addNature(ResourcesPlugin.getWorkspace().getRoot().getProject(projectId)); + } + private void cleanupWorkspace() throws CoreException { IWorkspaceRoot wsr = ResourcesPlugin.getWorkspace().getRoot(); diff --git a/modelgen/org.eclipse.stem.model.ui/META-INF/MANIFEST.MF b/modelgen/org.eclipse.stem.model.ui/META-INF/MANIFEST.MF index 7c7e0fb40..dbdf7b664 100644 --- a/modelgen/org.eclipse.stem.model.ui/META-INF/MANIFEST.MF +++ b/modelgen/org.eclipse.stem.model.ui/META-INF/MANIFEST.MF @@ -11,6 +11,7 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Export-Package: org.eclipse.stem.model.metamodel.presentation, org.eclipse.stem.model.ui Require-Bundle: org.eclipse.core.runtime, + org.eclipse.core.expressions, org.eclipse.core.resources;visibility:=reexport, org.eclipse.stem.model;visibility:=reexport, org.eclipse.stem.model.transform;visibility:=reexport, @@ -22,5 +23,8 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.jdt.core, org.eclipse.jdt.ui, org.eclipse.jface.text, - org.eclipse.stem.core + org.eclipse.stem.core, + org.eclipse.stem.model.common, + org.eclipse.stem.model.ctdl, + org.eclipse.stem.model.ctdl.ui Bundle-ActivationPolicy: lazy diff --git a/modelgen/org.eclipse.stem.model.ui/plugin.xml b/modelgen/org.eclipse.stem.model.ui/plugin.xml index e92be95b9..4dffb316b 100644 --- a/modelgen/org.eclipse.stem.model.ui/plugin.xml +++ b/modelgen/org.eclipse.stem.model.ui/plugin.xml @@ -14,6 +14,7 @@ --> <plugin> + <extension point="org.eclipse.ui.editors"> <editor id="org.eclipse.stem.model.metamodel.presentation.MetamodelEditorID" @@ -50,20 +51,154 @@ <selection class="org.eclipse.core.resources.IResource" /> </wizard> </extension> + + <extension + point="org.eclipse.ui.popupMenus"> + + + + <objectContribution + adaptable="true" + id="org.eclipse.stem.model.ui.actions.loadBundle" + objectClass="org.eclipse.core.resources.IProject"> + <action + class="org.eclipse.stem.model.ui.actions.LoadBundleAction" + id="org.eclipse.stem.model.ui.actions.LoadBundleAction" + label="Load into current OSGi Container" + > + </action> + <visibility> + <objectState + name="nature" + value="org.eclipse.pde.PluginNature"> + </objectState> + </visibility> + </objectContribution> + + <objectContribution + adaptable="true" + id="org.eclipse.stem.model.ui.actions.unloadBundle" + objectClass="org.eclipse.core.resources.IProject"> + <action + class="org.eclipse.stem.model.ui.actions.UnloadBundleAction" + id="org.eclipse.stem.model.ui.actions.UnloadBundleAction" + label="Unload from current OSGi Container" + > + </action> + <visibility> + + <objectState + name="nature" + value="org.eclipse.pde.PluginNature"> + </objectState> + + </visibility> + </objectContribution> + + <objectContribution + adaptable="true" + id="org.eclipse.stem.model.ui.actions.addModelNature" + objectClass="org.eclipse.core.resources.IProject"> + <action + class="org.eclipse.stem.model.ui.actions.ToggleNatureAction" + id="org.eclipse.stem.model.ui.actions.AddNatureAction" + label="Add STEM Model Project Nature" + > + </action> + <visibility> + <and> + <objectState + name="nature" + value="org.eclipse.pde.PluginNature"> + </objectState> + <not> + <objectState + name="nature" + value="org.eclipse.stem.model.common.ModelProjectNature"> + </objectState> + </not> + </and> + </visibility> + </objectContribution> + + <objectContribution + adaptable="true" + id="org.eclipse.stem.model.ui.actions.removeModelNature" + objectClass="org.eclipse.core.resources.IProject"> + <action + class="org.eclipse.stem.model.ui.actions.ToggleNatureAction" + id="org.eclipse.stem.model.ui.actions.RemoveNatureAction" + label="Remove STEM Model Project Nature" + > + </action> + <visibility> + <and> + <objectState + name="nature" + value="org.eclipse.pde.PluginNature"> + </objectState> + <objectState + name="nature" + value="org.eclipse.stem.model.common.ModelProjectNature"> + </objectState> + </and> + </visibility> + </objectContribution> + + </extension> + +<!-- + <extension + point="org.eclipse.ui.menus"> + <menuContribution + locationURI="popup:org.eclipse.ui.popup.any?after=additions"> + <command + commandId="org.eclipse.stem.model.ui.loadBundle" + label="Load bundle command" + style="push" + tooltip="Load Bundle Command"> + + <visibleWhen + checkEnabled="true"> + <test + property="org.eclipse.stem.model.ui.isBundleInstalled"> + </test> + </visibleWhen> + </command> + </menuContribution> + </extension> + + <extension + point="org.eclipse.core.expressions.propertyTesters"> + <propertyTester + class="org.eclipse.stem.model.ui.actions.BundleInstallTester" + id="org.eclipse.stem.model.ui.actions.bundleInstallTester" + namespace="org.eclipse.stem.model.ui" + properties="isBundleInstalled" + type="java.lang.Object"> + </propertyTester> + </extension> + <extension - point="org.eclipse.ui.menus"> - <menuContribution - locationURI="menu:org.eclipse.ui.main.menu"> - <menu - label="File"> - <command - commandId="org.eclipse.ui.file.exit" - label="Exit"> - </command> - </menu> - </menuContribution> + point="org.eclipse.ui.commands"> + + <command + defaultHandler="org.eclipse.stem.model.ui.actions.LoadBundleHandler" + id="org.eclipse.stem.model.ui.loadBundle" + name="Load Bundle"> + + </command> </extension> - - + + <extension + point="org.eclipse.core.expressions.definitions"> + <definition + id="org.eclipse.stem.model.ui.isBundleLoaded"> + <test + property="org.eclipse.stem.model.ui.isBundleInstalled"> + </test> + </definition> + </extension> +--> </plugin> diff --git a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/metamodel/presentation/MetamodelActionBarContributor.java b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/metamodel/presentation/MetamodelActionBarContributor.java index 46695be68..5e5339f21 100644 --- a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/metamodel/presentation/MetamodelActionBarContributor.java +++ b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/metamodel/presentation/MetamodelActionBarContributor.java @@ -5,7 +5,6 @@ package org.eclipse.stem.model.metamodel.presentation; import java.util.ArrayList; import java.util.Collection; -import org.eclipse.stem.model.metamodel.Package; import org.eclipse.emf.common.ui.viewer.IViewerProvider; import org.eclipse.emf.edit.domain.EditingDomain; import org.eclipse.emf.edit.domain.IEditingDomainProvider; @@ -35,6 +34,7 @@ import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.window.Window; import org.eclipse.jface.wizard.WizardDialog; +import org.eclipse.stem.model.metamodel.Package; import org.eclipse.stem.model.ui.MetamodelEditorPlugin; import org.eclipse.stem.model.ui.wizards.ModelGeneratorWizard; import org.eclipse.ui.IEditorPart; diff --git a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/metamodel/presentation/MetamodelEditor.java b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/metamodel/presentation/MetamodelEditor.java index 3ae0cd20e..659088a4b 100644 --- a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/metamodel/presentation/MetamodelEditor.java +++ b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/metamodel/presentation/MetamodelEditor.java @@ -5,7 +5,6 @@ package org.eclipse.stem.model.metamodel.presentation; import java.io.IOException; import java.io.InputStream; - import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -24,22 +23,55 @@ import org.eclipse.core.resources.IResourceChangeListener; import org.eclipse.core.resources.IResourceDelta; import org.eclipse.core.resources.IResourceDeltaVisitor; import org.eclipse.core.resources.ResourcesPlugin; - import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; - +import org.eclipse.emf.common.command.BasicCommandStack; +import org.eclipse.emf.common.command.Command; +import org.eclipse.emf.common.command.CommandStack; +import org.eclipse.emf.common.command.CommandStackListener; +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.ui.MarkerHelper; +import org.eclipse.emf.common.ui.editor.ProblemEditorPart; +import org.eclipse.emf.common.ui.viewer.IViewerProvider; +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EValidator; +import org.eclipse.emf.ecore.provider.EcoreItemProviderAdapterFactory; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.util.EContentAdapter; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; +import org.eclipse.emf.edit.domain.EditingDomain; +import org.eclipse.emf.edit.domain.IEditingDomainProvider; +import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator; +import org.eclipse.emf.edit.provider.ComposedAdapterFactory; +import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory; +import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory; +import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor; +import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor; +import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter; +import org.eclipse.emf.edit.ui.dnd.LocalTransfer; +import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; +import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider; +import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper; +import org.eclipse.emf.edit.ui.util.EditUIUtil; +import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage; import org.eclipse.jface.action.IMenuListener; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.IStatusLineManager; import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.Separator; - import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.dialogs.ProgressMonitorDialog; - import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.ISelectionProvider; @@ -49,23 +81,18 @@ import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.StructuredViewer; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.Viewer; - +import org.eclipse.stem.model.metamodel.provider.MetamodelItemProviderAdapterFactory; +import org.eclipse.stem.model.ui.MetamodelEditorPlugin; import org.eclipse.swt.SWT; - import org.eclipse.swt.custom.CTabFolder; - import org.eclipse.swt.dnd.DND; import org.eclipse.swt.dnd.Transfer; - import org.eclipse.swt.events.ControlAdapter; import org.eclipse.swt.events.ControlEvent; - import org.eclipse.swt.graphics.Point; - import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.Tree; - import org.eclipse.ui.IActionBars; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorPart; @@ -73,84 +100,18 @@ import org.eclipse.ui.IEditorSite; import org.eclipse.ui.IPartListener; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.PartInitException; - +import org.eclipse.ui.actions.WorkspaceModifyOperation; import org.eclipse.ui.dialogs.SaveAsDialog; - import org.eclipse.ui.ide.IGotoMarker; - import org.eclipse.ui.part.FileEditorInput; import org.eclipse.ui.part.MultiPageEditorPart; - import org.eclipse.ui.views.contentoutline.ContentOutline; import org.eclipse.ui.views.contentoutline.ContentOutlinePage; import org.eclipse.ui.views.contentoutline.IContentOutlinePage; - import org.eclipse.ui.views.properties.IPropertySheetPage; import org.eclipse.ui.views.properties.PropertySheet; import org.eclipse.ui.views.properties.PropertySheetPage; -import org.eclipse.emf.common.command.BasicCommandStack; -import org.eclipse.emf.common.command.Command; -import org.eclipse.emf.common.command.CommandStack; -import org.eclipse.emf.common.command.CommandStackListener; - -import org.eclipse.emf.common.notify.AdapterFactory; -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.common.ui.MarkerHelper; - -import org.eclipse.emf.common.ui.editor.ProblemEditorPart; - -import org.eclipse.emf.common.ui.viewer.IViewerProvider; - -import org.eclipse.emf.common.util.BasicDiagnostic; -import org.eclipse.emf.common.util.Diagnostic; -import org.eclipse.emf.common.util.URI; - -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EValidator; - -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; - -import org.eclipse.emf.ecore.util.EContentAdapter; -import org.eclipse.emf.ecore.util.EcoreUtil; - -import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; -import org.eclipse.emf.edit.domain.EditingDomain; -import org.eclipse.emf.edit.domain.IEditingDomainProvider; - -import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator; -import org.eclipse.emf.edit.provider.ComposedAdapterFactory; -import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory; - -import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory; - -import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor; - -import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor; - -import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter; -import org.eclipse.emf.edit.ui.dnd.LocalTransfer; -import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter; - -import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider; -import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; -import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider; - -import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper; -import org.eclipse.emf.edit.ui.util.EditUIUtil; - -import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage; - -import org.eclipse.stem.model.metamodel.provider.MetamodelItemProviderAdapterFactory; - -import org.eclipse.emf.ecore.provider.EcoreItemProviderAdapterFactory; - -import org.eclipse.stem.model.ui.MetamodelEditorPlugin; - -import org.eclipse.ui.actions.WorkspaceModifyOperation; - /** * This is an example of a Metamodel model editor. diff --git a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/Constants.java b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/Constants.java index 30dcbb5e2..8ce339ca3 100644 --- a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/Constants.java +++ b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/Constants.java @@ -19,6 +19,8 @@ public interface Constants { public static final String EMPTY_STRING = ""; + public static final String MODEL_NATURE_ID = "org.eclipse.stem.model.ui.ModelProjectNature"; + public static final EClassifier[] DEFAULT_PARAM_DATA_TYPES = new EClassifier[] { EcorePackage.Literals.EDOUBLE, EcorePackage.Literals.EINT, diff --git a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/MetamodelEditorPlugin.java b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/MetamodelEditorPlugin.java index ab5752ac8..76eb127aa 100644 --- a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/MetamodelEditorPlugin.java +++ b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/MetamodelEditorPlugin.java @@ -15,6 +15,7 @@ import org.eclipse.emf.common.EMFPlugin; import org.eclipse.emf.common.ui.EclipseUIPlugin; import org.eclipse.emf.common.util.ResourceLocator; import org.eclipse.emf.ecore.provider.EcoreEditPlugin; +import org.osgi.framework.BundleContext; /** * This is the central singleton for the Metamodel editor plugin. @@ -105,9 +106,21 @@ public final class MetamodelEditorPlugin extends EMFPlugin { public Implementation() { super(); + // Remember the static instance. // plugin = this; + + } + + @Override + public void start(BundleContext context) throws Exception { + super.start(context); + } + + @Override + public void stop(BundleContext context) throws Exception { + super.stop(context); } } diff --git a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/actions/BundleInstallTester.java b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/actions/BundleInstallTester.java new file mode 100644 index 000000000..729547273 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/actions/BundleInstallTester.java @@ -0,0 +1,14 @@ +package org.eclipse.stem.model.ui.actions; + +import org.eclipse.core.expressions.PropertyTester; + +public class BundleInstallTester extends PropertyTester { + + @Override + public boolean test(Object receiver, String property, Object[] args, + Object expectedValue) { + System.out.println("in bundle install property tester"); + return false; + } + +} diff --git a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/actions/LoadBundleAction.java b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/actions/LoadBundleAction.java new file mode 100644 index 000000000..9a441b074 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/actions/LoadBundleAction.java @@ -0,0 +1,85 @@ +package org.eclipse.stem.model.ui.actions; + +import java.util.Iterator; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.Status; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.dialogs.ErrorDialog; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.stem.model.ui.MetamodelEditorPlugin; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbenchPart; +import org.osgi.framework.Bundle; +import org.osgi.framework.BundleContext; +import org.osgi.framework.BundleException; + +public class LoadBundleAction implements IObjectActionDelegate { + + + private ISelection selection; + + public void run(IAction action) { + if (selection instanceof IStructuredSelection) { + for (Iterator<?> it = ((IStructuredSelection) selection).iterator(); it.hasNext();) { + Object element = it.next(); + IProject project = null; + if (element instanceof IProject) { + project = (IProject) element; + } else if (element instanceof IAdaptable) { + project = (IProject) ((IAdaptable) element).getAdapter(IProject.class); + } + if (project != null) { + installBundle(project); + } + } + } + } + + public void selectionChanged(IAction action, ISelection selection) { + this.selection = selection; + } + + public void setActivePart(IAction action, IWorkbenchPart targetPart) { + } + + protected void installBundle(IProject project) + { + System.out.println("Installing bundle from project "+ project.getName()); + + BundleContext ctx = MetamodelEditorPlugin.getPlugin().getBundle().getBundleContext(); + + Bundle b = Platform.getBundle(project.getName()); + if (b == null) { + Bundle newBundle = null; + try { + newBundle = ctx.installBundle(project.getLocationURI().toString()); + newBundle.start(); + } catch (BundleException e) { + + if (newBundle != null) { + try { + System.err.println("Install and/or start failed, trying to uninstall."); + newBundle.uninstall(); + } catch (BundleException e2) { + + } + } + IStatus status = new Status(Status.ERROR, project.getName(), "Error installing into OSGi container", e); + + ErrorDialog.openError(Display.getDefault().getActiveShell(), "Error", + "Error installing the project "+project.getName()+" into the OSGi constainer", status); + + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + +} diff --git a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/actions/ToggleNatureAction.java b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/actions/ToggleNatureAction.java new file mode 100644 index 000000000..c6eb6f92f --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/actions/ToggleNatureAction.java @@ -0,0 +1,61 @@ +package org.eclipse.stem.model.ui.actions; + +import java.util.Iterator; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.Status; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.stem.model.common.ModelProjectNature; +import org.eclipse.stem.model.ui.MetamodelEditorPlugin; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbenchPart; + +public class ToggleNatureAction implements IObjectActionDelegate { + private ISelection selection; + + public void run(IAction action) { + if (selection instanceof IStructuredSelection) { + for (Iterator<?> it = ((IStructuredSelection) selection).iterator(); it + .hasNext();) { + Object element = it.next(); + IProject project = null; + if (element instanceof IProject) { + project = (IProject) element; + } else if (element instanceof IAdaptable) { + project = (IProject) ((IAdaptable) element) + .getAdapter(IProject.class); + } + if (project != null) { + toggleNature(project); + } + } + } + } + + public void selectionChanged(IAction action, ISelection selection) { + this.selection = selection; + } + + public void setActivePart(IAction action, IWorkbenchPart targetPart) { + } + + public static void toggleNature(IProject project) { + try { + if (ModelProjectNature.hasNature(project)) { + ModelProjectNature.removeNature(project); + } else { + ModelProjectNature.addNature(project); + } + + } catch (CoreException ce) { + MetamodelEditorPlugin + .log(new Status(Status.ERROR, + MetamodelEditorPlugin.PLUGIN_ID, + "Error toggling nature", ce)); + } + } +}
\ No newline at end of file diff --git a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/actions/UnloadBundleAction.java b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/actions/UnloadBundleAction.java new file mode 100644 index 000000000..89dc86652 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/actions/UnloadBundleAction.java @@ -0,0 +1,63 @@ +package org.eclipse.stem.model.ui.actions; + +import java.util.Iterator; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.Platform; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbenchPart; +import org.osgi.framework.Bundle; +import org.osgi.framework.BundleException; + +public class UnloadBundleAction implements IObjectActionDelegate { + + + private ISelection selection; + + public void run(IAction action) { + if (selection instanceof IStructuredSelection) { + for (Iterator<?> it = ((IStructuredSelection) selection).iterator(); it.hasNext();) { + Object element = it.next(); + IProject project = null; + if (element instanceof IProject) { + project = (IProject) element; + } else if (element instanceof IAdaptable) { + project = (IProject) ((IAdaptable) element).getAdapter(IProject.class); + } + if (project != null) { + uninstallBundle(project); + } + } + } + } + + public void selectionChanged(IAction action, ISelection selection) { + this.selection = selection; + } + + public void setActivePart(IAction action, IWorkbenchPart targetPart) { + } + + protected void uninstallBundle(IProject project) + { + Bundle b = Platform.getBundle(project.getName()); + if (b != null) { + + try { + b.stop(); + } catch (BundleException e) { + e.printStackTrace(); + } + + try { + b.uninstall(); + } catch (BundleException e) { + e.printStackTrace(); + } + } + } +} diff --git a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/ModelGeneratorWizard.java b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/ModelGeneratorWizard.java index 3fc0bfb86..911fd7807 100644 --- a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/ModelGeneratorWizard.java +++ b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/ModelGeneratorWizard.java @@ -76,10 +76,11 @@ public class ModelGeneratorWizard extends Wizard { ModelGenerator generator = new ModelGenerator(modelPackage); generator.transform(new SubProgressMonitor(monitor, 10)); generator.generate(new SubProgressMonitor(monitor, 90)); - - - +// String pluginName = generator.getGeneratedModelPluginID(); + + +// MetamodelEditorPlugin.getPlugin().getBundle().getBundleContext(). // IWorkbenchWindow window = PlatformUI.getWorkbench().getWorkbenchWindows()[0]; // //IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); diff --git a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/ModelTransitionsPage.java b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/ModelTransitionsPage.java new file mode 100644 index 000000000..10099aff8 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/ModelTransitionsPage.java @@ -0,0 +1,215 @@ +package org.eclipse.stem.model.ui.wizards; + +import java.util.Collections; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.jface.viewers.ArrayContentProvider; +import org.eclipse.jface.viewers.ComboViewer; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.window.Window; +import org.eclipse.jface.wizard.WizardPage; +import org.eclipse.stem.model.ctdl.ui.embed.EmbeddedExpressionEditorComposite; +import org.eclipse.stem.model.metamodel.MetamodelFactory; +import org.eclipse.stem.model.metamodel.Model; +import org.eclipse.stem.model.metamodel.Transition; +import org.eclipse.stem.model.ui.Constants; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; + +public class ModelTransitionsPage extends WizardPage +{ + protected EmbeddedExpressionEditorComposite editor; + protected Composite container; + protected ComboViewer transitionsComboViewer; + protected Button addTransitionButton, editTransitionButton, removeTransitionButton; + protected Label transitionsInformationLabel; + protected Model model; + + public ModelTransitionsPage(Model model) { + super("Model Transitions"); + setTitle("Model Compartment Transitions"); + setDescription("Define the transitions between compartments for your model"); + + this.model = model; + } + + @Override + public void createControl(Composite parent) + { + container = new Composite(parent, SWT.NULL); + container.setLayout(new GridLayout(3, false)); + + transitionsInformationLabel = new Label(container, SWT.NONE); + transitionsInformationLabel.setText("Define the transitions and expressions for the model compartments"); + + GridData labelGridData = new GridData(GridData.FILL); + labelGridData.horizontalSpan = 3; + transitionsInformationLabel.setLayoutData(labelGridData); + + + createTransitionViewer(container); + createExpressionEditor(container); + + setControl(container); + } + + protected void createTransitionViewer(Composite parent) + { + Label dataTypeLabel = new Label(parent, SWT.NONE); + dataTypeLabel.setText("Transition"); + + transitionsComboViewer = new ComboViewer(parent, SWT.READ_ONLY); + transitionsComboViewer.getCombo().setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + transitionsComboViewer.setContentProvider(ArrayContentProvider.getInstance()); + transitionsComboViewer.setLabelProvider(new TransitionsNameLabelProvider()); + transitionsComboViewer.addSelectionChangedListener(new ISelectionChangedListener() { + + @Override + public void selectionChanged(SelectionChangedEvent event) { + // Change what's displayed in editor + selectTransition(); + } + }); + + transitionsComboViewer.setInput(model.getTransitions()); + + Composite transitionsButtonComposite = new Composite(parent, SWT.NONE); + GridLayout transitionButtonCompositeLayout = new GridLayout(3,false); + transitionButtonCompositeLayout.horizontalSpacing = 2; + transitionsButtonComposite.setLayout(transitionButtonCompositeLayout); + addTransitionButton = new Button(transitionsButtonComposite, SWT.PUSH); + addTransitionButton.setText("Add"); + addTransitionButton.addSelectionListener(new SelectionAdapter() { + + @Override + public void widgetSelected(SelectionEvent e) { + addTransition(); + } + + }); + + editTransitionButton = new Button(transitionsButtonComposite, SWT.PUSH); + editTransitionButton.setText("Edit"); + editTransitionButton.addSelectionListener(new SelectionAdapter() { + + @Override + public void widgetSelected(SelectionEvent e) { + editTransition(); + } + + }); + + removeTransitionButton = new Button(transitionsButtonComposite, SWT.PUSH); + removeTransitionButton.setText("Remove"); + removeTransitionButton.addSelectionListener(new SelectionAdapter() { + + @Override + public void widgetSelected(SelectionEvent e) { + removeTransition(); + } + + }); + + transitionsButtonComposite.pack(); + } + + private Transition openTransitionEditorDialog(final Transition previousTransition) + { + Transition transitionToUse = null; + if (previousTransition == null) { + transitionToUse = MetamodelFactory.eINSTANCE.createTransition(); + } else { + transitionToUse = EcoreUtil.copy(previousTransition); + } + TransitionEditorDialog editorDialog = new TransitionEditorDialog( + getShell(), SWT.NONE, + model, transitionToUse, previousTransition); + + if (editorDialog.open() == Window.OK) { + return transitionToUse; + } + + return null; + } + + private void addTransition() + { + Transition transition = openTransitionEditorDialog(null); + if (transition != null) { + model.getTransitions().add(transition); + transitionsComboViewer.refresh(); + setSelectedTransition(transition); + } + } + + private void editTransition() + { + Transition selected = getSelectedTransition(); + if (selected != null) { + Transition previous = selected; + Transition edited = openTransitionEditorDialog(previous); + if (edited != null) { + Collections.replaceAll(model.getTransitions(), previous, edited); + transitionsComboViewer.refresh(); + setSelectedTransition(edited); + } + + } + } + + private void removeTransition() + { + Transition selected = getSelectedTransition(); + if (selected != null) { + model.getTransitions().remove(selected); + transitionsComboViewer.refresh(); + } + } + + protected void selectTransition() + { + editor.setTransition(getSelectedTransition()); + } + + private void setSelectedTransition(Transition transition) + { + transitionsComboViewer.setSelection(new StructuredSelection(transition)); + } + + private Transition getSelectedTransition() + { + return (Transition) ((StructuredSelection)transitionsComboViewer.getSelection()).getFirstElement(); + } + + protected void createExpressionEditor(Composite parent) + { + editor = new EmbeddedExpressionEditorComposite(parent, SWT.NONE); + GridData editorData = new GridData(GridData.FILL_BOTH); + editorData.horizontalSpan = 3; + editor.setLayoutData(editorData); + //editor.setEnabled(false); + } + + private static class TransitionsNameLabelProvider extends LabelProvider + { + @Override + public String getText(Object element) { + if (element instanceof Transition) { + Transition t = (Transition)element; + return t.getSource().getName() + " -> " + t.getTarget().getName(); + } + + return Constants.EMPTY_STRING; + } + } + +} diff --git a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/NewModelWizard.java b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/NewModelWizard.java index 2f1c2a1de..74172b590 100644 --- a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/NewModelWizard.java +++ b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/NewModelWizard.java @@ -20,6 +20,7 @@ public class NewModelWizard extends Wizard protected ModelPropertiesPage propertiesPage; protected ModelParametersPage parametersPage; protected ModelCompartmentsPage compartmentsPage; + protected ModelTransitionsPage transitionsPage; protected Model newModel; @@ -40,9 +41,11 @@ public class NewModelWizard extends Wizard propertiesPage = new ModelPropertiesPage(newModel); parametersPage = new ModelParametersPage(newModel); compartmentsPage = new ModelCompartmentsPage(newModel); + transitionsPage = new ModelTransitionsPage(newModel); addPage(propertiesPage); addPage(parametersPage); addPage(compartmentsPage); + addPage(transitionsPage); } diff --git a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/PackagePropertiesPage.java b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/PackagePropertiesPage.java index f414076aa..df60102ce 100644 --- a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/PackagePropertiesPage.java +++ b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/PackagePropertiesPage.java @@ -289,24 +289,32 @@ public class PackagePropertiesPage extends WizardPage { modelToUse = EcoreUtil.copy(existingModel); } - NewModelWizard wizard = new NewModelWizard(modelToUse); - WizardDialog wizardDialog = new WizardDialog(getShell(), wizard); - if (wizardDialog.open() == Window.OK) { - return modelToUse; - + try { + NewModelWizard wizard = new NewModelWizard(modelToUse); + WizardDialog wizardDialog = new WizardDialog(getShell(), wizard); + if (wizardDialog.open() == Window.OK) { + return modelToUse; + + } + } catch (Throwable t) { + t.printStackTrace(); } return null; } private void addModel() { - Model newModel = openModelEditorDialog(null); - if (newModel != null) { - modelPackage.getModels().add(newModel); - modelPackage.getCompartmentGroups().add(newModel.getCompartments()); - pkgModelsViewer.refresh(); + try { + Model newModel = openModelEditorDialog(null); + if (newModel != null) { + modelPackage.getModels().add(newModel); + modelPackage.getCompartmentGroups().add(newModel.getCompartments()); + pkgModelsViewer.refresh(); + } + validatePage(); + } catch (Throwable t) { + t.printStackTrace(); } - validatePage(); } private void editModel() { diff --git a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/TransitionEditorDialog.java b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/TransitionEditorDialog.java new file mode 100644 index 000000000..b5a1dc4f0 --- /dev/null +++ b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/TransitionEditorDialog.java @@ -0,0 +1,219 @@ +/******************************************************************************* + * Copyright (c) 2012 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.stem.model.ui.wizards; + +import java.util.List; + +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.ArrayContentProvider; +import org.eclipse.jface.viewers.ComboViewer; +import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.stem.model.metamodel.Compartment; +import org.eclipse.stem.model.metamodel.Model; +import org.eclipse.stem.model.metamodel.Transition; +import org.eclipse.stem.model.ui.Constants; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Shell; + +public class TransitionEditorDialog extends Dialog +{ + protected ComboViewer sourceCompartmentComboViewer, targetCompartmentComboViewer, incidenceCompartmentComboViewer; + + protected Transition transition, originalTransition; + protected Model parentModel; + + protected String errorMessage = null; + + public TransitionEditorDialog(Shell parentShell, int style, Model model, Transition transition, Transition originalTransition) + { + super(parentShell); + this.transition = transition; + this.originalTransition = originalTransition; + this.parentModel = model; + } + + public void create() + { + super.create(); + + if (transition.getSource() != null) { + sourceCompartmentComboViewer.setSelection(new StructuredSelection(transition.getSource())); + } + + if (transition.getTarget() != null) { + targetCompartmentComboViewer.setSelection(new StructuredSelection(transition.getTarget())); + } + + if (transition.getForIncidence() != null) { + incidenceCompartmentComboViewer.setSelection(new StructuredSelection(transition.getForIncidence())); + } + } + + protected Control createDialogArea(Composite parent) + { + Composite container = new Composite(parent, SWT.NONE); + GridData data = new GridData(GridData.FILL_HORIZONTAL); + data.grabExcessHorizontalSpace = true; + data.horizontalSpan = 1; + container.setLayoutData(data); + container.setLayout(new GridLayout(2, false)); + +// Label descriptionLabel = new Label(container, SWT.NONE); +// GridData descriptionData = new GridData(); +// descriptionData.horizontalSpan = 3; +// descriptionLabel.setData(descriptionData); +// descriptionLabel.setText("Select a source and target compartment to create a transition"); + + createCompartmentViewers(container); + + return parent; + } + + private void createCompartmentViewers(Composite container) + { + Label sourceCompartmentLabel = new Label(container, SWT.NONE); + sourceCompartmentLabel.setText("Source Compartment"); + + sourceCompartmentComboViewer = new ComboViewer(container, SWT.READ_ONLY); + sourceCompartmentComboViewer.setContentProvider(ArrayContentProvider.getInstance()); + sourceCompartmentComboViewer.setLabelProvider(new CompartmentNameLabelProvider()); + sourceCompartmentComboViewer.setInput(WizardHelper.getAllCompartmentsForModel(parentModel)); + + Label targetCompartmentLabel = new Label(container, SWT.NONE); + targetCompartmentLabel.setText("Target Compartment"); + + targetCompartmentComboViewer = new ComboViewer(container, SWT.READ_ONLY); + targetCompartmentComboViewer.setContentProvider(ArrayContentProvider.getInstance()); + targetCompartmentComboViewer.setLabelProvider(new CompartmentNameLabelProvider()); + targetCompartmentComboViewer.setInput(WizardHelper.getAllCompartmentsForModel(parentModel)); + + Label incidenceForLabel = new Label(container, SWT.NONE); + incidenceForLabel.setText("For Incidence"); + + List<Compartment> incidenceCompartments = WizardHelper.getAllIncidenceCompartmentsForModel(parentModel); + //incidenceCompartments.add(0, null); + + incidenceCompartmentComboViewer = new ComboViewer(container, SWT.READ_ONLY); + incidenceCompartmentComboViewer.setContentProvider(ArrayContentProvider.getInstance()); + incidenceCompartmentComboViewer.setLabelProvider(new CompartmentNameLabelProvider(false)); + incidenceCompartmentComboViewer.setInput(incidenceCompartments); + incidenceCompartmentComboViewer.getCombo().setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + } + + protected boolean validate() + { + if (getSelectedSourceCompartment() == null || getSelectedTargetCompartment() == null) { + errorMessage = "Please select a source and target compartment for this transition"; + return false; + } + + if (hasSourceTargetConflict()) { + errorMessage = "A transition already exists for the selected source-target pair."; + return false; + } + + return true; + } + + protected Compartment getSelectedSourceCompartment() + { + return (Compartment)((StructuredSelection)sourceCompartmentComboViewer.getSelection()).getFirstElement(); + } + + protected Compartment getSelectedTargetCompartment() + { + return (Compartment)((StructuredSelection)targetCompartmentComboViewer.getSelection()).getFirstElement(); + } + + protected Compartment getSelectedIncidenceCompartment() + { + Object obj = ((StructuredSelection)incidenceCompartmentComboViewer.getSelection()).getFirstElement(); + if (obj == null) { + return null; + } + return (Compartment)obj; + } + + private boolean hasSourceTargetConflict() + { + if (originalTransition != null && + originalTransition.getSource() == getSelectedSourceCompartment() && + originalTransition.getTarget() == getSelectedTargetCompartment()) { + return false; + } + + for (Transition existingTransition : parentModel.getTransitions()) { + if (existingTransition.getSource() == getSelectedSourceCompartment() && + existingTransition.getTarget() == getSelectedTargetCompartment()) { + return true; + } + } + return false; + } + + @Override + protected void okPressed() + { + if (validate()) { + Compartment source = getSelectedSourceCompartment(); + Compartment target = getSelectedTargetCompartment(); + transition.setName(source.getName() + " -> "+ target.getName()); + transition.setSource(source); + transition.setTarget(target); + transition.setForIncidence(getSelectedIncidenceCompartment()); + super.okPressed(); + } else { + MessageDialog.openError(getShell(), "Error", errorMessage); + } + } + + @Override + protected boolean isResizable() { + return true; + } + + private static class CompartmentNameLabelProvider extends LabelProvider + { + boolean showType = true; + CompartmentNameLabelProvider() + { + + } + + CompartmentNameLabelProvider(boolean showType) + { + this.showType = showType; + } + + @Override + public String getText(Object element) { + if (element instanceof Compartment) { + Compartment c = (Compartment)element; + String s = c.getName(); + if (showType) { + s = s + " ("+ c.getType() +")"; + } + return s; + } + + return Constants.EMPTY_STRING; + } + + } + +} diff --git a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/WizardHelper.java b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/WizardHelper.java index 3b59953df..845b9af10 100644 --- a/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/WizardHelper.java +++ b/modelgen/org.eclipse.stem.model.ui/src/org/eclipse/stem/model/ui/wizards/WizardHelper.java @@ -18,6 +18,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -46,6 +47,7 @@ import org.eclipse.stem.model.codegen.ModelGeneratorDescriptors; import org.eclipse.stem.model.codegen.descriptor.ModelGeneratorDescriptor; import org.eclipse.stem.model.metamodel.Compartment; import org.eclipse.stem.model.metamodel.CompartmentGroup; +import org.eclipse.stem.model.metamodel.CompartmentType; import org.eclipse.stem.model.metamodel.Model; import org.eclipse.stem.model.metamodel.ModelParam; import org.eclipse.stem.model.metamodel.ModelParamConstraint; @@ -584,6 +586,18 @@ public class WizardHelper { return getAllCompartmentsForGroup(model.getCompartments()); } + public static List<Compartment> getAllIncidenceCompartmentsForModel(Model model) { + List<Compartment> allCompartments = + new ArrayList<Compartment>(getAllCompartmentsForModel(model)); + for (Iterator<Compartment> iter= allCompartments.iterator(); iter.hasNext();) { + Compartment c = iter.next(); + if (c.getType() != CompartmentType.INCIDENCE) { + iter.remove(); + } + } + return allCompartments; + } + public static String getFirstMatchingModelName(Package pkg) { List<String> modelNames = new ArrayList<String>(); diff --git a/modelgen/org.eclipse.stem.model/.classpath b/modelgen/org.eclipse.stem.model/.classpath index 121e527a9..885a21ead 100644 --- a/modelgen/org.eclipse.stem.model/.classpath +++ b/modelgen/org.eclipse.stem.model/.classpath @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> + <classpathentry kind="src" path="model"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> <classpathentry kind="output" path="bin"/> diff --git a/modelgen/org.eclipse.stem.model/.project b/modelgen/org.eclipse.stem.model/.project index 2a7feaac9..f91b9755d 100644 --- a/modelgen/org.eclipse.stem.model/.project +++ b/modelgen/org.eclipse.stem.model/.project @@ -20,9 +20,15 @@ <arguments> </arguments> </buildCommand> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> </buildSpec> <natures> <nature>org.eclipse.jdt.core.javanature</nature> <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> </natures> </projectDescription> diff --git a/modelgen/org.eclipse.stem.model/build.properties b/modelgen/org.eclipse.stem.model/build.properties index 352305273..8050898b2 100644 --- a/modelgen/org.eclipse.stem.model/build.properties +++ b/modelgen/org.eclipse.stem.model/build.properties @@ -17,5 +17,5 @@ bin.includes = .,\ schema/,\ model/ jars.compile.order = . -source.. = src/ +source.. = src/,model/ output.. = bin/ diff --git a/modelgen/org.eclipse.stem.model/icons/full/ctool16/CreateModel_transitions_Transition.gif b/modelgen/org.eclipse.stem.model/icons/full/ctool16/CreateModel_transitions_Transition.gif Binary files differnew file mode 100644 index 000000000..11152e9a1 --- /dev/null +++ b/modelgen/org.eclipse.stem.model/icons/full/ctool16/CreateModel_transitions_Transition.gif diff --git a/modelgen/org.eclipse.stem.model/icons/full/ctool16/CreateTransition_source_Compartment.gif b/modelgen/org.eclipse.stem.model/icons/full/ctool16/CreateTransition_source_Compartment.gif Binary files differnew file mode 100644 index 000000000..97d3985db --- /dev/null +++ b/modelgen/org.eclipse.stem.model/icons/full/ctool16/CreateTransition_source_Compartment.gif diff --git a/modelgen/org.eclipse.stem.model/icons/full/ctool16/CreateTransition_target_Compartment.gif b/modelgen/org.eclipse.stem.model/icons/full/ctool16/CreateTransition_target_Compartment.gif Binary files differnew file mode 100644 index 000000000..97d3985db --- /dev/null +++ b/modelgen/org.eclipse.stem.model/icons/full/ctool16/CreateTransition_target_Compartment.gif diff --git a/modelgen/org.eclipse.stem.model/icons/full/obj16/Transition.gif b/modelgen/org.eclipse.stem.model/icons/full/obj16/Transition.gif Binary files differnew file mode 100644 index 000000000..7bac4fd38 --- /dev/null +++ b/modelgen/org.eclipse.stem.model/icons/full/obj16/Transition.gif diff --git a/modelgen/org.eclipse.stem.model/model/metamodel.ecore b/modelgen/org.eclipse.stem.model/model/metamodel.ecore index 7602468fc..2b711843c 100644 --- a/modelgen/org.eclipse.stem.model/model/metamodel.ecore +++ b/modelgen/org.eclipse.stem.model/model/metamodel.ecore @@ -1,16 +1,4 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- -/******************************************************************************* - * Copyright (c) 2012 Bundesinstitut für Risikobewertung and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Bundesinstitut für Risikobewertung - initial API and implementation - *******************************************************************************/ ---> <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="metamodel" nsURI="http:///org/eclipse/stem/model/metamodel.ecore" nsPrefix="org.eclipse.stem.model"> @@ -43,6 +31,8 @@ <eStructuralFeatures xsi:type="ecore:EReference" name="parentModel" eType="#//Model"/> <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1" eType="#//ModelParam" containment="true" eOpposite="#//ModelParam/containerModel"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="transitions" upperBound="-1" + eType="#//Transition" containment="true" eOpposite="#//Transition/containerModel"/> <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" eType="#//CompartmentGroup"/> <eStructuralFeatures xsi:type="ecore:EReference" name="author" eType="#//AuthorDetails" containment="true"/> @@ -80,9 +70,8 @@ eType="#//Compartment" containment="true" eOpposite="#//Compartment/containerGroup"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Compartment"> - <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" lowerBound="1" - eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EDataType"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EDataType"/> <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//CompartmentType" defaultValueLiteral="Standard"/> <eStructuralFeatures xsi:type="ecore:EReference" name="containerGroup" eType="#//CompartmentGroup" @@ -117,4 +106,15 @@ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelValueRelativeValueProviderAdapterParentClass" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Transition"> + <eStructuralFeatures xsi:type="ecore:EReference" name="source" eType="#//Compartment"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//Compartment"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="forIncidence" eType="#//Compartment"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="expression" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="compiledExpression" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject" + transient="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="containerModel" eType="#//Model" + changeable="false" transient="true" eOpposite="#//Model/transitions"/> + </eClassifiers> </ecore:EPackage> diff --git a/modelgen/org.eclipse.stem.model/model/metamodel.genmodel b/modelgen/org.eclipse.stem.model/model/metamodel.genmodel index ac63f4782..e8ed0aa81 100644 --- a/modelgen/org.eclipse.stem.model/model/metamodel.genmodel +++ b/modelgen/org.eclipse.stem.model/model/metamodel.genmodel @@ -1,16 +1,4 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- -/******************************************************************************* - * Copyright (c) 2012 Bundesinstitut für Risikobewertung and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Bundesinstitut für Risikobewertung - initial API and implementation - *******************************************************************************/ ---> <genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="
Copyright (c) 2012 Bundesinstitut für Risikobewertung and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
 http://www.eclipse.org/legal/epl-v10.html

Contributors:
 Bundesinstitut für Risikobewertung - initial API and implementation" modelDirectory="/org.eclipse.stem.model/src" editDirectory="/org.eclipse.stem.model/src" @@ -45,6 +33,8 @@ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference metamodel.ecore#//Model/class"/> <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference metamodel.ecore#//Model/parentModel"/> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference metamodel.ecore#//Model/parameters"/> + <genFeatures property="None" children="true" createChild="true" propertySortChoices="true" + ecoreFeature="ecore:EReference metamodel.ecore#//Model/transitions"/> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference metamodel.ecore#//Model/compartments"/> <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference metamodel.ecore#//Model/author"/> <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference metamodel.ecore#//Model/containerPackage"/> @@ -101,5 +91,14 @@ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute metamodel.ecore#//ModelGenSettings/labelValueRelativeValueProviderAdapterClass"/> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute metamodel.ecore#//ModelGenSettings/labelValueRelativeValueProviderAdapterParentClass"/> </genClasses> + <genClasses ecoreClass="metamodel.ecore#//Transition"> + <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference metamodel.ecore#//Transition/source"/> + <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference metamodel.ecore#//Transition/target"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference metamodel.ecore#//Transition/forIncidence"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute metamodel.ecore#//Transition/name"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute metamodel.ecore#//Transition/expression"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference metamodel.ecore#//Transition/compiledExpression"/> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference metamodel.ecore#//Transition/containerModel"/> + </genClasses> </genPackages> </genmodel:GenModel> diff --git a/modelgen/org.eclipse.stem.model/plugin.properties b/modelgen/org.eclipse.stem.model/plugin.properties index 087cce108..78d12fe40 100644 --- a/modelgen/org.eclipse.stem.model/plugin.properties +++ b/modelgen/org.eclipse.stem.model/plugin.properties @@ -88,3 +88,12 @@ _UI_ModelGenSettings_labelValueRelativeValueProviderAdapterClass_feature = Label _UI_ModelGenSettings_labelValueRelativeValueProviderAdapterParentClass_feature = Label Value Relative Value Provider Adapter Parent Class _UI_PackageGenSettings_modelPluginId_feature = Model Plugin Id _UI_PackageGenSettings_editorPluginId_feature = Editor Plugin Id +_UI_Transition_type = Transition +_UI_Transition_source_feature = Source +_UI_Transition_target_feature = Target +_UI_Model_transitions_feature = Transitions +_UI_Transition_containerModel_feature = Container Model +_UI_Transition_name_feature = Name +_UI_Transition_expression_feature = Expression +_UI_Transition_compiledExpression_feature = Compiled Expression +_UI_Transition_forIncidence_feature = For Incidence diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/Compartment.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/Compartment.java index 8fe4ada48..7008169cd 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/Compartment.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/Compartment.java @@ -44,7 +44,7 @@ public interface Compartment extends EObject { * @return the value of the '<em>Name</em>' attribute. * @see #setName(String) * @see org.eclipse.stem.model.metamodel.MetamodelPackage#getCompartment_Name() - * @model required="true" + * @model * @generated */ String getName(); @@ -70,7 +70,7 @@ public interface Compartment extends EObject { * @return the value of the '<em>Data Type</em>' reference. * @see #setDataType(EDataType) * @see org.eclipse.stem.model.metamodel.MetamodelPackage#getCompartment_DataType() - * @model required="true" + * @model * @generated */ EDataType getDataType(); diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/CompartmentGroup.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/CompartmentGroup.java index 88b8c8ca1..7a30b5500 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/CompartmentGroup.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/CompartmentGroup.java @@ -11,7 +11,6 @@ package org.eclipse.stem.model.metamodel; import org.eclipse.emf.common.util.EList; - import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/MetamodelFactory.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/MetamodelFactory.java index 69648c692..763b52d53 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/MetamodelFactory.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/MetamodelFactory.java @@ -102,6 +102,15 @@ public interface MetamodelFactory extends EFactory { ModelGenSettings createModelGenSettings(); /** + * Returns a new object of class '<em>Transition</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Transition</em>'. + * @generated + */ + Transition createTransition(); + + /** * Returns a new object of class '<em>Package Gen Settings</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/MetamodelPackage.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/MetamodelPackage.java index ea34b52b9..1e4cb4a15 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/MetamodelPackage.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/MetamodelPackage.java @@ -184,13 +184,22 @@ public interface MetamodelPackage extends EPackage { int MODEL__PARAMETERS = 4; /** + * The feature id for the '<em><b>Transitions</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MODEL__TRANSITIONS = 5; + + /** * The feature id for the '<em><b>Compartments</b></em>' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int MODEL__COMPARTMENTS = 5; + int MODEL__COMPARTMENTS = 6; /** * The feature id for the '<em><b>Author</b></em>' containment reference. @@ -199,7 +208,7 @@ public interface MetamodelPackage extends EPackage { * @generated * @ordered */ - int MODEL__AUTHOR = 6; + int MODEL__AUTHOR = 7; /** * The feature id for the '<em><b>Container Package</b></em>' container reference. @@ -208,7 +217,7 @@ public interface MetamodelPackage extends EPackage { * @generated * @ordered */ - int MODEL__CONTAINER_PACKAGE = 7; + int MODEL__CONTAINER_PACKAGE = 8; /** * The feature id for the '<em><b>Generator Settings</b></em>' containment reference. @@ -217,7 +226,7 @@ public interface MetamodelPackage extends EPackage { * @generated * @ordered */ - int MODEL__GENERATOR_SETTINGS = 8; + int MODEL__GENERATOR_SETTINGS = 9; /** * The number of structural features of the '<em>Model</em>' class. @@ -226,7 +235,7 @@ public interface MetamodelPackage extends EPackage { * @generated * @ordered */ - int MODEL_FEATURE_COUNT = 9; + int MODEL_FEATURE_COUNT = 10; /** * The meta object id for the '{@link org.eclipse.stem.model.metamodel.impl.ModelParamImpl <em>Model Param</em>}' class. @@ -695,6 +704,88 @@ public interface MetamodelPackage extends EPackage { int MODEL_GEN_SETTINGS_FEATURE_COUNT = 8; /** + * The meta object id for the '{@link org.eclipse.stem.model.metamodel.impl.TransitionImpl <em>Transition</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.metamodel.impl.TransitionImpl + * @see org.eclipse.stem.model.metamodel.impl.MetamodelPackageImpl#getTransition() + * @generated + */ + int TRANSITION = 9; + + /** + * The feature id for the '<em><b>Source</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TRANSITION__SOURCE = 0; + + /** + * The feature id for the '<em><b>Target</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TRANSITION__TARGET = 1; + + /** + * The feature id for the '<em><b>For Incidence</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TRANSITION__FOR_INCIDENCE = 2; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TRANSITION__NAME = 3; + + /** + * The feature id for the '<em><b>Expression</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TRANSITION__EXPRESSION = 4; + + /** + * The feature id for the '<em><b>Compiled Expression</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TRANSITION__COMPILED_EXPRESSION = 5; + + /** + * The feature id for the '<em><b>Container Model</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TRANSITION__CONTAINER_MODEL = 6; + + /** + * The number of structural features of the '<em>Transition</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TRANSITION_FEATURE_COUNT = 7; + + /** * The meta object id for the '{@link org.eclipse.stem.model.metamodel.ModelType <em>Model Type</em>}' enum. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -702,7 +793,7 @@ public interface MetamodelPackage extends EPackage { * @see org.eclipse.stem.model.metamodel.impl.MetamodelPackageImpl#getModelType() * @generated */ - int MODEL_TYPE = 9; + int MODEL_TYPE = 10; /** * The meta object id for the '{@link org.eclipse.stem.model.metamodel.CompartmentType <em>Compartment Type</em>}' enum. @@ -712,7 +803,7 @@ public interface MetamodelPackage extends EPackage { * @see org.eclipse.stem.model.metamodel.impl.MetamodelPackageImpl#getCompartmentType() * @generated */ - int COMPARTMENT_TYPE = 10; + int COMPARTMENT_TYPE = 11; /** @@ -846,6 +937,17 @@ public interface MetamodelPackage extends EPackage { EReference getModel_Parameters(); /** + * Returns the meta object for the containment reference list '{@link org.eclipse.stem.model.metamodel.Model#getTransitions <em>Transitions</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Transitions</em>'. + * @see org.eclipse.stem.model.metamodel.Model#getTransitions() + * @see #getModel() + * @generated + */ + EReference getModel_Transitions(); + + /** * Returns the meta object for the reference '{@link org.eclipse.stem.model.metamodel.Model#getCompartments <em>Compartments</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -1335,6 +1437,93 @@ public interface MetamodelPackage extends EPackage { EAttribute getModelGenSettings_LabelValueRelativeValueProviderAdapterParentClass(); /** + * Returns the meta object for class '{@link org.eclipse.stem.model.metamodel.Transition <em>Transition</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Transition</em>'. + * @see org.eclipse.stem.model.metamodel.Transition + * @generated + */ + EClass getTransition(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.stem.model.metamodel.Transition#getSource <em>Source</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Source</em>'. + * @see org.eclipse.stem.model.metamodel.Transition#getSource() + * @see #getTransition() + * @generated + */ + EReference getTransition_Source(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.stem.model.metamodel.Transition#getTarget <em>Target</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Target</em>'. + * @see org.eclipse.stem.model.metamodel.Transition#getTarget() + * @see #getTransition() + * @generated + */ + EReference getTransition_Target(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.stem.model.metamodel.Transition#getForIncidence <em>For Incidence</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>For Incidence</em>'. + * @see org.eclipse.stem.model.metamodel.Transition#getForIncidence() + * @see #getTransition() + * @generated + */ + EReference getTransition_ForIncidence(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.metamodel.Transition#getName <em>Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.stem.model.metamodel.Transition#getName() + * @see #getTransition() + * @generated + */ + EAttribute getTransition_Name(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.model.metamodel.Transition#getExpression <em>Expression</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Expression</em>'. + * @see org.eclipse.stem.model.metamodel.Transition#getExpression() + * @see #getTransition() + * @generated + */ + EAttribute getTransition_Expression(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.stem.model.metamodel.Transition#getCompiledExpression <em>Compiled Expression</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Compiled Expression</em>'. + * @see org.eclipse.stem.model.metamodel.Transition#getCompiledExpression() + * @see #getTransition() + * @generated + */ + EReference getTransition_CompiledExpression(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.stem.model.metamodel.Transition#getContainerModel <em>Container Model</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Container Model</em>'. + * @see org.eclipse.stem.model.metamodel.Transition#getContainerModel() + * @see #getTransition() + * @generated + */ + EReference getTransition_ContainerModel(); + + /** * Returns the meta object for class '{@link org.eclipse.stem.model.metamodel.PackageGenSettings <em>Package Gen Settings</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -1509,6 +1698,14 @@ public interface MetamodelPackage extends EPackage { EReference MODEL__PARAMETERS = eINSTANCE.getModel_Parameters(); /** + * The meta object literal for the '<em><b>Transitions</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference MODEL__TRANSITIONS = eINSTANCE.getModel_Transitions(); + + /** * The meta object literal for the '<em><b>Compartments</b></em>' reference feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -1881,6 +2078,72 @@ public interface MetamodelPackage extends EPackage { EAttribute MODEL_GEN_SETTINGS__LABEL_VALUE_RELATIVE_VALUE_PROVIDER_ADAPTER_PARENT_CLASS = eINSTANCE.getModelGenSettings_LabelValueRelativeValueProviderAdapterParentClass(); /** + * The meta object literal for the '{@link org.eclipse.stem.model.metamodel.impl.TransitionImpl <em>Transition</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.model.metamodel.impl.TransitionImpl + * @see org.eclipse.stem.model.metamodel.impl.MetamodelPackageImpl#getTransition() + * @generated + */ + EClass TRANSITION = eINSTANCE.getTransition(); + + /** + * The meta object literal for the '<em><b>Source</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference TRANSITION__SOURCE = eINSTANCE.getTransition_Source(); + + /** + * The meta object literal for the '<em><b>Target</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference TRANSITION__TARGET = eINSTANCE.getTransition_Target(); + + /** + * The meta object literal for the '<em><b>For Incidence</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference TRANSITION__FOR_INCIDENCE = eINSTANCE.getTransition_ForIncidence(); + + /** + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute TRANSITION__NAME = eINSTANCE.getTransition_Name(); + + /** + * The meta object literal for the '<em><b>Expression</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute TRANSITION__EXPRESSION = eINSTANCE.getTransition_Expression(); + + /** + * The meta object literal for the '<em><b>Compiled Expression</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference TRANSITION__COMPILED_EXPRESSION = eINSTANCE.getTransition_CompiledExpression(); + + /** + * The meta object literal for the '<em><b>Container Model</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference TRANSITION__CONTAINER_MODEL = eINSTANCE.getTransition_ContainerModel(); + + /** * The meta object literal for the '{@link org.eclipse.stem.model.metamodel.impl.PackageGenSettingsImpl <em>Package Gen Settings</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/Model.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/Model.java index c17081fbe..d0b05b028 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/Model.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/Model.java @@ -11,7 +11,6 @@ package org.eclipse.stem.model.metamodel; import org.eclipse.emf.common.util.EList; - import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; @@ -28,6 +27,7 @@ import org.eclipse.emf.ecore.EObject; * <li>{@link org.eclipse.stem.model.metamodel.Model#getClass_ <em>Class</em>}</li> * <li>{@link org.eclipse.stem.model.metamodel.Model#getParentModel <em>Parent Model</em>}</li> * <li>{@link org.eclipse.stem.model.metamodel.Model#getParameters <em>Parameters</em>}</li> + * <li>{@link org.eclipse.stem.model.metamodel.Model#getTransitions <em>Transitions</em>}</li> * <li>{@link org.eclipse.stem.model.metamodel.Model#getCompartments <em>Compartments</em>}</li> * <li>{@link org.eclipse.stem.model.metamodel.Model#getAuthor <em>Author</em>}</li> * <li>{@link org.eclipse.stem.model.metamodel.Model#getContainerPackage <em>Container Package</em>}</li> @@ -166,6 +166,24 @@ public interface Model extends EObject { EList<ModelParam> getParameters(); /** + * Returns the value of the '<em><b>Transitions</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.stem.model.metamodel.Transition}. + * It is bidirectional and its opposite is '{@link org.eclipse.stem.model.metamodel.Transition#getContainerModel <em>Container Model</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Transitions</em>' reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Transitions</em>' containment reference list. + * @see org.eclipse.stem.model.metamodel.MetamodelPackage#getModel_Transitions() + * @see org.eclipse.stem.model.metamodel.Transition#getContainerModel + * @model opposite="containerModel" containment="true" + * @generated + */ + EList<Transition> getTransitions(); + + /** * Returns the value of the '<em><b>Compartments</b></em>' reference. * <!-- begin-user-doc --> * <p> diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/Package.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/Package.java index 454313adb..4dbe0da9c 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/Package.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/Package.java @@ -11,7 +11,6 @@ package org.eclipse.stem.model.metamodel; import org.eclipse.emf.common.util.EList; - import org.eclipse.emf.ecore.EObject; /** diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/Transition.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/Transition.java new file mode 100644 index 000000000..4aafc45b8 --- /dev/null +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/Transition.java @@ -0,0 +1,212 @@ +/** + * + * Copyright (c) 2012 Bundesinstitut für Risikobewertung and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Bundesinstitut für Risikobewertung - initial API and implementation + */ +package org.eclipse.stem.model.metamodel; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Transition</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.stem.model.metamodel.Transition#getSource <em>Source</em>}</li> + * <li>{@link org.eclipse.stem.model.metamodel.Transition#getTarget <em>Target</em>}</li> + * <li>{@link org.eclipse.stem.model.metamodel.Transition#getForIncidence <em>For Incidence</em>}</li> + * <li>{@link org.eclipse.stem.model.metamodel.Transition#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.stem.model.metamodel.Transition#getExpression <em>Expression</em>}</li> + * <li>{@link org.eclipse.stem.model.metamodel.Transition#getCompiledExpression <em>Compiled Expression</em>}</li> + * <li>{@link org.eclipse.stem.model.metamodel.Transition#getContainerModel <em>Container Model</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.stem.model.metamodel.MetamodelPackage#getTransition() + * @model + * @generated + */ +public interface Transition extends EObject { + /** + * Returns the value of the '<em><b>Source</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Source</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Source</em>' reference. + * @see #setSource(Compartment) + * @see org.eclipse.stem.model.metamodel.MetamodelPackage#getTransition_Source() + * @model + * @generated + */ + Compartment getSource(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.metamodel.Transition#getSource <em>Source</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Source</em>' reference. + * @see #getSource() + * @generated + */ + void setSource(Compartment value); + + /** + * Returns the value of the '<em><b>Target</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Target</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Target</em>' reference. + * @see #setTarget(Compartment) + * @see org.eclipse.stem.model.metamodel.MetamodelPackage#getTransition_Target() + * @model + * @generated + */ + Compartment getTarget(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.metamodel.Transition#getTarget <em>Target</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Target</em>' reference. + * @see #getTarget() + * @generated + */ + void setTarget(Compartment value); + + /** + * Returns the value of the '<em><b>For Incidence</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>For Incidence</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>For Incidence</em>' reference. + * @see #setForIncidence(Compartment) + * @see org.eclipse.stem.model.metamodel.MetamodelPackage#getTransition_ForIncidence() + * @model + * @generated + */ + Compartment getForIncidence(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.metamodel.Transition#getForIncidence <em>For Incidence</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>For Incidence</em>' reference. + * @see #getForIncidence() + * @generated + */ + void setForIncidence(Compartment value); + + /** + * Returns the value of the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Name</em>' attribute. + * @see #setName(String) + * @see org.eclipse.stem.model.metamodel.MetamodelPackage#getTransition_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.metamodel.Transition#getName <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Name</em>' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the '<em><b>Expression</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Expression</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Expression</em>' attribute. + * @see #setExpression(String) + * @see org.eclipse.stem.model.metamodel.MetamodelPackage#getTransition_Expression() + * @model + * @generated + */ + String getExpression(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.metamodel.Transition#getExpression <em>Expression</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Expression</em>' attribute. + * @see #getExpression() + * @generated + */ + void setExpression(String value); + + /** + * Returns the value of the '<em><b>Compiled Expression</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Compiled Expression</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Compiled Expression</em>' reference. + * @see #setCompiledExpression(EObject) + * @see org.eclipse.stem.model.metamodel.MetamodelPackage#getTransition_CompiledExpression() + * @model transient="true" + * @generated + */ + EObject getCompiledExpression(); + + /** + * Sets the value of the '{@link org.eclipse.stem.model.metamodel.Transition#getCompiledExpression <em>Compiled Expression</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Compiled Expression</em>' reference. + * @see #getCompiledExpression() + * @generated + */ + void setCompiledExpression(EObject value); + + /** + * Returns the value of the '<em><b>Container Model</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.stem.model.metamodel.Model#getTransitions <em>Transitions</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Container Model</em>' container reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Container Model</em>' container reference. + * @see org.eclipse.stem.model.metamodel.MetamodelPackage#getTransition_ContainerModel() + * @see org.eclipse.stem.model.metamodel.Model#getTransitions + * @model opposite="transitions" changeable="false" + * @generated + */ + Model getContainerModel(); + +} // Transition diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/AuthorDetailsImpl.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/AuthorDetailsImpl.java index 54052a89b..84349693c 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/AuthorDetailsImpl.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/AuthorDetailsImpl.java @@ -11,12 +11,9 @@ package org.eclipse.stem.model.metamodel.impl; import org.eclipse.emf.common.notify.Notification; - import org.eclipse.emf.ecore.EClass; - import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.EObjectImpl; - import org.eclipse.stem.model.metamodel.AuthorDetails; import org.eclipse.stem.model.metamodel.MetamodelPackage; diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/CompartmentImpl.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/CompartmentImpl.java index 5d305b7bc..a171701cd 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/CompartmentImpl.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/CompartmentImpl.java @@ -12,14 +12,11 @@ package org.eclipse.stem.model.metamodel.impl; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.NotificationChain; - import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EDataType; import org.eclipse.emf.ecore.InternalEObject; - import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.EObjectImpl; - import org.eclipse.stem.model.metamodel.Compartment; import org.eclipse.stem.model.metamodel.CompartmentGroup; import org.eclipse.stem.model.metamodel.CompartmentType; diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/MetamodelFactoryImpl.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/MetamodelFactoryImpl.java index 9134fd61a..ebcb62b6a 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/MetamodelFactoryImpl.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/MetamodelFactoryImpl.java @@ -14,11 +14,8 @@ import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EDataType; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; - import org.eclipse.emf.ecore.impl.EFactoryImpl; - import org.eclipse.emf.ecore.plugin.EcorePlugin; - import org.eclipse.stem.model.metamodel.AuthorDetails; import org.eclipse.stem.model.metamodel.Compartment; import org.eclipse.stem.model.metamodel.CompartmentGroup; @@ -31,6 +28,7 @@ import org.eclipse.stem.model.metamodel.ModelParam; import org.eclipse.stem.model.metamodel.ModelParamConstraint; import org.eclipse.stem.model.metamodel.ModelType; import org.eclipse.stem.model.metamodel.PackageGenSettings; +import org.eclipse.stem.model.metamodel.Transition; /** * <!-- begin-user-doc --> @@ -85,6 +83,7 @@ public class MetamodelFactoryImpl extends EFactoryImpl implements MetamodelFacto case MetamodelPackage.AUTHOR_DETAILS: return createAuthorDetails(); case MetamodelPackage.PACKAGE_GEN_SETTINGS: return createPackageGenSettings(); case MetamodelPackage.MODEL_GEN_SETTINGS: return createModelGenSettings(); + case MetamodelPackage.TRANSITION: return createTransition(); default: throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); } @@ -209,6 +208,16 @@ public class MetamodelFactoryImpl extends EFactoryImpl implements MetamodelFacto * <!-- end-user-doc --> * @generated */ + public Transition createTransition() { + TransitionImpl transition = new TransitionImpl(); + return transition; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ public PackageGenSettings createPackageGenSettings() { PackageGenSettingsImpl packageGenSettings = new PackageGenSettingsImpl(); return packageGenSettings; diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/MetamodelPackageImpl.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/MetamodelPackageImpl.java index 527f9e0a5..b731d74bd 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/MetamodelPackageImpl.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/MetamodelPackageImpl.java @@ -29,6 +29,7 @@ import org.eclipse.stem.model.metamodel.ModelParam; import org.eclipse.stem.model.metamodel.ModelParamConstraint; import org.eclipse.stem.model.metamodel.ModelType; import org.eclipse.stem.model.metamodel.PackageGenSettings; +import org.eclipse.stem.model.metamodel.Transition; /** * <!-- begin-user-doc --> @@ -98,6 +99,13 @@ public class MetamodelPackageImpl extends EPackageImpl implements MetamodelPacka * <!-- end-user-doc --> * @generated */ + private EClass transitionEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ private EClass packageGenSettingsEClass = null; /** @@ -291,7 +299,7 @@ public class MetamodelPackageImpl extends EPackageImpl implements MetamodelPacka * <!-- end-user-doc --> * @generated */ - public EReference getModel_Compartments() { + public EReference getModel_Transitions() { return (EReference)modelEClass.getEStructuralFeatures().get(5); } @@ -300,7 +308,7 @@ public class MetamodelPackageImpl extends EPackageImpl implements MetamodelPacka * <!-- end-user-doc --> * @generated */ - public EReference getModel_Author() { + public EReference getModel_Compartments() { return (EReference)modelEClass.getEStructuralFeatures().get(6); } @@ -309,7 +317,7 @@ public class MetamodelPackageImpl extends EPackageImpl implements MetamodelPacka * <!-- end-user-doc --> * @generated */ - public EReference getModel_ContainerPackage() { + public EReference getModel_Author() { return (EReference)modelEClass.getEStructuralFeatures().get(7); } @@ -318,7 +326,7 @@ public class MetamodelPackageImpl extends EPackageImpl implements MetamodelPacka * <!-- end-user-doc --> * @generated */ - public EReference getModel_GeneratorSettings() { + public EReference getModel_ContainerPackage() { return (EReference)modelEClass.getEStructuralFeatures().get(8); } @@ -327,6 +335,15 @@ public class MetamodelPackageImpl extends EPackageImpl implements MetamodelPacka * <!-- end-user-doc --> * @generated */ + public EReference getModel_GeneratorSettings() { + return (EReference)modelEClass.getEStructuralFeatures().get(9); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ public EClass getModelParam() { return modelParamEClass; } @@ -696,6 +713,78 @@ public class MetamodelPackageImpl extends EPackageImpl implements MetamodelPacka * <!-- end-user-doc --> * @generated */ + public EClass getTransition() { + return transitionEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getTransition_Source() { + return (EReference)transitionEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getTransition_Target() { + return (EReference)transitionEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getTransition_ForIncidence() { + return (EReference)transitionEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getTransition_Name() { + return (EAttribute)transitionEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getTransition_Expression() { + return (EAttribute)transitionEClass.getEStructuralFeatures().get(4); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getTransition_CompiledExpression() { + return (EReference)transitionEClass.getEStructuralFeatures().get(5); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getTransition_ContainerModel() { + return (EReference)transitionEClass.getEStructuralFeatures().get(6); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ public EClass getPackageGenSettings() { return packageGenSettingsEClass; } @@ -777,6 +866,7 @@ public class MetamodelPackageImpl extends EPackageImpl implements MetamodelPacka createEReference(modelEClass, MODEL__CLASS); createEReference(modelEClass, MODEL__PARENT_MODEL); createEReference(modelEClass, MODEL__PARAMETERS); + createEReference(modelEClass, MODEL__TRANSITIONS); createEReference(modelEClass, MODEL__COMPARTMENTS); createEReference(modelEClass, MODEL__AUTHOR); createEReference(modelEClass, MODEL__CONTAINER_PACKAGE); @@ -833,6 +923,15 @@ public class MetamodelPackageImpl extends EPackageImpl implements MetamodelPacka createEAttribute(modelGenSettingsEClass, MODEL_GEN_SETTINGS__LABEL_VALUE_RELATIVE_VALUE_PROVIDER_ADAPTER_CLASS); createEAttribute(modelGenSettingsEClass, MODEL_GEN_SETTINGS__LABEL_VALUE_RELATIVE_VALUE_PROVIDER_ADAPTER_PARENT_CLASS); + transitionEClass = createEClass(TRANSITION); + createEReference(transitionEClass, TRANSITION__SOURCE); + createEReference(transitionEClass, TRANSITION__TARGET); + createEReference(transitionEClass, TRANSITION__FOR_INCIDENCE); + createEAttribute(transitionEClass, TRANSITION__NAME); + createEAttribute(transitionEClass, TRANSITION__EXPRESSION); + createEReference(transitionEClass, TRANSITION__COMPILED_EXPRESSION); + createEReference(transitionEClass, TRANSITION__CONTAINER_MODEL); + // Create enums modelTypeEEnum = createEEnum(MODEL_TYPE); compartmentTypeEEnum = createEEnum(COMPARTMENT_TYPE); @@ -884,6 +983,7 @@ public class MetamodelPackageImpl extends EPackageImpl implements MetamodelPacka initEReference(getModel_Class(), theEcorePackage.getEClass(), null, "class", null, 0, 1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getModel_ParentModel(), this.getModel(), null, "parentModel", null, 0, 1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getModel_Parameters(), this.getModelParam(), this.getModelParam_ContainerModel(), "parameters", null, 0, -1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getModel_Transitions(), this.getTransition(), this.getTransition_ContainerModel(), "transitions", null, 0, -1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getModel_Compartments(), this.getCompartmentGroup(), null, "compartments", null, 0, 1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getModel_Author(), this.getAuthorDetails(), null, "author", null, 0, 1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getModel_ContainerPackage(), this.getPackage(), this.getPackage_Models(), "containerPackage", null, 0, 1, Model.class, IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); @@ -913,8 +1013,8 @@ public class MetamodelPackageImpl extends EPackageImpl implements MetamodelPacka initEReference(getCompartmentGroup_Compartments(), this.getCompartment(), this.getCompartment_ContainerGroup(), "compartments", null, 0, -1, CompartmentGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(compartmentEClass, Compartment.class, "Compartment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getCompartment_Name(), theEcorePackage.getEString(), "name", null, 1, 1, Compartment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getCompartment_DataType(), theEcorePackage.getEDataType(), null, "dataType", null, 1, 1, Compartment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getCompartment_Name(), theEcorePackage.getEString(), "name", null, 0, 1, Compartment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCompartment_DataType(), theEcorePackage.getEDataType(), null, "dataType", null, 0, 1, Compartment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getCompartment_Type(), this.getCompartmentType(), "type", "Standard", 0, 1, Compartment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getCompartment_ContainerGroup(), this.getCompartmentGroup(), this.getCompartmentGroup_Compartments(), "containerGroup", null, 0, 1, Compartment.class, IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); @@ -940,6 +1040,15 @@ public class MetamodelPackageImpl extends EPackageImpl implements MetamodelPacka initEAttribute(getModelGenSettings_LabelValueRelativeValueProviderAdapterClass(), theEcorePackage.getEString(), "labelValueRelativeValueProviderAdapterClass", null, 0, 1, ModelGenSettings.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getModelGenSettings_LabelValueRelativeValueProviderAdapterParentClass(), theEcorePackage.getEString(), "labelValueRelativeValueProviderAdapterParentClass", null, 0, 1, ModelGenSettings.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); + initEReference(getTransition_Source(), this.getCompartment(), null, "source", 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_Target(), this.getCompartment(), null, "target", 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_ForIncidence(), this.getCompartment(), null, "forIncidence", null, 0, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getTransition_Name(), theEcorePackage.getEString(), "name", null, 0, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getTransition_Expression(), theEcorePackage.getEString(), "expression", null, 0, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTransition_CompiledExpression(), theEcorePackage.getEObject(), null, "compiledExpression", 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_ContainerModel(), this.getModel(), this.getModel_Transitions(), "containerModel", null, 0, 1, Transition.class, IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + // Initialize enums and add enum literals initEEnum(modelTypeEEnum, ModelType.class, "ModelType"); addEEnumLiteral(modelTypeEEnum, ModelType.DISEASE_MODEL); diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/ModelGenSettingsImpl.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/ModelGenSettingsImpl.java index 5345c28a4..b18b9f5f0 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/ModelGenSettingsImpl.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/ModelGenSettingsImpl.java @@ -12,12 +12,9 @@ package org.eclipse.stem.model.metamodel.impl; import org.eclipse.emf.common.notify.Notification; - import org.eclipse.emf.ecore.EClass; - import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.EObjectImpl; - import org.eclipse.stem.model.metamodel.MetamodelPackage; import org.eclipse.stem.model.metamodel.ModelGenSettings; diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/ModelImpl.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/ModelImpl.java index 15de02fa8..5fa941ce2 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/ModelImpl.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/ModelImpl.java @@ -14,18 +14,13 @@ 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.EObjectImpl; - import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; import org.eclipse.emf.ecore.util.InternalEList; - import org.eclipse.stem.model.metamodel.AuthorDetails; import org.eclipse.stem.model.metamodel.CompartmentGroup; import org.eclipse.stem.model.metamodel.MetamodelPackage; @@ -33,6 +28,7 @@ import org.eclipse.stem.model.metamodel.Model; import org.eclipse.stem.model.metamodel.ModelGenSettings; import org.eclipse.stem.model.metamodel.ModelParam; import org.eclipse.stem.model.metamodel.ModelType; +import org.eclipse.stem.model.metamodel.Transition; /** * <!-- begin-user-doc --> @@ -46,6 +42,7 @@ import org.eclipse.stem.model.metamodel.ModelType; * <li>{@link org.eclipse.stem.model.metamodel.impl.ModelImpl#getClass_ <em>Class</em>}</li> * <li>{@link org.eclipse.stem.model.metamodel.impl.ModelImpl#getParentModel <em>Parent Model</em>}</li> * <li>{@link org.eclipse.stem.model.metamodel.impl.ModelImpl#getParameters <em>Parameters</em>}</li> + * <li>{@link org.eclipse.stem.model.metamodel.impl.ModelImpl#getTransitions <em>Transitions</em>}</li> * <li>{@link org.eclipse.stem.model.metamodel.impl.ModelImpl#getCompartments <em>Compartments</em>}</li> * <li>{@link org.eclipse.stem.model.metamodel.impl.ModelImpl#getAuthor <em>Author</em>}</li> * <li>{@link org.eclipse.stem.model.metamodel.impl.ModelImpl#getContainerPackage <em>Container Package</em>}</li> @@ -127,6 +124,16 @@ public class ModelImpl extends EObjectImpl implements Model { protected EList<ModelParam> parameters; /** + * The cached value of the '{@link #getTransitions() <em>Transitions</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTransitions() + * @generated + * @ordered + */ + protected EList<Transition> transitions; + + /** * The cached value of the '{@link #getCompartments() <em>Compartments</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -310,6 +317,18 @@ public class ModelImpl extends EObjectImpl implements Model { * <!-- end-user-doc --> * @generated */ + public EList<Transition> getTransitions() { + if (transitions == null) { + transitions = new EObjectContainmentWithInverseEList<Transition>(Transition.class, this, MetamodelPackage.MODEL__TRANSITIONS, MetamodelPackage.TRANSITION__CONTAINER_MODEL); + } + return transitions; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ public CompartmentGroup getCompartments() { if (compartments != null && compartments.eIsProxy()) { InternalEObject oldCompartments = (InternalEObject)compartments; @@ -450,6 +469,8 @@ public class ModelImpl extends EObjectImpl implements Model { switch (featureID) { case MetamodelPackage.MODEL__PARAMETERS: return ((InternalEList<InternalEObject>)(InternalEList<?>)getParameters()).basicAdd(otherEnd, msgs); + case MetamodelPackage.MODEL__TRANSITIONS: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getTransitions()).basicAdd(otherEnd, msgs); case MetamodelPackage.MODEL__CONTAINER_PACKAGE: if (eInternalContainer() != null) msgs = eBasicRemoveFromContainer(msgs); @@ -468,6 +489,8 @@ public class ModelImpl extends EObjectImpl implements Model { switch (featureID) { case MetamodelPackage.MODEL__PARAMETERS: return ((InternalEList<?>)getParameters()).basicRemove(otherEnd, msgs); + case MetamodelPackage.MODEL__TRANSITIONS: + return ((InternalEList<?>)getTransitions()).basicRemove(otherEnd, msgs); case MetamodelPackage.MODEL__AUTHOR: return basicSetAuthor(null, msgs); case MetamodelPackage.MODEL__CONTAINER_PACKAGE: @@ -512,6 +535,8 @@ public class ModelImpl extends EObjectImpl implements Model { return basicGetParentModel(); case MetamodelPackage.MODEL__PARAMETERS: return getParameters(); + case MetamodelPackage.MODEL__TRANSITIONS: + return getTransitions(); case MetamodelPackage.MODEL__COMPARTMENTS: if (resolve) return getCompartments(); return basicGetCompartments(); @@ -550,6 +575,10 @@ public class ModelImpl extends EObjectImpl implements Model { getParameters().clear(); getParameters().addAll((Collection<? extends ModelParam>)newValue); return; + case MetamodelPackage.MODEL__TRANSITIONS: + getTransitions().clear(); + getTransitions().addAll((Collection<? extends Transition>)newValue); + return; case MetamodelPackage.MODEL__COMPARTMENTS: setCompartments((CompartmentGroup)newValue); return; @@ -586,6 +615,9 @@ public class ModelImpl extends EObjectImpl implements Model { case MetamodelPackage.MODEL__PARAMETERS: getParameters().clear(); return; + case MetamodelPackage.MODEL__TRANSITIONS: + getTransitions().clear(); + return; case MetamodelPackage.MODEL__COMPARTMENTS: setCompartments((CompartmentGroup)null); return; @@ -617,6 +649,8 @@ public class ModelImpl extends EObjectImpl implements Model { return parentModel != null; case MetamodelPackage.MODEL__PARAMETERS: return parameters != null && !parameters.isEmpty(); + case MetamodelPackage.MODEL__TRANSITIONS: + return transitions != null && !transitions.isEmpty(); case MetamodelPackage.MODEL__COMPARTMENTS: return compartments != null; case MetamodelPackage.MODEL__AUTHOR: diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/ModelParamConstraintImpl.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/ModelParamConstraintImpl.java index 4bd1fc515..92e203416 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/ModelParamConstraintImpl.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/ModelParamConstraintImpl.java @@ -11,12 +11,9 @@ package org.eclipse.stem.model.metamodel.impl; import org.eclipse.emf.common.notify.Notification; - import org.eclipse.emf.ecore.EClass; - import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.EObjectImpl; - import org.eclipse.stem.model.metamodel.MetamodelPackage; import org.eclipse.stem.model.metamodel.ModelParamConstraint; diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/PackageGenSettingsImpl.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/PackageGenSettingsImpl.java index c17c0909e..852346303 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/PackageGenSettingsImpl.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/PackageGenSettingsImpl.java @@ -11,12 +11,9 @@ package org.eclipse.stem.model.metamodel.impl; import org.eclipse.emf.common.notify.Notification; - import org.eclipse.emf.ecore.EClass; - import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.EObjectImpl; - import org.eclipse.stem.model.metamodel.MetamodelPackage; import org.eclipse.stem.model.metamodel.PackageGenSettings; diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/PackageImpl.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/PackageImpl.java index c2d536ce4..2d81b59a3 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/PackageImpl.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/PackageImpl.java @@ -14,19 +14,14 @@ 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.EObjectImpl; - import org.eclipse.emf.ecore.util.EObjectContainmentEList; import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; import org.eclipse.emf.ecore.util.InternalEList; - import org.eclipse.stem.model.metamodel.CompartmentGroup; import org.eclipse.stem.model.metamodel.MetamodelPackage; import org.eclipse.stem.model.metamodel.Model; diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/TransitionImpl.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/TransitionImpl.java new file mode 100644 index 000000000..0e7d01ea7 --- /dev/null +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/impl/TransitionImpl.java @@ -0,0 +1,527 @@ +/** + * + * Copyright (c) 2012 Bundesinstitut für Risikobewertung and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Bundesinstitut für Risikobewertung - initial API and implementation + */ +package org.eclipse.stem.model.metamodel.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.eclipse.stem.model.metamodel.Compartment; +import org.eclipse.stem.model.metamodel.MetamodelPackage; +import org.eclipse.stem.model.metamodel.Model; +import org.eclipse.stem.model.metamodel.Transition; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Transition</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.model.metamodel.impl.TransitionImpl#getSource <em>Source</em>}</li> + * <li>{@link org.eclipse.stem.model.metamodel.impl.TransitionImpl#getTarget <em>Target</em>}</li> + * <li>{@link org.eclipse.stem.model.metamodel.impl.TransitionImpl#getForIncidence <em>For Incidence</em>}</li> + * <li>{@link org.eclipse.stem.model.metamodel.impl.TransitionImpl#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.stem.model.metamodel.impl.TransitionImpl#getExpression <em>Expression</em>}</li> + * <li>{@link org.eclipse.stem.model.metamodel.impl.TransitionImpl#getCompiledExpression <em>Compiled Expression</em>}</li> + * <li>{@link org.eclipse.stem.model.metamodel.impl.TransitionImpl#getContainerModel <em>Container Model</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class TransitionImpl extends EObjectImpl implements Transition { + /** + * The cached value of the '{@link #getSource() <em>Source</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSource() + * @generated + * @ordered + */ + protected Compartment source; + + /** + * The cached value of the '{@link #getTarget() <em>Target</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTarget() + * @generated + * @ordered + */ + protected Compartment target; + + /** + * The cached value of the '{@link #getForIncidence() <em>For Incidence</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getForIncidence() + * @generated + * @ordered + */ + protected Compartment forIncidence; + + /** + * The default value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * The default value of the '{@link #getExpression() <em>Expression</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getExpression() + * @generated + * @ordered + */ + protected static final String EXPRESSION_EDEFAULT = null; + + /** + * The cached value of the '{@link #getExpression() <em>Expression</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getExpression() + * @generated + * @ordered + */ + protected String expression = EXPRESSION_EDEFAULT; + + /** + * The cached value of the '{@link #getCompiledExpression() <em>Compiled Expression</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCompiledExpression() + * @generated + * @ordered + */ + protected EObject compiledExpression; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TransitionImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return MetamodelPackage.Literals.TRANSITION; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Compartment getSource() { + if (source != null && source.eIsProxy()) { + InternalEObject oldSource = (InternalEObject)source; + source = (Compartment)eResolveProxy(oldSource); + if (source != oldSource) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, MetamodelPackage.TRANSITION__SOURCE, oldSource, source)); + } + } + return source; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Compartment basicGetSource() { + return source; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setSource(Compartment newSource) { + Compartment oldSource = source; + source = newSource; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, MetamodelPackage.TRANSITION__SOURCE, oldSource, source)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Compartment getTarget() { + if (target != null && target.eIsProxy()) { + InternalEObject oldTarget = (InternalEObject)target; + target = (Compartment)eResolveProxy(oldTarget); + if (target != oldTarget) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, MetamodelPackage.TRANSITION__TARGET, oldTarget, target)); + } + } + return target; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Compartment basicGetTarget() { + return target; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTarget(Compartment newTarget) { + Compartment oldTarget = target; + target = newTarget; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, MetamodelPackage.TRANSITION__TARGET, oldTarget, target)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Compartment getForIncidence() { + if (forIncidence != null && forIncidence.eIsProxy()) { + InternalEObject oldForIncidence = (InternalEObject)forIncidence; + forIncidence = (Compartment)eResolveProxy(oldForIncidence); + if (forIncidence != oldForIncidence) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, MetamodelPackage.TRANSITION__FOR_INCIDENCE, oldForIncidence, forIncidence)); + } + } + return forIncidence; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Compartment basicGetForIncidence() { + return forIncidence; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setForIncidence(Compartment newForIncidence) { + Compartment oldForIncidence = forIncidence; + forIncidence = newForIncidence; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, MetamodelPackage.TRANSITION__FOR_INCIDENCE, oldForIncidence, forIncidence)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setName(String newName) { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, MetamodelPackage.TRANSITION__NAME, oldName, name)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getExpression() { + return expression; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setExpression(String newExpression) { + String oldExpression = expression; + expression = newExpression; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, MetamodelPackage.TRANSITION__EXPRESSION, oldExpression, expression)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EObject getCompiledExpression() { + if (compiledExpression != null && compiledExpression.eIsProxy()) { + InternalEObject oldCompiledExpression = (InternalEObject)compiledExpression; + compiledExpression = eResolveProxy(oldCompiledExpression); + if (compiledExpression != oldCompiledExpression) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, MetamodelPackage.TRANSITION__COMPILED_EXPRESSION, oldCompiledExpression, compiledExpression)); + } + } + return compiledExpression; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EObject basicGetCompiledExpression() { + return compiledExpression; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setCompiledExpression(EObject newCompiledExpression) { + EObject oldCompiledExpression = compiledExpression; + compiledExpression = newCompiledExpression; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, MetamodelPackage.TRANSITION__COMPILED_EXPRESSION, oldCompiledExpression, compiledExpression)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Model getContainerModel() { + if (eContainerFeatureID() != MetamodelPackage.TRANSITION__CONTAINER_MODEL) return null; + return (Model)eContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case MetamodelPackage.TRANSITION__CONTAINER_MODEL: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, MetamodelPackage.TRANSITION__CONTAINER_MODEL, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case MetamodelPackage.TRANSITION__CONTAINER_MODEL: + return eBasicSetContainer(null, MetamodelPackage.TRANSITION__CONTAINER_MODEL, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) { + switch (eContainerFeatureID()) { + case MetamodelPackage.TRANSITION__CONTAINER_MODEL: + return eInternalContainer().eInverseRemove(this, MetamodelPackage.MODEL__TRANSITIONS, Model.class, msgs); + } + return super.eBasicRemoveFromContainerFeature(msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case MetamodelPackage.TRANSITION__SOURCE: + if (resolve) return getSource(); + return basicGetSource(); + case MetamodelPackage.TRANSITION__TARGET: + if (resolve) return getTarget(); + return basicGetTarget(); + case MetamodelPackage.TRANSITION__FOR_INCIDENCE: + if (resolve) return getForIncidence(); + return basicGetForIncidence(); + case MetamodelPackage.TRANSITION__NAME: + return getName(); + case MetamodelPackage.TRANSITION__EXPRESSION: + return getExpression(); + case MetamodelPackage.TRANSITION__COMPILED_EXPRESSION: + if (resolve) return getCompiledExpression(); + return basicGetCompiledExpression(); + case MetamodelPackage.TRANSITION__CONTAINER_MODEL: + return getContainerModel(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case MetamodelPackage.TRANSITION__SOURCE: + setSource((Compartment)newValue); + return; + case MetamodelPackage.TRANSITION__TARGET: + setTarget((Compartment)newValue); + return; + case MetamodelPackage.TRANSITION__FOR_INCIDENCE: + setForIncidence((Compartment)newValue); + return; + case MetamodelPackage.TRANSITION__NAME: + setName((String)newValue); + return; + case MetamodelPackage.TRANSITION__EXPRESSION: + setExpression((String)newValue); + return; + case MetamodelPackage.TRANSITION__COMPILED_EXPRESSION: + setCompiledExpression((EObject)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case MetamodelPackage.TRANSITION__SOURCE: + setSource((Compartment)null); + return; + case MetamodelPackage.TRANSITION__TARGET: + setTarget((Compartment)null); + return; + case MetamodelPackage.TRANSITION__FOR_INCIDENCE: + setForIncidence((Compartment)null); + return; + case MetamodelPackage.TRANSITION__NAME: + setName(NAME_EDEFAULT); + return; + case MetamodelPackage.TRANSITION__EXPRESSION: + setExpression(EXPRESSION_EDEFAULT); + return; + case MetamodelPackage.TRANSITION__COMPILED_EXPRESSION: + setCompiledExpression((EObject)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case MetamodelPackage.TRANSITION__SOURCE: + return source != null; + case MetamodelPackage.TRANSITION__TARGET: + return target != null; + case MetamodelPackage.TRANSITION__FOR_INCIDENCE: + return forIncidence != null; + case MetamodelPackage.TRANSITION__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case MetamodelPackage.TRANSITION__EXPRESSION: + return EXPRESSION_EDEFAULT == null ? expression != null : !EXPRESSION_EDEFAULT.equals(expression); + case MetamodelPackage.TRANSITION__COMPILED_EXPRESSION: + return compiledExpression != null; + case MetamodelPackage.TRANSITION__CONTAINER_MODEL: + return getContainerModel() != null; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(", expression: "); + result.append(expression); + result.append(')'); + return result.toString(); + } + +} //TransitionImpl diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/AuthorDetailsItemProvider.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/AuthorDetailsItemProvider.java index f59b66d90..1738a422c 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/AuthorDetailsItemProvider.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/AuthorDetailsItemProvider.java @@ -16,9 +16,7 @@ import java.util.List; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; - import org.eclipse.emf.common.util.ResourceLocator; - import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; @@ -29,7 +27,6 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; import org.eclipse.emf.edit.provider.ItemProviderAdapter; import org.eclipse.emf.edit.provider.ViewerNotification; - import org.eclipse.stem.model.metamodel.AuthorDetails; import org.eclipse.stem.model.metamodel.MetamodelPackage; diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/CompartmentGroupItemProvider.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/CompartmentGroupItemProvider.java index 91378ee99..5f9614669 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/CompartmentGroupItemProvider.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/CompartmentGroupItemProvider.java @@ -16,11 +16,8 @@ import java.util.List; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; - import org.eclipse.emf.common.util.ResourceLocator; - import org.eclipse.emf.ecore.EStructuralFeature; - import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; @@ -31,7 +28,6 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; import org.eclipse.emf.edit.provider.ItemProviderAdapter; import org.eclipse.emf.edit.provider.ViewerNotification; - import org.eclipse.stem.model.metamodel.CompartmentGroup; import org.eclipse.stem.model.metamodel.MetamodelFactory; import org.eclipse.stem.model.metamodel.MetamodelPackage; diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/CompartmentItemProvider.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/CompartmentItemProvider.java index c8e3c64d5..d2f732843 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/CompartmentItemProvider.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/CompartmentItemProvider.java @@ -16,9 +16,7 @@ import java.util.List; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; - import org.eclipse.emf.common.util.ResourceLocator; - import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; @@ -29,7 +27,6 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; import org.eclipse.emf.edit.provider.ItemProviderAdapter; import org.eclipse.emf.edit.provider.ViewerNotification; - import org.eclipse.stem.model.metamodel.Compartment; import org.eclipse.stem.model.metamodel.MetamodelPackage; diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/MetamodelEditPlugin.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/MetamodelEditPlugin.java index 1637f08ce..e319f417e 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/MetamodelEditPlugin.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/MetamodelEditPlugin.java @@ -11,9 +11,7 @@ package org.eclipse.stem.model.metamodel.provider; import org.eclipse.emf.common.EMFPlugin; - import org.eclipse.emf.common.util.ResourceLocator; - import org.eclipse.emf.ecore.provider.EcoreEditPlugin; /** diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/MetamodelItemProviderAdapterFactory.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/MetamodelItemProviderAdapterFactory.java index 63315e3a6..3049342c6 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/MetamodelItemProviderAdapterFactory.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/MetamodelItemProviderAdapterFactory.java @@ -16,7 +16,6 @@ import java.util.Collection; import org.eclipse.emf.common.notify.Adapter; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.Notifier; - import org.eclipse.emf.edit.provider.ChangeNotifier; import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.ComposedAdapterFactory; @@ -28,7 +27,6 @@ import org.eclipse.emf.edit.provider.IItemPropertySource; import org.eclipse.emf.edit.provider.INotifyChangedListener; import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; import org.eclipse.emf.edit.provider.ITreeItemContentProvider; - import org.eclipse.stem.model.metamodel.util.MetamodelAdapterFactory; /** @@ -264,6 +262,29 @@ public class MetamodelItemProviderAdapterFactory extends MetamodelAdapterFactory } /** + * This keeps track of the one adapter used for all {@link org.eclipse.stem.model.metamodel.Transition} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TransitionItemProvider transitionItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.stem.model.metamodel.Transition}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createTransitionAdapter() { + if (transitionItemProvider == null) { + transitionItemProvider = new TransitionItemProvider(this); + } + + return transitionItemProvider; + } + + /** * This keeps track of the one adapter used for all {@link org.eclipse.stem.model.metamodel.PackageGenSettings} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -394,6 +415,7 @@ public class MetamodelItemProviderAdapterFactory extends MetamodelAdapterFactory if (authorDetailsItemProvider != null) authorDetailsItemProvider.dispose(); if (packageGenSettingsItemProvider != null) packageGenSettingsItemProvider.dispose(); if (modelGenSettingsItemProvider != null) modelGenSettingsItemProvider.dispose(); + if (transitionItemProvider != null) transitionItemProvider.dispose(); } } diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/ModelGenSettingsItemProvider.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/ModelGenSettingsItemProvider.java index 429ce32ad..46b620632 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/ModelGenSettingsItemProvider.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/ModelGenSettingsItemProvider.java @@ -17,9 +17,7 @@ import java.util.List; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; - import org.eclipse.emf.common.util.ResourceLocator; - import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; @@ -30,7 +28,6 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; import org.eclipse.emf.edit.provider.ItemProviderAdapter; import org.eclipse.emf.edit.provider.ViewerNotification; - import org.eclipse.stem.model.metamodel.MetamodelPackage; import org.eclipse.stem.model.metamodel.ModelGenSettings; diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/ModelItemProvider.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/ModelItemProvider.java index 6bfb39ed1..a1d885d05 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/ModelItemProvider.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/ModelItemProvider.java @@ -16,11 +16,8 @@ import java.util.List; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; - import org.eclipse.emf.common.util.ResourceLocator; - import org.eclipse.emf.ecore.EStructuralFeature; - import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; @@ -31,7 +28,6 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; import org.eclipse.emf.edit.provider.ItemProviderAdapter; import org.eclipse.emf.edit.provider.ViewerNotification; - import org.eclipse.stem.model.metamodel.MetamodelFactory; import org.eclipse.stem.model.metamodel.MetamodelPackage; import org.eclipse.stem.model.metamodel.Model; @@ -203,6 +199,7 @@ public class ModelItemProvider if (childrenFeatures == null) { super.getChildrenFeatures(object); childrenFeatures.add(MetamodelPackage.Literals.MODEL__PARAMETERS); + childrenFeatures.add(MetamodelPackage.Literals.MODEL__TRANSITIONS); childrenFeatures.add(MetamodelPackage.Literals.MODEL__COMPARTMENTS); childrenFeatures.add(MetamodelPackage.Literals.MODEL__GENERATOR_SETTINGS); } @@ -264,6 +261,7 @@ public class ModelItemProvider fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); return; case MetamodelPackage.MODEL__PARAMETERS: + case MetamodelPackage.MODEL__TRANSITIONS: case MetamodelPackage.MODEL__COMPARTMENTS: case MetamodelPackage.MODEL__GENERATOR_SETTINGS: fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); @@ -290,6 +288,11 @@ public class ModelItemProvider newChildDescriptors.add (createChildParameter + (MetamodelPackage.Literals.MODEL__TRANSITIONS, + MetamodelFactory.eINSTANCE.createTransition())); + + newChildDescriptors.add + (createChildParameter (MetamodelPackage.Literals.MODEL__COMPARTMENTS, MetamodelFactory.eINSTANCE.createCompartmentGroup())); diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/ModelParamConstraintItemProvider.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/ModelParamConstraintItemProvider.java index c11c235c5..005f89bf9 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/ModelParamConstraintItemProvider.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/ModelParamConstraintItemProvider.java @@ -16,9 +16,7 @@ import java.util.List; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; - import org.eclipse.emf.common.util.ResourceLocator; - import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; @@ -29,7 +27,6 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; import org.eclipse.emf.edit.provider.ItemProviderAdapter; import org.eclipse.emf.edit.provider.ViewerNotification; - import org.eclipse.stem.model.metamodel.MetamodelPackage; import org.eclipse.stem.model.metamodel.ModelParamConstraint; diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/ModelParamItemProvider.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/ModelParamItemProvider.java index 13b71f60a..d487907fd 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/ModelParamItemProvider.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/ModelParamItemProvider.java @@ -16,9 +16,7 @@ import java.util.List; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; - import org.eclipse.emf.common.util.ResourceLocator; - import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; @@ -29,7 +27,6 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; import org.eclipse.emf.edit.provider.ItemProviderAdapter; import org.eclipse.emf.edit.provider.ViewerNotification; - import org.eclipse.stem.model.metamodel.MetamodelPackage; import org.eclipse.stem.model.metamodel.ModelParam; diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/PackageGenSettingsItemProvider.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/PackageGenSettingsItemProvider.java index 0b7ac73c3..e4c98ed95 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/PackageGenSettingsItemProvider.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/PackageGenSettingsItemProvider.java @@ -16,9 +16,7 @@ import java.util.List; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; - import org.eclipse.emf.common.util.ResourceLocator; - import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; @@ -29,7 +27,6 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; import org.eclipse.emf.edit.provider.ItemProviderAdapter; import org.eclipse.emf.edit.provider.ViewerNotification; - import org.eclipse.stem.model.metamodel.MetamodelPackage; import org.eclipse.stem.model.metamodel.PackageGenSettings; diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/PackageItemProvider.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/PackageItemProvider.java index e6e84cfd7..54232e359 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/PackageItemProvider.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/PackageItemProvider.java @@ -16,11 +16,8 @@ import java.util.List; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; - import org.eclipse.emf.common.util.ResourceLocator; - import org.eclipse.emf.ecore.EStructuralFeature; - import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; @@ -31,7 +28,6 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; import org.eclipse.emf.edit.provider.ItemProviderAdapter; import org.eclipse.emf.edit.provider.ViewerNotification; - import org.eclipse.stem.model.metamodel.MetamodelFactory; import org.eclipse.stem.model.metamodel.MetamodelPackage; diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/TransitionItemProvider.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/TransitionItemProvider.java new file mode 100644 index 000000000..bf7d91509 --- /dev/null +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/provider/TransitionItemProvider.java @@ -0,0 +1,279 @@ +/** + * + * Copyright (c) 2012 Bundesinstitut für Risikobewertung and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Bundesinstitut für Risikobewertung - initial API and implementation + */ +package org.eclipse.stem.model.metamodel.provider; + + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ItemProviderAdapter; +import org.eclipse.emf.edit.provider.ViewerNotification; +import org.eclipse.stem.model.metamodel.MetamodelPackage; +import org.eclipse.stem.model.metamodel.Transition; + +/** + * This is the item provider adapter for a {@link org.eclipse.stem.model.metamodel.Transition} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class TransitionItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TransitionItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addSourcePropertyDescriptor(object); + addTargetPropertyDescriptor(object); + addForIncidencePropertyDescriptor(object); + addNamePropertyDescriptor(object); + addExpressionPropertyDescriptor(object); + addCompiledExpressionPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Source feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addSourcePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Transition_source_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Transition_source_feature", "_UI_Transition_type"), + MetamodelPackage.Literals.TRANSITION__SOURCE, + true, + false, + false, + null, + null, + null)); + } + + /** + * This adds a property descriptor for the Target feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addTargetPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Transition_target_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Transition_target_feature", "_UI_Transition_type"), + MetamodelPackage.Literals.TRANSITION__TARGET, + true, + false, + false, + null, + null, + null)); + } + + /** + * This adds a property descriptor for the For Incidence feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addForIncidencePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Transition_forIncidence_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Transition_forIncidence_feature", "_UI_Transition_type"), + MetamodelPackage.Literals.TRANSITION__FOR_INCIDENCE, + true, + false, + true, + null, + null, + null)); + } + + /** + * This adds a property descriptor for the Name feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addNamePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Transition_name_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Transition_name_feature", "_UI_Transition_type"), + MetamodelPackage.Literals.TRANSITION__NAME, + false, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Expression feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addExpressionPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Transition_expression_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Transition_expression_feature", "_UI_Transition_type"), + MetamodelPackage.Literals.TRANSITION__EXPRESSION, + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Compiled Expression feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addCompiledExpressionPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Transition_compiledExpression_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Transition_compiledExpression_feature", "_UI_Transition_type"), + MetamodelPackage.Literals.TRANSITION__COMPILED_EXPRESSION, + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns Transition.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Transition")); + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) { + String label = ((Transition)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_Transition_type") : + getString("_UI_Transition_type") + " " + label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + + switch (notification.getFeatureID(Transition.class)) { + case MetamodelPackage.TRANSITION__NAME: + case MetamodelPackage.TRANSITION__EXPRESSION: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return MetamodelEditPlugin.INSTANCE; + } + +} diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/util/MetamodelAdapterFactory.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/util/MetamodelAdapterFactory.java index 88b6633e4..5ba9cc813 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/util/MetamodelAdapterFactory.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/util/MetamodelAdapterFactory.java @@ -12,11 +12,8 @@ package org.eclipse.stem.model.metamodel.util; import org.eclipse.emf.common.notify.Adapter; import org.eclipse.emf.common.notify.Notifier; - import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; - import org.eclipse.emf.ecore.EObject; - import org.eclipse.stem.model.metamodel.AuthorDetails; import org.eclipse.stem.model.metamodel.Compartment; import org.eclipse.stem.model.metamodel.CompartmentGroup; @@ -26,6 +23,7 @@ import org.eclipse.stem.model.metamodel.ModelGenSettings; import org.eclipse.stem.model.metamodel.ModelParam; import org.eclipse.stem.model.metamodel.ModelParamConstraint; import org.eclipse.stem.model.metamodel.PackageGenSettings; +import org.eclipse.stem.model.metamodel.Transition; /** * <!-- begin-user-doc --> @@ -120,6 +118,10 @@ public class MetamodelAdapterFactory extends AdapterFactoryImpl { return createModelGenSettingsAdapter(); } @Override + public Adapter caseTransition(Transition object) { + return createTransitionAdapter(); + } + @Override public Adapter defaultCase(EObject object) { return createEObjectAdapter(); } @@ -252,6 +254,20 @@ public class MetamodelAdapterFactory extends AdapterFactoryImpl { } /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.metamodel.Transition <em>Transition</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.stem.model.metamodel.Transition + * @generated + */ + public Adapter createTransitionAdapter() { + return null; + } + + /** * Creates a new adapter for an object of class '{@link org.eclipse.stem.model.metamodel.PackageGenSettings <em>Package Gen Settings</em>}'. * <!-- begin-user-doc --> * This default implementation returns null so that we can easily ignore cases; diff --git a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/util/MetamodelSwitch.java b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/util/MetamodelSwitch.java index c9debc6f6..0421a3a22 100644 --- a/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/util/MetamodelSwitch.java +++ b/modelgen/org.eclipse.stem.model/src/org/eclipse/stem/model/metamodel/util/MetamodelSwitch.java @@ -12,9 +12,7 @@ package org.eclipse.stem.model.metamodel.util; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; - import org.eclipse.emf.ecore.util.Switch; - import org.eclipse.stem.model.metamodel.AuthorDetails; import org.eclipse.stem.model.metamodel.Compartment; import org.eclipse.stem.model.metamodel.CompartmentGroup; @@ -24,6 +22,7 @@ import org.eclipse.stem.model.metamodel.ModelGenSettings; import org.eclipse.stem.model.metamodel.ModelParam; import org.eclipse.stem.model.metamodel.ModelParamConstraint; import org.eclipse.stem.model.metamodel.PackageGenSettings; +import org.eclipse.stem.model.metamodel.Transition; /** * <!-- begin-user-doc --> @@ -136,6 +135,12 @@ public class MetamodelSwitch<T> extends Switch<T> { if (result == null) result = defaultCase(theEObject); return result; } + case MetamodelPackage.TRANSITION: { + Transition transition = (Transition)theEObject; + T result = caseTransition(transition); + if (result == null) result = defaultCase(theEObject); + return result; + } default: return defaultCase(theEObject); } } @@ -261,6 +266,21 @@ public class MetamodelSwitch<T> extends Switch<T> { } /** + * Returns the result of interpreting the object as an instance of '<em>Transition</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Transition</em>'. + * @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 '<em>Package Gen Settings</em>'. * <!-- begin-user-doc --> * This implementation returns null; |