diff --git a/src/languages/de.evoal.languages.model.ddl.dsl/.launch/Launch EvoAl Eclipse.launch b/src/languages/de.evoal.languages.model.ddl.dsl/.launch/Launch EvoAl Eclipse.launch
index ea3fe6ef93e2e829d05ea228f62dc39e7d7a91ae..facb46f0607a25c60137689235b2404a9fe08843 100644
--- a/src/languages/de.evoal.languages.model.ddl.dsl/.launch/Launch EvoAl Eclipse.launch	
+++ b/src/languages/de.evoal.languages.model.ddl.dsl/.launch/Launch EvoAl Eclipse.launch	
@@ -13,15 +13,16 @@
     <stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/Launch EvoAl Eclipse"/>
     <booleanAttribute key="default" value="true"/>
     <booleanAttribute key="includeOptional" value="true"/>
-    <stringAttribute key="location" value="${workspace_loc}/../runtime-EclipseXtext"/>
+    <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>
     <booleanAttribute key="org.eclipse.jdt.launching.ATTR_ATTR_USE_ARGFILE" value="false"/>
+    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_SHOW_CODEDETAILS_IN_EXCEPTION_MESSAGES" value="true"/>
     <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
     <stringAttribute key="org.eclipse.jdt.launching.JAVA_COMMAND" value="java"/>
-    <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/OpenJDK 11 (x86_64)"/>
+    <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Zulu 17.30.15 [17.0.1]"/>
     <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 -Xmx2g"/>
diff --git a/src/languages/de.evoal.languages.model.ddl.dsl/xtend-gen/de/evoal/languages/model/ddl/dsl/formatting2/.DataDescriptionLanguageFormatter.java._trace b/src/languages/de.evoal.languages.model.ddl.dsl/xtend-gen/de/evoal/languages/model/ddl/dsl/formatting2/.DataDescriptionLanguageFormatter.java._trace
index 996a0493b943ad713f5db135a5d1e9d09a2b7a9d..7b3bb01f845e2de81604a88a592330a256e13cef 100644
Binary files a/src/languages/de.evoal.languages.model.ddl.dsl/xtend-gen/de/evoal/languages/model/ddl/dsl/formatting2/.DataDescriptionLanguageFormatter.java._trace and b/src/languages/de.evoal.languages.model.ddl.dsl/xtend-gen/de/evoal/languages/model/ddl/dsl/formatting2/.DataDescriptionLanguageFormatter.java._trace differ
diff --git a/src/languages/de.evoal.languages.model.ddl.dsl/xtend-gen/de/evoal/languages/model/ddl/dsl/generator/.DataDescriptionLanguageGenerator.java._trace b/src/languages/de.evoal.languages.model.ddl.dsl/xtend-gen/de/evoal/languages/model/ddl/dsl/generator/.DataDescriptionLanguageGenerator.java._trace
index 3237804aa6d9fbd609a714770cf017bb79c3d461..69ebedde49fde9be2b087763508e0975aa58d187 100644
Binary files a/src/languages/de.evoal.languages.model.ddl.dsl/xtend-gen/de/evoal/languages/model/ddl/dsl/generator/.DataDescriptionLanguageGenerator.java._trace and b/src/languages/de.evoal.languages.model.ddl.dsl/xtend-gen/de/evoal/languages/model/ddl/dsl/generator/.DataDescriptionLanguageGenerator.java._trace differ
diff --git a/src/languages/de.evoal.languages.model.dl.dsl/xtend-gen/de/evoal/languages/model/dl/dsl/generator/.DefinitionLanguageGenerator.java._trace b/src/languages/de.evoal.languages.model.dl.dsl/xtend-gen/de/evoal/languages/model/dl/dsl/generator/.DefinitionLanguageGenerator.java._trace
index 1cef1421a6ccb17c1bb89a409111c9477c0e020b..bbb6b3189529b30d11e7cbc83641ba9a0f3debc0 100644
Binary files a/src/languages/de.evoal.languages.model.dl.dsl/xtend-gen/de/evoal/languages/model/dl/dsl/generator/.DefinitionLanguageGenerator.java._trace and b/src/languages/de.evoal.languages.model.dl.dsl/xtend-gen/de/evoal/languages/model/dl/dsl/generator/.DefinitionLanguageGenerator.java._trace differ
diff --git a/src/languages/de.evoal.languages.model.eal.dsl/xtend-gen/de/evoal/languages/model/eal/dsl/generator/.EvolutionaryAlgorithmLanguageGenerator.java._trace b/src/languages/de.evoal.languages.model.eal.dsl/xtend-gen/de/evoal/languages/model/eal/dsl/generator/.EvolutionaryAlgorithmLanguageGenerator.java._trace
deleted file mode 100644
index 23fef9cb96b5468cce2450ae301fc6ddda37de72..0000000000000000000000000000000000000000
Binary files a/src/languages/de.evoal.languages.model.eal.dsl/xtend-gen/de/evoal/languages/model/eal/dsl/generator/.EvolutionaryAlgorithmLanguageGenerator.java._trace and /dev/null differ
diff --git a/src/languages/de.evoal.languages.model.eal.dsl/xtend-gen/de/evoal/languages/model/eal/dsl/generator/EvolutionaryAlgorithmLanguageGenerator.java b/src/languages/de.evoal.languages.model.eal.dsl/xtend-gen/de/evoal/languages/model/eal/dsl/generator/EvolutionaryAlgorithmLanguageGenerator.java
deleted file mode 100644
index c345344aadeec3c2d2c56ca1f40d1c6ed54ab578..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.eal.dsl/xtend-gen/de/evoal/languages/model/eal/dsl/generator/EvolutionaryAlgorithmLanguageGenerator.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.eal.dsl.generator;
-
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.xtext.generator.AbstractGenerator;
-import org.eclipse.xtext.generator.IFileSystemAccess2;
-import org.eclipse.xtext.generator.IGeneratorContext;
-
-/**
- * Generates code from your model files on save.
- * 
- * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation
- */
-@SuppressWarnings("all")
-public class EvolutionaryAlgorithmLanguageGenerator extends AbstractGenerator {
-  @Override
-  public void doGenerate(final Resource resource, final IFileSystemAccess2 fsa, final IGeneratorContext context) {
-  }
-}
diff --git a/src/languages/de.evoal.languages.model.el.dsl/xtend-gen/de/evoal/languages/model/el/dsl/formatting2/.ExpressionLanguageFormatter.java._trace b/src/languages/de.evoal.languages.model.el.dsl/xtend-gen/de/evoal/languages/model/el/dsl/formatting2/.ExpressionLanguageFormatter.java._trace
index ac940b3ddaa10dc759e493f69a38ac8bc3091c83..8b646ef0dfb78b1f1455fa30621787b242c70859 100644
Binary files a/src/languages/de.evoal.languages.model.el.dsl/xtend-gen/de/evoal/languages/model/el/dsl/formatting2/.ExpressionLanguageFormatter.java._trace and b/src/languages/de.evoal.languages.model.el.dsl/xtend-gen/de/evoal/languages/model/el/dsl/formatting2/.ExpressionLanguageFormatter.java._trace differ
diff --git a/src/languages/de.evoal.languages.model.el.dsl/xtend-gen/de/evoal/languages/model/el/dsl/generator/.ExpressionLanguageGenerator.java._trace b/src/languages/de.evoal.languages.model.el.dsl/xtend-gen/de/evoal/languages/model/el/dsl/generator/.ExpressionLanguageGenerator.java._trace
index 27363bc586da14f6583f7453fa67c85299c3c2e3..08b52d29d77d2cc24282852a4787bce01a807b45 100644
Binary files a/src/languages/de.evoal.languages.model.el.dsl/xtend-gen/de/evoal/languages/model/el/dsl/generator/.ExpressionLanguageGenerator.java._trace and b/src/languages/de.evoal.languages.model.el.dsl/xtend-gen/de/evoal/languages/model/el/dsl/generator/.ExpressionLanguageGenerator.java._trace differ
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/META-INF/MANIFEST.MF b/src/languages/de.evoal.languages.model.generator.dsl/META-INF/MANIFEST.MF
index 0e6313845c60876b8b14800dda900e95d66c3296..d69f988de1e1e3c88454f49100ae36870bdf28c6 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/META-INF/MANIFEST.MF
+++ b/src/languages/de.evoal.languages.model.generator.dsl/META-INF/MANIFEST.MF
@@ -16,16 +16,14 @@ Require-Bundle: org.eclipse.xtext,
  org.eclipse.emf.common,
  org.antlr.runtime;bundle-version="[3.2.0,3.2.1)",
  de.evoal.languages.model.dl;bundle-version="1.0.0",
- de.evoal.languages.model.ddl;bundle-version="1.0.0"
+ de.evoal.languages.model.ddl;bundle-version="1.0.0",
+ de.evoal.languages.model.generator;bundle-version="1.0.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-11
 Export-Package: de.evoal.languages.model.generator.dsl,
  de.evoal.languages.model.generator.dsl.services,
  de.evoal.languages.model.generator.dsl.validation,
  de.evoal.languages.model.generator.dsl.parser.antlr.internal,
- de.evoal.languages.model.generator.dsl.generatorDSL,
  de.evoal.languages.model.generator.dsl.serializer,
- de.evoal.languages.model.generator.dsl.generatorDSL.impl,
- de.evoal.languages.model.generator.dsl.generatorDSL.util,
  de.evoal.languages.model.generator.dsl.scoping,
  de.evoal.languages.model.generator.dsl.generator,
  de.evoal.languages.model.generator.dsl.parser.antlr
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/build.properties b/src/languages/de.evoal.languages.model.generator.dsl/build.properties
index 3e516cd47516345367f1d595d7157c0ca50d1d23..c24ff368064f653346c873aa6e7a60752f0bca4a 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/build.properties
+++ b/src/languages/de.evoal.languages.model.generator.dsl/build.properties
@@ -1,10 +1,8 @@
 source.. = src/,\
            src-gen/,\
            xtend-gen/
-bin.includes = model/generated/,\
-               .,\
-               META-INF/,\
-               plugin.xml
+bin.includes = .,\
+               META-INF/
 bin.excludes = **/*.mwe2,\
                **/*.xtend
 additional.bundles = org.eclipse.xtext.xbase,\
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/model/generated/GeneratorDSL.genmodel b/src/languages/de.evoal.languages.model.generator.dsl/model/generated/GeneratorDSL.genmodel
deleted file mode 100644
index f49274f5cbb073d052ea77596381d1b6bb4dfab2..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/model/generated/GeneratorDSL.genmodel
+++ /dev/null
@@ -1,71 +0,0 @@
-<?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" copyrightText="generated by Xtext 2.25.0" modelDirectory="/de.evoal.languages.model.generator.dsl/src-gen"
-    modelPluginID="de.evoal.languages.model.generator.dsl" forceOverwrite="true" modelName="GeneratorDSL"
-    updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
-    complianceLevel="8.0" copyrightFields="false" runtimeVersion="2.20" usedGenPackages="platform:/resource/de.evoal.languages.model.dl/model/model.genmodel#//dl platform:/resource/de.evoal.languages.model.instance/model/model.genmodel#//instance">
-  <genPackages prefix="GeneratorDSL" basePackage="de.evoal.languages.model.generator.dsl"
-      disposableProviderFactory="true" fileExtensions="generator" ecorePackage="GeneratorDSL.ecore#/">
-    <genClasses ecoreClass="GeneratorDSL.ecore#//Configuration">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference GeneratorDSL.ecore#//Configuration/uses"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference GeneratorDSL.ecore#//Configuration/generators"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference GeneratorDSL.ecore#//Configuration/functions"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference GeneratorDSL.ecore#//Configuration/statements"/>
-    </genClasses>
-    <genClasses ecoreClass="GeneratorDSL.ecore#//Use">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute GeneratorDSL.ecore#//Use/importURI"/>
-    </genClasses>
-    <genClasses ecoreClass="GeneratorDSL.ecore#//ParametrizedFunctionDefinition">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute GeneratorDSL.ecore#//ParametrizedFunctionDefinition/name"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference GeneratorDSL.ecore#//ParametrizedFunctionDefinition/definition"/>
-    </genClasses>
-    <genClasses ecoreClass="GeneratorDSL.ecore#//GeneratorDefinition">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute GeneratorDSL.ecore#//GeneratorDefinition/name"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference GeneratorDSL.ecore#//GeneratorDefinition/definition"/>
-    </genClasses>
-    <genClasses ecoreClass="GeneratorDSL.ecore#//Statement"/>
-    <genClasses ecoreClass="GeneratorDSL.ecore#//ForStatement">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute GeneratorDSL.ecore#//ForStatement/name"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference GeneratorDSL.ecore#//ForStatement/range"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference GeneratorDSL.ecore#//ForStatement/statements"/>
-    </genClasses>
-    <genClasses ecoreClass="GeneratorDSL.ecore#//Range"/>
-    <genClasses ecoreClass="GeneratorDSL.ecore#//CounterRange">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute GeneratorDSL.ecore#//CounterRange/start"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute GeneratorDSL.ecore#//CounterRange/end"/>
-    </genClasses>
-    <genClasses ecoreClass="GeneratorDSL.ecore#//Functions">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference GeneratorDSL.ecore#//Functions/functionReferences"/>
-    </genClasses>
-    <genClasses ecoreClass="GeneratorDSL.ecore#//FunctionReferences">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference GeneratorDSL.ecore#//FunctionReferences/functions"/>
-    </genClasses>
-    <genClasses ecoreClass="GeneratorDSL.ecore#//Generators">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference GeneratorDSL.ecore#//Generators/generatorReferences"/>
-    </genClasses>
-    <genClasses ecoreClass="GeneratorDSL.ecore#//GeneratorReferences">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference GeneratorDSL.ecore#//GeneratorReferences/generators"/>
-    </genClasses>
-    <genClasses ecoreClass="GeneratorDSL.ecore#//ApplyStatement">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute GeneratorDSL.ecore#//ApplyStatement/file"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute GeneratorDSL.ecore#//ApplyStatement/count"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference GeneratorDSL.ecore#//ApplyStatement/function"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference GeneratorDSL.ecore#//ApplyStatement/generator"/>
-    </genClasses>
-    <genClasses ecoreClass="GeneratorDSL.ecore#//GeneratorReference"/>
-    <genClasses ecoreClass="GeneratorDSL.ecore#//GeneratorDefinitionReference">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference GeneratorDSL.ecore#//GeneratorDefinitionReference/definition"/>
-    </genClasses>
-    <genClasses ecoreClass="GeneratorDSL.ecore#//FunctionReference"/>
-    <genClasses ecoreClass="GeneratorDSL.ecore#//FunctionDefReference"/>
-    <genClasses ecoreClass="GeneratorDSL.ecore#//LoopVariable">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference GeneratorDSL.ecore#//LoopVariable/definition"/>
-    </genClasses>
-    <genClasses ecoreClass="GeneratorDSL.ecore#//FunctionDefinitionReference">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference GeneratorDSL.ecore#//FunctionDefinitionReference/definition"/>
-    </genClasses>
-    <genClasses ecoreClass="GeneratorDSL.ecore#//ParametrizedFunctionDefinitionReference">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference GeneratorDSL.ecore#//ParametrizedFunctionDefinitionReference/definition"/>
-    </genClasses>
-  </genPackages>
-</genmodel:GenModel>
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/plugin.properties b/src/languages/de.evoal.languages.model.generator.dsl/plugin.properties
new file mode 100644
index 0000000000000000000000000000000000000000..c099e8e3ed0dcc162e2c5086e8b76afa69abd3f5
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator.dsl/plugin.properties
@@ -0,0 +1,4 @@
+# generated by Xtext 2.25.0
+
+pluginName = de.evoal.languages.model.generator.dsl
+providerName = EvoAl Project
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/plugin.xml b/src/languages/de.evoal.languages.model.generator.dsl/plugin.xml
deleted file mode 100644
index 63eed0c85c63ccb4ea0ca7c7a6c2adf4f8176c38..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/plugin.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-	<extension point="org.eclipse.emf.ecore.generated_package">
-		<package
-			uri = "http://www.evoal.de/languages/model/generator/dsl/GeneratorDSL"
-			class = "de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage"
-			genModel = "model/generated/GeneratorDSL.genmodel" />
-	</extension>
-</plugin>
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/GeneratorDSL.xtextbin b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/GeneratorDSL.xtextbin
index dd12c1678a47743f9ad863dbf14bc71acad5cbd0..6abfcfcb9a84a5ce87c3eee8d9b02328f89c9b33 100644
Binary files a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/GeneratorDSL.xtextbin and b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/GeneratorDSL.xtextbin differ
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/GeneratorDSLStandaloneSetupGenerated.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/GeneratorDSLStandaloneSetupGenerated.java
index 42254b144ee8f8042bdfe3eb40496da71a8a8277..374ebc0fac8692234ad1c2ff9c9a1499caa522d1 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/GeneratorDSLStandaloneSetupGenerated.java
+++ b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/GeneratorDSLStandaloneSetupGenerated.java
@@ -5,9 +5,7 @@ package de.evoal.languages.model.generator.dsl;
 
 import com.google.inject.Guice;
 import com.google.inject.Injector;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
 import de.evoal.languages.model.instance.dsl.InstanceLanguageStandaloneSetup;
-import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.xtext.ISetup;
 import org.eclipse.xtext.resource.IResourceFactory;
@@ -30,9 +28,6 @@ public class GeneratorDSLStandaloneSetupGenerated implements ISetup {
 	}
 	
 	public void register(Injector injector) {
-		if (!EPackage.Registry.INSTANCE.containsKey("http://www.evoal.de/languages/model/generator/dsl/GeneratorDSL")) {
-			EPackage.Registry.INSTANCE.put("http://www.evoal.de/languages/model/generator/dsl/GeneratorDSL", GeneratorDSLPackage.eINSTANCE);
-		}
 		IResourceFactory resourceFactory = injector.getInstance(IResourceFactory.class);
 		IResourceServiceProvider serviceProvider = injector.getInstance(IResourceServiceProvider.class);
 		
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/ApplyStatement.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/ApplyStatement.java
deleted file mode 100644
index 775dddf5230929038574e1d41bb05e5b602dbb45..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/ApplyStatement.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Apply Statement</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement#getFile <em>File</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement#getCount <em>Count</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement#getFunction <em>Function</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement#getGenerator <em>Generator</em>}</li>
- * </ul>
- *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getApplyStatement()
- * @model
- * @generated
- */
-public interface ApplyStatement extends Statement
-{
-  /**
-   * Returns the value of the '<em><b>File</b></em>' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>File</em>' attribute.
-   * @see #setFile(String)
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getApplyStatement_File()
-   * @model
-   * @generated
-   */
-  String getFile();
-
-  /**
-   * Sets the value of the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement#getFile <em>File</em>}' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @param value the new value of the '<em>File</em>' attribute.
-   * @see #getFile()
-   * @generated
-   */
-  void setFile(String value);
-
-  /**
-   * Returns the value of the '<em><b>Count</b></em>' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Count</em>' attribute.
-   * @see #setCount(int)
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getApplyStatement_Count()
-   * @model
-   * @generated
-   */
-  int getCount();
-
-  /**
-   * Sets the value of the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement#getCount <em>Count</em>}' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @param value the new value of the '<em>Count</em>' attribute.
-   * @see #getCount()
-   * @generated
-   */
-  void setCount(int value);
-
-  /**
-   * Returns the value of the '<em><b>Function</b></em>' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Function</em>' containment reference.
-   * @see #setFunction(FunctionReference)
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getApplyStatement_Function()
-   * @model containment="true"
-   * @generated
-   */
-  FunctionReference getFunction();
-
-  /**
-   * Sets the value of the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement#getFunction <em>Function</em>}' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @param value the new value of the '<em>Function</em>' containment reference.
-   * @see #getFunction()
-   * @generated
-   */
-  void setFunction(FunctionReference value);
-
-  /**
-   * Returns the value of the '<em><b>Generator</b></em>' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Generator</em>' containment reference.
-   * @see #setGenerator(GeneratorReference)
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getApplyStatement_Generator()
-   * @model containment="true"
-   * @generated
-   */
-  GeneratorReference getGenerator();
-
-  /**
-   * Sets the value of the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement#getGenerator <em>Generator</em>}' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @param value the new value of the '<em>Generator</em>' containment reference.
-   * @see #getGenerator()
-   * @generated
-   */
-  void setGenerator(GeneratorReference value);
-
-} // ApplyStatement
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/Configuration.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/Configuration.java
deleted file mode 100644
index 144dbe22f8fa260ceb420a64dc5716bf46bd5c21..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/Configuration.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Configuration</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.Configuration#getUses <em>Uses</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.Configuration#getGenerators <em>Generators</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.Configuration#getFunctions <em>Functions</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.Configuration#getStatements <em>Statements</em>}</li>
- * </ul>
- *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getConfiguration()
- * @model
- * @generated
- */
-public interface Configuration extends EObject
-{
-  /**
-   * Returns the value of the '<em><b>Uses</b></em>' containment reference list.
-   * The list contents are of type {@link de.evoal.languages.model.generator.dsl.generatorDSL.Use}.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Uses</em>' containment reference list.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getConfiguration_Uses()
-   * @model containment="true"
-   * @generated
-   */
-  EList<Use> getUses();
-
-  /**
-   * Returns the value of the '<em><b>Generators</b></em>' containment reference list.
-   * The list contents are of type {@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition}.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Generators</em>' containment reference list.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getConfiguration_Generators()
-   * @model containment="true"
-   * @generated
-   */
-  EList<GeneratorDefinition> getGenerators();
-
-  /**
-   * Returns the value of the '<em><b>Functions</b></em>' containment reference list.
-   * The list contents are of type {@link de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinition}.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Functions</em>' containment reference list.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getConfiguration_Functions()
-   * @model containment="true"
-   * @generated
-   */
-  EList<ParametrizedFunctionDefinition> getFunctions();
-
-  /**
-   * Returns the value of the '<em><b>Statements</b></em>' containment reference list.
-   * The list contents are of type {@link de.evoal.languages.model.generator.dsl.generatorDSL.Statement}.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Statements</em>' containment reference list.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getConfiguration_Statements()
-   * @model containment="true"
-   * @generated
-   */
-  EList<Statement> getStatements();
-
-} // Configuration
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/CounterRange.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/CounterRange.java
deleted file mode 100644
index 779c0c6e6d29f655782ba92d4b777db6279adfc9..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/CounterRange.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Counter Range</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.CounterRange#getStart <em>Start</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.CounterRange#getEnd <em>End</em>}</li>
- * </ul>
- *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getCounterRange()
- * @model
- * @generated
- */
-public interface CounterRange extends Range
-{
-  /**
-   * Returns the value of the '<em><b>Start</b></em>' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Start</em>' attribute.
-   * @see #setStart(int)
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getCounterRange_Start()
-   * @model
-   * @generated
-   */
-  int getStart();
-
-  /**
-   * Sets the value of the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.CounterRange#getStart <em>Start</em>}' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @param value the new value of the '<em>Start</em>' attribute.
-   * @see #getStart()
-   * @generated
-   */
-  void setStart(int value);
-
-  /**
-   * Returns the value of the '<em><b>End</b></em>' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>End</em>' attribute.
-   * @see #setEnd(int)
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getCounterRange_End()
-   * @model
-   * @generated
-   */
-  int getEnd();
-
-  /**
-   * Sets the value of the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.CounterRange#getEnd <em>End</em>}' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @param value the new value of the '<em>End</em>' attribute.
-   * @see #getEnd()
-   * @generated
-   */
-  void setEnd(int value);
-
-} // CounterRange
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/ForStatement.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/ForStatement.java
deleted file mode 100644
index 0e1b281f5d4e9086baef78ec4b42b76fca53cdbf..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/ForStatement.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>For Statement</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.ForStatement#getName <em>Name</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.ForStatement#getRange <em>Range</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.ForStatement#getStatements <em>Statements</em>}</li>
- * </ul>
- *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getForStatement()
- * @model
- * @generated
- */
-public interface ForStatement extends Statement
-{
-  /**
-   * Returns the value of the '<em><b>Name</b></em>' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Name</em>' attribute.
-   * @see #setName(String)
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getForStatement_Name()
-   * @model
-   * @generated
-   */
-  String getName();
-
-  /**
-   * Sets the value of the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ForStatement#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>Range</b></em>' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Range</em>' containment reference.
-   * @see #setRange(Range)
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getForStatement_Range()
-   * @model containment="true"
-   * @generated
-   */
-  Range getRange();
-
-  /**
-   * Sets the value of the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ForStatement#getRange <em>Range</em>}' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @param value the new value of the '<em>Range</em>' containment reference.
-   * @see #getRange()
-   * @generated
-   */
-  void setRange(Range value);
-
-  /**
-   * Returns the value of the '<em><b>Statements</b></em>' containment reference list.
-   * The list contents are of type {@link de.evoal.languages.model.generator.dsl.generatorDSL.Statement}.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Statements</em>' containment reference list.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getForStatement_Statements()
-   * @model containment="true"
-   * @generated
-   */
-  EList<Statement> getStatements();
-
-} // ForStatement
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/FunctionDefinitionReference.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/FunctionDefinitionReference.java
deleted file mode 100644
index 86a2725ca462ec9718685ac393106a55b2f11dd3..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/FunctionDefinitionReference.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
-
-import de.evoal.languages.model.dl.FunctionDefinition;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Function Definition Reference</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefinitionReference#getDefinition <em>Definition</em>}</li>
- * </ul>
- *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getFunctionDefinitionReference()
- * @model
- * @generated
- */
-public interface FunctionDefinitionReference extends FunctionDefReference
-{
-  /**
-   * Returns the value of the '<em><b>Definition</b></em>' reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Definition</em>' reference.
-   * @see #setDefinition(FunctionDefinition)
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getFunctionDefinitionReference_Definition()
-   * @model
-   * @generated
-   */
-  FunctionDefinition getDefinition();
-
-  /**
-   * Sets the value of the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefinitionReference#getDefinition <em>Definition</em>}' reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @param value the new value of the '<em>Definition</em>' reference.
-   * @see #getDefinition()
-   * @generated
-   */
-  void setDefinition(FunctionDefinition value);
-
-} // FunctionDefinitionReference
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/FunctionReferences.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/FunctionReferences.java
deleted file mode 100644
index eb6b039d39461fd70250ca140d904a7701f1841e..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/FunctionReferences.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Function References</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.FunctionReferences#getFunctions <em>Functions</em>}</li>
- * </ul>
- *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getFunctionReferences()
- * @model
- * @generated
- */
-public interface FunctionReferences extends EObject
-{
-  /**
-   * Returns the value of the '<em><b>Functions</b></em>' containment reference list.
-   * The list contents are of type {@link de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefReference}.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Functions</em>' containment reference list.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getFunctionReferences_Functions()
-   * @model containment="true"
-   * @generated
-   */
-  EList<FunctionDefReference> getFunctions();
-
-} // FunctionReferences
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/Functions.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/Functions.java
deleted file mode 100644
index 31e213dd768bbfff05b0298f27015eb6951c9b71..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/Functions.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Functions</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.Functions#getFunctionReferences <em>Function References</em>}</li>
- * </ul>
- *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getFunctions()
- * @model
- * @generated
- */
-public interface Functions extends Range
-{
-  /**
-   * Returns the value of the '<em><b>Function References</b></em>' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Function References</em>' containment reference.
-   * @see #setFunctionReferences(FunctionReferences)
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getFunctions_FunctionReferences()
-   * @model containment="true"
-   * @generated
-   */
-  FunctionReferences getFunctionReferences();
-
-  /**
-   * Sets the value of the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Functions#getFunctionReferences <em>Function References</em>}' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @param value the new value of the '<em>Function References</em>' containment reference.
-   * @see #getFunctionReferences()
-   * @generated
-   */
-  void setFunctionReferences(FunctionReferences value);
-
-} // Functions
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/GeneratorDSLFactory.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/GeneratorDSLFactory.java
deleted file mode 100644
index bed22c22e5b96032d2cc8934cd943d4b88ac7c5d..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/GeneratorDSLFactory.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
-
-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 de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage
- * @generated
- */
-public interface GeneratorDSLFactory extends EFactory
-{
-  /**
-   * The singleton instance of the factory.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  GeneratorDSLFactory eINSTANCE = de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLFactoryImpl.init();
-
-  /**
-   * Returns a new object of class '<em>Configuration</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>Configuration</em>'.
-   * @generated
-   */
-  Configuration createConfiguration();
-
-  /**
-   * Returns a new object of class '<em>Use</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>Use</em>'.
-   * @generated
-   */
-  Use createUse();
-
-  /**
-   * Returns a new object of class '<em>Parametrized Function Definition</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>Parametrized Function Definition</em>'.
-   * @generated
-   */
-  ParametrizedFunctionDefinition createParametrizedFunctionDefinition();
-
-  /**
-   * Returns a new object of class '<em>Generator Definition</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>Generator Definition</em>'.
-   * @generated
-   */
-  GeneratorDefinition createGeneratorDefinition();
-
-  /**
-   * Returns a new object of class '<em>Statement</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>Statement</em>'.
-   * @generated
-   */
-  Statement createStatement();
-
-  /**
-   * Returns a new object of class '<em>For Statement</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>For Statement</em>'.
-   * @generated
-   */
-  ForStatement createForStatement();
-
-  /**
-   * Returns a new object of class '<em>Range</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>Range</em>'.
-   * @generated
-   */
-  Range createRange();
-
-  /**
-   * Returns a new object of class '<em>Counter Range</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>Counter Range</em>'.
-   * @generated
-   */
-  CounterRange createCounterRange();
-
-  /**
-   * Returns a new object of class '<em>Functions</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>Functions</em>'.
-   * @generated
-   */
-  Functions createFunctions();
-
-  /**
-   * Returns a new object of class '<em>Function References</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>Function References</em>'.
-   * @generated
-   */
-  FunctionReferences createFunctionReferences();
-
-  /**
-   * Returns a new object of class '<em>Generators</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>Generators</em>'.
-   * @generated
-   */
-  Generators createGenerators();
-
-  /**
-   * Returns a new object of class '<em>Generator References</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>Generator References</em>'.
-   * @generated
-   */
-  GeneratorReferences createGeneratorReferences();
-
-  /**
-   * Returns a new object of class '<em>Apply Statement</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>Apply Statement</em>'.
-   * @generated
-   */
-  ApplyStatement createApplyStatement();
-
-  /**
-   * Returns a new object of class '<em>Generator Reference</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>Generator Reference</em>'.
-   * @generated
-   */
-  GeneratorReference createGeneratorReference();
-
-  /**
-   * Returns a new object of class '<em>Generator Definition Reference</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>Generator Definition Reference</em>'.
-   * @generated
-   */
-  GeneratorDefinitionReference createGeneratorDefinitionReference();
-
-  /**
-   * 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>Function Def Reference</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>Function Def Reference</em>'.
-   * @generated
-   */
-  FunctionDefReference createFunctionDefReference();
-
-  /**
-   * Returns a new object of class '<em>Loop Variable</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>Loop Variable</em>'.
-   * @generated
-   */
-  LoopVariable createLoopVariable();
-
-  /**
-   * Returns a new object of class '<em>Function Definition Reference</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>Function Definition Reference</em>'.
-   * @generated
-   */
-  FunctionDefinitionReference createFunctionDefinitionReference();
-
-  /**
-   * Returns a new object of class '<em>Parametrized Function Definition Reference</em>'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return a new object of class '<em>Parametrized Function Definition Reference</em>'.
-   * @generated
-   */
-  ParametrizedFunctionDefinitionReference createParametrizedFunctionDefinitionReference();
-
-  /**
-   * Returns the package supported by this factory.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the package supported by this factory.
-   * @generated
-   */
-  GeneratorDSLPackage getGeneratorDSLPackage();
-
-} //GeneratorDSLFactory
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/GeneratorDSLPackage.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/GeneratorDSLPackage.java
deleted file mode 100644
index 668442cfdb4c75788268aff0e0f4e88bcc8c36e3..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/GeneratorDSLPackage.java
+++ /dev/null
@@ -1,1594 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
-
-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 de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLFactory
- * @model kind="package"
- * @generated
- */
-public interface GeneratorDSLPackage extends EPackage
-{
-  /**
-   * The package name.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  String eNAME = "generatorDSL";
-
-  /**
-   * The package namespace URI.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  String eNS_URI = "http://www.evoal.de/languages/model/generator/dsl/GeneratorDSL";
-
-  /**
-   * The package namespace name.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  String eNS_PREFIX = "generatorDSL";
-
-  /**
-   * The singleton instance of the package.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  GeneratorDSLPackage eINSTANCE = de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl.init();
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ConfigurationImpl <em>Configuration</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.ConfigurationImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getConfiguration()
-   * @generated
-   */
-  int CONFIGURATION = 0;
-
-  /**
-   * The feature id for the '<em><b>Uses</b></em>' containment reference list.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int CONFIGURATION__USES = 0;
-
-  /**
-   * The feature id for the '<em><b>Generators</b></em>' containment reference list.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int CONFIGURATION__GENERATORS = 1;
-
-  /**
-   * The feature id for the '<em><b>Functions</b></em>' containment reference list.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int CONFIGURATION__FUNCTIONS = 2;
-
-  /**
-   * The feature id for the '<em><b>Statements</b></em>' containment reference list.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int CONFIGURATION__STATEMENTS = 3;
-
-  /**
-   * The number of structural features of the '<em>Configuration</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int CONFIGURATION_FEATURE_COUNT = 4;
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.UseImpl <em>Use</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.UseImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getUse()
-   * @generated
-   */
-  int USE = 1;
-
-  /**
-   * The feature id for the '<em><b>Import URI</b></em>' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int USE__IMPORT_URI = 0;
-
-  /**
-   * The number of structural features of the '<em>Use</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int USE_FEATURE_COUNT = 1;
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ParametrizedFunctionDefinitionImpl <em>Parametrized Function Definition</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.ParametrizedFunctionDefinitionImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getParametrizedFunctionDefinition()
-   * @generated
-   */
-  int PARAMETRIZED_FUNCTION_DEFINITION = 2;
-
-  /**
-   * The feature id for the '<em><b>Name</b></em>' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int PARAMETRIZED_FUNCTION_DEFINITION__NAME = 0;
-
-  /**
-   * The feature id for the '<em><b>Definition</b></em>' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION = 1;
-
-  /**
-   * The number of structural features of the '<em>Parametrized Function Definition</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int PARAMETRIZED_FUNCTION_DEFINITION_FEATURE_COUNT = 2;
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDefinitionImpl <em>Generator Definition</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDefinitionImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getGeneratorDefinition()
-   * @generated
-   */
-  int GENERATOR_DEFINITION = 3;
-
-  /**
-   * The feature id for the '<em><b>Name</b></em>' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int GENERATOR_DEFINITION__NAME = 0;
-
-  /**
-   * The feature id for the '<em><b>Definition</b></em>' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int GENERATOR_DEFINITION__DEFINITION = 1;
-
-  /**
-   * The number of structural features of the '<em>Generator Definition</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int GENERATOR_DEFINITION_FEATURE_COUNT = 2;
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.StatementImpl <em>Statement</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.StatementImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getStatement()
-   * @generated
-   */
-  int STATEMENT = 4;
-
-  /**
-   * The number of structural features of the '<em>Statement</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int STATEMENT_FEATURE_COUNT = 0;
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ForStatementImpl <em>For Statement</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.ForStatementImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getForStatement()
-   * @generated
-   */
-  int FOR_STATEMENT = 5;
-
-  /**
-   * The feature id for the '<em><b>Name</b></em>' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int FOR_STATEMENT__NAME = STATEMENT_FEATURE_COUNT + 0;
-
-  /**
-   * The feature id for the '<em><b>Range</b></em>' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int FOR_STATEMENT__RANGE = STATEMENT_FEATURE_COUNT + 1;
-
-  /**
-   * The feature id for the '<em><b>Statements</b></em>' containment reference list.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int FOR_STATEMENT__STATEMENTS = STATEMENT_FEATURE_COUNT + 2;
-
-  /**
-   * The number of structural features of the '<em>For Statement</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int FOR_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 3;
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.RangeImpl <em>Range</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.RangeImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getRange()
-   * @generated
-   */
-  int RANGE = 6;
-
-  /**
-   * The number of structural features of the '<em>Range</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int RANGE_FEATURE_COUNT = 0;
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.CounterRangeImpl <em>Counter Range</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.CounterRangeImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getCounterRange()
-   * @generated
-   */
-  int COUNTER_RANGE = 7;
-
-  /**
-   * The feature id for the '<em><b>Start</b></em>' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int COUNTER_RANGE__START = RANGE_FEATURE_COUNT + 0;
-
-  /**
-   * The feature id for the '<em><b>End</b></em>' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int COUNTER_RANGE__END = RANGE_FEATURE_COUNT + 1;
-
-  /**
-   * The number of structural features of the '<em>Counter Range</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int COUNTER_RANGE_FEATURE_COUNT = RANGE_FEATURE_COUNT + 2;
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionsImpl <em>Functions</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionsImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getFunctions()
-   * @generated
-   */
-  int FUNCTIONS = 8;
-
-  /**
-   * The feature id for the '<em><b>Function References</b></em>' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int FUNCTIONS__FUNCTION_REFERENCES = RANGE_FEATURE_COUNT + 0;
-
-  /**
-   * The number of structural features of the '<em>Functions</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int FUNCTIONS_FEATURE_COUNT = RANGE_FEATURE_COUNT + 1;
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionReferencesImpl <em>Function References</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionReferencesImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getFunctionReferences()
-   * @generated
-   */
-  int FUNCTION_REFERENCES = 9;
-
-  /**
-   * The feature id for the '<em><b>Functions</b></em>' containment reference list.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int FUNCTION_REFERENCES__FUNCTIONS = 0;
-
-  /**
-   * The number of structural features of the '<em>Function References</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int FUNCTION_REFERENCES_FEATURE_COUNT = 1;
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorsImpl <em>Generators</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorsImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getGenerators()
-   * @generated
-   */
-  int GENERATORS = 10;
-
-  /**
-   * The feature id for the '<em><b>Generator References</b></em>' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int GENERATORS__GENERATOR_REFERENCES = RANGE_FEATURE_COUNT + 0;
-
-  /**
-   * The number of structural features of the '<em>Generators</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int GENERATORS_FEATURE_COUNT = RANGE_FEATURE_COUNT + 1;
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorReferencesImpl <em>Generator References</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorReferencesImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getGeneratorReferences()
-   * @generated
-   */
-  int GENERATOR_REFERENCES = 11;
-
-  /**
-   * The feature id for the '<em><b>Generators</b></em>' reference list.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int GENERATOR_REFERENCES__GENERATORS = 0;
-
-  /**
-   * The number of structural features of the '<em>Generator References</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int GENERATOR_REFERENCES_FEATURE_COUNT = 1;
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ApplyStatementImpl <em>Apply Statement</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.ApplyStatementImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getApplyStatement()
-   * @generated
-   */
-  int APPLY_STATEMENT = 12;
-
-  /**
-   * The feature id for the '<em><b>File</b></em>' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int APPLY_STATEMENT__FILE = STATEMENT_FEATURE_COUNT + 0;
-
-  /**
-   * The feature id for the '<em><b>Count</b></em>' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int APPLY_STATEMENT__COUNT = STATEMENT_FEATURE_COUNT + 1;
-
-  /**
-   * The feature id for the '<em><b>Function</b></em>' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int APPLY_STATEMENT__FUNCTION = STATEMENT_FEATURE_COUNT + 2;
-
-  /**
-   * The feature id for the '<em><b>Generator</b></em>' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int APPLY_STATEMENT__GENERATOR = STATEMENT_FEATURE_COUNT + 3;
-
-  /**
-   * The number of structural features of the '<em>Apply Statement</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int APPLY_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 4;
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorReferenceImpl <em>Generator Reference</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorReferenceImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getGeneratorReference()
-   * @generated
-   */
-  int GENERATOR_REFERENCE = 13;
-
-  /**
-   * The number of structural features of the '<em>Generator Reference</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int GENERATOR_REFERENCE_FEATURE_COUNT = 0;
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDefinitionReferenceImpl <em>Generator Definition Reference</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDefinitionReferenceImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getGeneratorDefinitionReference()
-   * @generated
-   */
-  int GENERATOR_DEFINITION_REFERENCE = 14;
-
-  /**
-   * The feature id for the '<em><b>Definition</b></em>' reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int GENERATOR_DEFINITION_REFERENCE__DEFINITION = GENERATOR_REFERENCE_FEATURE_COUNT + 0;
-
-  /**
-   * The number of structural features of the '<em>Generator Definition Reference</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int GENERATOR_DEFINITION_REFERENCE_FEATURE_COUNT = GENERATOR_REFERENCE_FEATURE_COUNT + 1;
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionReferenceImpl <em>Function Reference</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionReferenceImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getFunctionReference()
-   * @generated
-   */
-  int FUNCTION_REFERENCE = 15;
-
-  /**
-   * 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 = 0;
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionDefReferenceImpl <em>Function Def Reference</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionDefReferenceImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getFunctionDefReference()
-   * @generated
-   */
-  int FUNCTION_DEF_REFERENCE = 16;
-
-  /**
-   * The number of structural features of the '<em>Function Def Reference</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int FUNCTION_DEF_REFERENCE_FEATURE_COUNT = FUNCTION_REFERENCE_FEATURE_COUNT + 0;
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.LoopVariableImpl <em>Loop Variable</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.LoopVariableImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getLoopVariable()
-   * @generated
-   */
-  int LOOP_VARIABLE = 17;
-
-  /**
-   * The feature id for the '<em><b>Definition</b></em>' reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int LOOP_VARIABLE__DEFINITION = GENERATOR_REFERENCE_FEATURE_COUNT + 0;
-
-  /**
-   * The number of structural features of the '<em>Loop Variable</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int LOOP_VARIABLE_FEATURE_COUNT = GENERATOR_REFERENCE_FEATURE_COUNT + 1;
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionDefinitionReferenceImpl <em>Function Definition Reference</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionDefinitionReferenceImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getFunctionDefinitionReference()
-   * @generated
-   */
-  int FUNCTION_DEFINITION_REFERENCE = 18;
-
-  /**
-   * The feature id for the '<em><b>Definition</b></em>' reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int FUNCTION_DEFINITION_REFERENCE__DEFINITION = FUNCTION_DEF_REFERENCE_FEATURE_COUNT + 0;
-
-  /**
-   * The number of structural features of the '<em>Function Definition Reference</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int FUNCTION_DEFINITION_REFERENCE_FEATURE_COUNT = FUNCTION_DEF_REFERENCE_FEATURE_COUNT + 1;
-
-  /**
-   * The meta object id for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ParametrizedFunctionDefinitionReferenceImpl <em>Parametrized Function Definition Reference</em>}' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.ParametrizedFunctionDefinitionReferenceImpl
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getParametrizedFunctionDefinitionReference()
-   * @generated
-   */
-  int PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE = 19;
-
-  /**
-   * The feature id for the '<em><b>Definition</b></em>' reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION = FUNCTION_DEF_REFERENCE_FEATURE_COUNT + 0;
-
-  /**
-   * The number of structural features of the '<em>Parametrized Function Definition Reference</em>' class.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   * @ordered
-   */
-  int PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE_FEATURE_COUNT = FUNCTION_DEF_REFERENCE_FEATURE_COUNT + 1;
-
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Configuration <em>Configuration</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Configuration</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.Configuration
-   * @generated
-   */
-  EClass getConfiguration();
-
-  /**
-   * Returns the meta object for the containment reference list '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Configuration#getUses <em>Uses</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the containment reference list '<em>Uses</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.Configuration#getUses()
-   * @see #getConfiguration()
-   * @generated
-   */
-  EReference getConfiguration_Uses();
-
-  /**
-   * Returns the meta object for the containment reference list '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Configuration#getGenerators <em>Generators</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the containment reference list '<em>Generators</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.Configuration#getGenerators()
-   * @see #getConfiguration()
-   * @generated
-   */
-  EReference getConfiguration_Generators();
-
-  /**
-   * Returns the meta object for the containment reference list '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Configuration#getFunctions <em>Functions</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the containment reference list '<em>Functions</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.Configuration#getFunctions()
-   * @see #getConfiguration()
-   * @generated
-   */
-  EReference getConfiguration_Functions();
-
-  /**
-   * Returns the meta object for the containment reference list '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Configuration#getStatements <em>Statements</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the containment reference list '<em>Statements</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.Configuration#getStatements()
-   * @see #getConfiguration()
-   * @generated
-   */
-  EReference getConfiguration_Statements();
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Use <em>Use</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Use</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.Use
-   * @generated
-   */
-  EClass getUse();
-
-  /**
-   * Returns the meta object for the attribute '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Use#getImportURI <em>Import URI</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the attribute '<em>Import URI</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.Use#getImportURI()
-   * @see #getUse()
-   * @generated
-   */
-  EAttribute getUse_ImportURI();
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinition <em>Parametrized Function Definition</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Parametrized Function Definition</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinition
-   * @generated
-   */
-  EClass getParametrizedFunctionDefinition();
-
-  /**
-   * Returns the meta object for the attribute '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinition#getName <em>Name</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the attribute '<em>Name</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinition#getName()
-   * @see #getParametrizedFunctionDefinition()
-   * @generated
-   */
-  EAttribute getParametrizedFunctionDefinition_Name();
-
-  /**
-   * Returns the meta object for the containment reference '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinition#getDefinition <em>Definition</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the containment reference '<em>Definition</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinition#getDefinition()
-   * @see #getParametrizedFunctionDefinition()
-   * @generated
-   */
-  EReference getParametrizedFunctionDefinition_Definition();
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition <em>Generator Definition</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Generator Definition</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition
-   * @generated
-   */
-  EClass getGeneratorDefinition();
-
-  /**
-   * Returns the meta object for the attribute '{@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition#getName <em>Name</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the attribute '<em>Name</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition#getName()
-   * @see #getGeneratorDefinition()
-   * @generated
-   */
-  EAttribute getGeneratorDefinition_Name();
-
-  /**
-   * Returns the meta object for the containment reference '{@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition#getDefinition <em>Definition</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the containment reference '<em>Definition</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition#getDefinition()
-   * @see #getGeneratorDefinition()
-   * @generated
-   */
-  EReference getGeneratorDefinition_Definition();
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Statement <em>Statement</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Statement</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.Statement
-   * @generated
-   */
-  EClass getStatement();
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ForStatement <em>For Statement</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>For Statement</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.ForStatement
-   * @generated
-   */
-  EClass getForStatement();
-
-  /**
-   * Returns the meta object for the attribute '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ForStatement#getName <em>Name</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the attribute '<em>Name</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.ForStatement#getName()
-   * @see #getForStatement()
-   * @generated
-   */
-  EAttribute getForStatement_Name();
-
-  /**
-   * Returns the meta object for the containment reference '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ForStatement#getRange <em>Range</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the containment reference '<em>Range</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.ForStatement#getRange()
-   * @see #getForStatement()
-   * @generated
-   */
-  EReference getForStatement_Range();
-
-  /**
-   * Returns the meta object for the containment reference list '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ForStatement#getStatements <em>Statements</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the containment reference list '<em>Statements</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.ForStatement#getStatements()
-   * @see #getForStatement()
-   * @generated
-   */
-  EReference getForStatement_Statements();
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Range <em>Range</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Range</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.Range
-   * @generated
-   */
-  EClass getRange();
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.CounterRange <em>Counter Range</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Counter Range</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.CounterRange
-   * @generated
-   */
-  EClass getCounterRange();
-
-  /**
-   * Returns the meta object for the attribute '{@link de.evoal.languages.model.generator.dsl.generatorDSL.CounterRange#getStart <em>Start</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the attribute '<em>Start</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.CounterRange#getStart()
-   * @see #getCounterRange()
-   * @generated
-   */
-  EAttribute getCounterRange_Start();
-
-  /**
-   * Returns the meta object for the attribute '{@link de.evoal.languages.model.generator.dsl.generatorDSL.CounterRange#getEnd <em>End</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the attribute '<em>End</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.CounterRange#getEnd()
-   * @see #getCounterRange()
-   * @generated
-   */
-  EAttribute getCounterRange_End();
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Functions <em>Functions</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Functions</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.Functions
-   * @generated
-   */
-  EClass getFunctions();
-
-  /**
-   * Returns the meta object for the containment reference '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Functions#getFunctionReferences <em>Function References</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the containment reference '<em>Function References</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.Functions#getFunctionReferences()
-   * @see #getFunctions()
-   * @generated
-   */
-  EReference getFunctions_FunctionReferences();
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.FunctionReferences <em>Function References</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Function References</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.FunctionReferences
-   * @generated
-   */
-  EClass getFunctionReferences();
-
-  /**
-   * Returns the meta object for the containment reference list '{@link de.evoal.languages.model.generator.dsl.generatorDSL.FunctionReferences#getFunctions <em>Functions</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the containment reference list '<em>Functions</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.FunctionReferences#getFunctions()
-   * @see #getFunctionReferences()
-   * @generated
-   */
-  EReference getFunctionReferences_Functions();
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Generators <em>Generators</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Generators</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.Generators
-   * @generated
-   */
-  EClass getGenerators();
-
-  /**
-   * Returns the meta object for the containment reference '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Generators#getGeneratorReferences <em>Generator References</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the containment reference '<em>Generator References</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.Generators#getGeneratorReferences()
-   * @see #getGenerators()
-   * @generated
-   */
-  EReference getGenerators_GeneratorReferences();
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorReferences <em>Generator References</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Generator References</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorReferences
-   * @generated
-   */
-  EClass getGeneratorReferences();
-
-  /**
-   * Returns the meta object for the reference list '{@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorReferences#getGenerators <em>Generators</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the reference list '<em>Generators</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorReferences#getGenerators()
-   * @see #getGeneratorReferences()
-   * @generated
-   */
-  EReference getGeneratorReferences_Generators();
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement <em>Apply Statement</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Apply Statement</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement
-   * @generated
-   */
-  EClass getApplyStatement();
-
-  /**
-   * Returns the meta object for the attribute '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement#getFile <em>File</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the attribute '<em>File</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement#getFile()
-   * @see #getApplyStatement()
-   * @generated
-   */
-  EAttribute getApplyStatement_File();
-
-  /**
-   * Returns the meta object for the attribute '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement#getCount <em>Count</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the attribute '<em>Count</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement#getCount()
-   * @see #getApplyStatement()
-   * @generated
-   */
-  EAttribute getApplyStatement_Count();
-
-  /**
-   * Returns the meta object for the containment reference '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement#getFunction <em>Function</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the containment reference '<em>Function</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement#getFunction()
-   * @see #getApplyStatement()
-   * @generated
-   */
-  EReference getApplyStatement_Function();
-
-  /**
-   * Returns the meta object for the containment reference '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement#getGenerator <em>Generator</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the containment reference '<em>Generator</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement#getGenerator()
-   * @see #getApplyStatement()
-   * @generated
-   */
-  EReference getApplyStatement_Generator();
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorReference <em>Generator Reference</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Generator Reference</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorReference
-   * @generated
-   */
-  EClass getGeneratorReference();
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinitionReference <em>Generator Definition Reference</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Generator Definition Reference</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinitionReference
-   * @generated
-   */
-  EClass getGeneratorDefinitionReference();
-
-  /**
-   * Returns the meta object for the reference '{@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinitionReference#getDefinition <em>Definition</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the reference '<em>Definition</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinitionReference#getDefinition()
-   * @see #getGeneratorDefinitionReference()
-   * @generated
-   */
-  EReference getGeneratorDefinitionReference_Definition();
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.FunctionReference <em>Function Reference</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Function Reference</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.FunctionReference
-   * @generated
-   */
-  EClass getFunctionReference();
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefReference <em>Function Def Reference</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Function Def Reference</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefReference
-   * @generated
-   */
-  EClass getFunctionDefReference();
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.LoopVariable <em>Loop Variable</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Loop Variable</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.LoopVariable
-   * @generated
-   */
-  EClass getLoopVariable();
-
-  /**
-   * Returns the meta object for the reference '{@link de.evoal.languages.model.generator.dsl.generatorDSL.LoopVariable#getDefinition <em>Definition</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the reference '<em>Definition</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.LoopVariable#getDefinition()
-   * @see #getLoopVariable()
-   * @generated
-   */
-  EReference getLoopVariable_Definition();
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefinitionReference <em>Function Definition Reference</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Function Definition Reference</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefinitionReference
-   * @generated
-   */
-  EClass getFunctionDefinitionReference();
-
-  /**
-   * Returns the meta object for the reference '{@link de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefinitionReference#getDefinition <em>Definition</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the reference '<em>Definition</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefinitionReference#getDefinition()
-   * @see #getFunctionDefinitionReference()
-   * @generated
-   */
-  EReference getFunctionDefinitionReference_Definition();
-
-  /**
-   * Returns the meta object for class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinitionReference <em>Parametrized Function Definition Reference</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for class '<em>Parametrized Function Definition Reference</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinitionReference
-   * @generated
-   */
-  EClass getParametrizedFunctionDefinitionReference();
-
-  /**
-   * Returns the meta object for the reference '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinitionReference#getDefinition <em>Definition</em>}'.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the meta object for the reference '<em>Definition</em>'.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinitionReference#getDefinition()
-   * @see #getParametrizedFunctionDefinitionReference()
-   * @generated
-   */
-  EReference getParametrizedFunctionDefinitionReference_Definition();
-
-  /**
-   * 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
-   */
-  GeneratorDSLFactory getGeneratorDSLFactory();
-
-  /**
-   * <!-- 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 de.evoal.languages.model.generator.dsl.generatorDSL.impl.ConfigurationImpl <em>Configuration</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.ConfigurationImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getConfiguration()
-     * @generated
-     */
-    EClass CONFIGURATION = eINSTANCE.getConfiguration();
-
-    /**
-     * The meta object literal for the '<em><b>Uses</b></em>' containment reference list feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EReference CONFIGURATION__USES = eINSTANCE.getConfiguration_Uses();
-
-    /**
-     * The meta object literal for the '<em><b>Generators</b></em>' containment reference list feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EReference CONFIGURATION__GENERATORS = eINSTANCE.getConfiguration_Generators();
-
-    /**
-     * The meta object literal for the '<em><b>Functions</b></em>' containment reference list feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EReference CONFIGURATION__FUNCTIONS = eINSTANCE.getConfiguration_Functions();
-
-    /**
-     * The meta object literal for the '<em><b>Statements</b></em>' containment reference list feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EReference CONFIGURATION__STATEMENTS = eINSTANCE.getConfiguration_Statements();
-
-    /**
-     * The meta object literal for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.UseImpl <em>Use</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.UseImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getUse()
-     * @generated
-     */
-    EClass USE = eINSTANCE.getUse();
-
-    /**
-     * The meta object literal for the '<em><b>Import URI</b></em>' attribute feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EAttribute USE__IMPORT_URI = eINSTANCE.getUse_ImportURI();
-
-    /**
-     * The meta object literal for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ParametrizedFunctionDefinitionImpl <em>Parametrized Function Definition</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.ParametrizedFunctionDefinitionImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getParametrizedFunctionDefinition()
-     * @generated
-     */
-    EClass PARAMETRIZED_FUNCTION_DEFINITION = eINSTANCE.getParametrizedFunctionDefinition();
-
-    /**
-     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EAttribute PARAMETRIZED_FUNCTION_DEFINITION__NAME = eINSTANCE.getParametrizedFunctionDefinition_Name();
-
-    /**
-     * The meta object literal for the '<em><b>Definition</b></em>' containment reference feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EReference PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION = eINSTANCE.getParametrizedFunctionDefinition_Definition();
-
-    /**
-     * The meta object literal for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDefinitionImpl <em>Generator Definition</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDefinitionImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getGeneratorDefinition()
-     * @generated
-     */
-    EClass GENERATOR_DEFINITION = eINSTANCE.getGeneratorDefinition();
-
-    /**
-     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EAttribute GENERATOR_DEFINITION__NAME = eINSTANCE.getGeneratorDefinition_Name();
-
-    /**
-     * The meta object literal for the '<em><b>Definition</b></em>' containment reference feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EReference GENERATOR_DEFINITION__DEFINITION = eINSTANCE.getGeneratorDefinition_Definition();
-
-    /**
-     * The meta object literal for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.StatementImpl <em>Statement</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.StatementImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getStatement()
-     * @generated
-     */
-    EClass STATEMENT = eINSTANCE.getStatement();
-
-    /**
-     * The meta object literal for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ForStatementImpl <em>For Statement</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.ForStatementImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getForStatement()
-     * @generated
-     */
-    EClass FOR_STATEMENT = eINSTANCE.getForStatement();
-
-    /**
-     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EAttribute FOR_STATEMENT__NAME = eINSTANCE.getForStatement_Name();
-
-    /**
-     * The meta object literal for the '<em><b>Range</b></em>' containment reference feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EReference FOR_STATEMENT__RANGE = eINSTANCE.getForStatement_Range();
-
-    /**
-     * The meta object literal for the '<em><b>Statements</b></em>' containment reference list feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EReference FOR_STATEMENT__STATEMENTS = eINSTANCE.getForStatement_Statements();
-
-    /**
-     * The meta object literal for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.RangeImpl <em>Range</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.RangeImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getRange()
-     * @generated
-     */
-    EClass RANGE = eINSTANCE.getRange();
-
-    /**
-     * The meta object literal for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.CounterRangeImpl <em>Counter Range</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.CounterRangeImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getCounterRange()
-     * @generated
-     */
-    EClass COUNTER_RANGE = eINSTANCE.getCounterRange();
-
-    /**
-     * The meta object literal for the '<em><b>Start</b></em>' attribute feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EAttribute COUNTER_RANGE__START = eINSTANCE.getCounterRange_Start();
-
-    /**
-     * The meta object literal for the '<em><b>End</b></em>' attribute feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EAttribute COUNTER_RANGE__END = eINSTANCE.getCounterRange_End();
-
-    /**
-     * The meta object literal for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionsImpl <em>Functions</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionsImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getFunctions()
-     * @generated
-     */
-    EClass FUNCTIONS = eINSTANCE.getFunctions();
-
-    /**
-     * The meta object literal for the '<em><b>Function References</b></em>' containment reference feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EReference FUNCTIONS__FUNCTION_REFERENCES = eINSTANCE.getFunctions_FunctionReferences();
-
-    /**
-     * The meta object literal for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionReferencesImpl <em>Function References</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionReferencesImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getFunctionReferences()
-     * @generated
-     */
-    EClass FUNCTION_REFERENCES = eINSTANCE.getFunctionReferences();
-
-    /**
-     * The meta object literal for the '<em><b>Functions</b></em>' containment reference list feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EReference FUNCTION_REFERENCES__FUNCTIONS = eINSTANCE.getFunctionReferences_Functions();
-
-    /**
-     * The meta object literal for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorsImpl <em>Generators</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorsImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getGenerators()
-     * @generated
-     */
-    EClass GENERATORS = eINSTANCE.getGenerators();
-
-    /**
-     * The meta object literal for the '<em><b>Generator References</b></em>' containment reference feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EReference GENERATORS__GENERATOR_REFERENCES = eINSTANCE.getGenerators_GeneratorReferences();
-
-    /**
-     * The meta object literal for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorReferencesImpl <em>Generator References</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorReferencesImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getGeneratorReferences()
-     * @generated
-     */
-    EClass GENERATOR_REFERENCES = eINSTANCE.getGeneratorReferences();
-
-    /**
-     * The meta object literal for the '<em><b>Generators</b></em>' reference list feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EReference GENERATOR_REFERENCES__GENERATORS = eINSTANCE.getGeneratorReferences_Generators();
-
-    /**
-     * The meta object literal for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ApplyStatementImpl <em>Apply Statement</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.ApplyStatementImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getApplyStatement()
-     * @generated
-     */
-    EClass APPLY_STATEMENT = eINSTANCE.getApplyStatement();
-
-    /**
-     * The meta object literal for the '<em><b>File</b></em>' attribute feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EAttribute APPLY_STATEMENT__FILE = eINSTANCE.getApplyStatement_File();
-
-    /**
-     * The meta object literal for the '<em><b>Count</b></em>' attribute feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EAttribute APPLY_STATEMENT__COUNT = eINSTANCE.getApplyStatement_Count();
-
-    /**
-     * The meta object literal for the '<em><b>Function</b></em>' containment reference feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EReference APPLY_STATEMENT__FUNCTION = eINSTANCE.getApplyStatement_Function();
-
-    /**
-     * The meta object literal for the '<em><b>Generator</b></em>' containment reference feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EReference APPLY_STATEMENT__GENERATOR = eINSTANCE.getApplyStatement_Generator();
-
-    /**
-     * The meta object literal for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorReferenceImpl <em>Generator Reference</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorReferenceImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getGeneratorReference()
-     * @generated
-     */
-    EClass GENERATOR_REFERENCE = eINSTANCE.getGeneratorReference();
-
-    /**
-     * The meta object literal for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDefinitionReferenceImpl <em>Generator Definition Reference</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDefinitionReferenceImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getGeneratorDefinitionReference()
-     * @generated
-     */
-    EClass GENERATOR_DEFINITION_REFERENCE = eINSTANCE.getGeneratorDefinitionReference();
-
-    /**
-     * The meta object literal for the '<em><b>Definition</b></em>' reference feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EReference GENERATOR_DEFINITION_REFERENCE__DEFINITION = eINSTANCE.getGeneratorDefinitionReference_Definition();
-
-    /**
-     * The meta object literal for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionReferenceImpl <em>Function Reference</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionReferenceImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getFunctionReference()
-     * @generated
-     */
-    EClass FUNCTION_REFERENCE = eINSTANCE.getFunctionReference();
-
-    /**
-     * The meta object literal for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionDefReferenceImpl <em>Function Def Reference</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionDefReferenceImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getFunctionDefReference()
-     * @generated
-     */
-    EClass FUNCTION_DEF_REFERENCE = eINSTANCE.getFunctionDefReference();
-
-    /**
-     * The meta object literal for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.LoopVariableImpl <em>Loop Variable</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.LoopVariableImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getLoopVariable()
-     * @generated
-     */
-    EClass LOOP_VARIABLE = eINSTANCE.getLoopVariable();
-
-    /**
-     * The meta object literal for the '<em><b>Definition</b></em>' reference feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EReference LOOP_VARIABLE__DEFINITION = eINSTANCE.getLoopVariable_Definition();
-
-    /**
-     * The meta object literal for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionDefinitionReferenceImpl <em>Function Definition Reference</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionDefinitionReferenceImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getFunctionDefinitionReference()
-     * @generated
-     */
-    EClass FUNCTION_DEFINITION_REFERENCE = eINSTANCE.getFunctionDefinitionReference();
-
-    /**
-     * The meta object literal for the '<em><b>Definition</b></em>' reference feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EReference FUNCTION_DEFINITION_REFERENCE__DEFINITION = eINSTANCE.getFunctionDefinitionReference_Definition();
-
-    /**
-     * The meta object literal for the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ParametrizedFunctionDefinitionReferenceImpl <em>Parametrized Function Definition Reference</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.ParametrizedFunctionDefinitionReferenceImpl
-     * @see de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDSLPackageImpl#getParametrizedFunctionDefinitionReference()
-     * @generated
-     */
-    EClass PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE = eINSTANCE.getParametrizedFunctionDefinitionReference();
-
-    /**
-     * The meta object literal for the '<em><b>Definition</b></em>' reference feature.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    EReference PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION = eINSTANCE.getParametrizedFunctionDefinitionReference_Definition();
-
-  }
-
-} //GeneratorDSLPackage
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/GeneratorDefinition.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/GeneratorDefinition.java
deleted file mode 100644
index 0dcf7cce6322b50f02e6bbdb0eb3a430d02062da..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/GeneratorDefinition.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
-
-import de.evoal.languages.model.instance.Instance;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Generator Definition</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition#getName <em>Name</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition#getDefinition <em>Definition</em>}</li>
- * </ul>
- *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getGeneratorDefinition()
- * @model
- * @generated
- */
-public interface GeneratorDefinition extends EObject
-{
-  /**
-   * Returns the value of the '<em><b>Name</b></em>' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Name</em>' attribute.
-   * @see #setName(String)
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getGeneratorDefinition_Name()
-   * @model
-   * @generated
-   */
-  String getName();
-
-  /**
-   * Sets the value of the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition#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>Definition</b></em>' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Definition</em>' containment reference.
-   * @see #setDefinition(Instance)
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getGeneratorDefinition_Definition()
-   * @model containment="true"
-   * @generated
-   */
-  Instance getDefinition();
-
-  /**
-   * Sets the value of the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition#getDefinition <em>Definition</em>}' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @param value the new value of the '<em>Definition</em>' containment reference.
-   * @see #getDefinition()
-   * @generated
-   */
-  void setDefinition(Instance value);
-
-} // GeneratorDefinition
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/GeneratorDefinitionReference.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/GeneratorDefinitionReference.java
deleted file mode 100644
index 101b0ab6b2e6b48c566bcdbafa5d44ab1512b384..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/GeneratorDefinitionReference.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Generator Definition Reference</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinitionReference#getDefinition <em>Definition</em>}</li>
- * </ul>
- *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getGeneratorDefinitionReference()
- * @model
- * @generated
- */
-public interface GeneratorDefinitionReference extends GeneratorReference
-{
-  /**
-   * Returns the value of the '<em><b>Definition</b></em>' reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Definition</em>' reference.
-   * @see #setDefinition(GeneratorDefinition)
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getGeneratorDefinitionReference_Definition()
-   * @model
-   * @generated
-   */
-  GeneratorDefinition getDefinition();
-
-  /**
-   * Sets the value of the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinitionReference#getDefinition <em>Definition</em>}' reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @param value the new value of the '<em>Definition</em>' reference.
-   * @see #getDefinition()
-   * @generated
-   */
-  void setDefinition(GeneratorDefinition value);
-
-} // GeneratorDefinitionReference
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/GeneratorReference.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/GeneratorReference.java
deleted file mode 100644
index 56a48845cd4f69c8c1a0f28c4d80f5526e4b3481..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/GeneratorReference.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Generator Reference</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getGeneratorReference()
- * @model
- * @generated
- */
-public interface GeneratorReference extends EObject
-{
-} // GeneratorReference
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/GeneratorReferences.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/GeneratorReferences.java
deleted file mode 100644
index 23982c2317af13bcecbbe840c7052902e2de357b..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/GeneratorReferences.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Generator References</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorReferences#getGenerators <em>Generators</em>}</li>
- * </ul>
- *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getGeneratorReferences()
- * @model
- * @generated
- */
-public interface GeneratorReferences extends EObject
-{
-  /**
-   * Returns the value of the '<em><b>Generators</b></em>' reference list.
-   * The list contents are of type {@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition}.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Generators</em>' reference list.
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getGeneratorReferences_Generators()
-   * @model
-   * @generated
-   */
-  EList<GeneratorDefinition> getGenerators();
-
-} // GeneratorReferences
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/Generators.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/Generators.java
deleted file mode 100644
index 43e7c664ab159ec01150bf73746fafdd0e7c2d72..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/Generators.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Generators</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.Generators#getGeneratorReferences <em>Generator References</em>}</li>
- * </ul>
- *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getGenerators()
- * @model
- * @generated
- */
-public interface Generators extends Range
-{
-  /**
-   * Returns the value of the '<em><b>Generator References</b></em>' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Generator References</em>' containment reference.
-   * @see #setGeneratorReferences(GeneratorReferences)
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getGenerators_GeneratorReferences()
-   * @model containment="true"
-   * @generated
-   */
-  GeneratorReferences getGeneratorReferences();
-
-  /**
-   * Sets the value of the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Generators#getGeneratorReferences <em>Generator References</em>}' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @param value the new value of the '<em>Generator References</em>' containment reference.
-   * @see #getGeneratorReferences()
-   * @generated
-   */
-  void setGeneratorReferences(GeneratorReferences value);
-
-} // Generators
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/LoopVariable.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/LoopVariable.java
deleted file mode 100644
index 783d9ae728d9fbcbb89867f76de1cf8f8fbd6631..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/LoopVariable.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Loop Variable</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.LoopVariable#getDefinition <em>Definition</em>}</li>
- * </ul>
- *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getLoopVariable()
- * @model
- * @generated
- */
-public interface LoopVariable extends GeneratorReference, FunctionReference
-{
-  /**
-   * Returns the value of the '<em><b>Definition</b></em>' reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Definition</em>' reference.
-   * @see #setDefinition(ForStatement)
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getLoopVariable_Definition()
-   * @model
-   * @generated
-   */
-  ForStatement getDefinition();
-
-  /**
-   * Sets the value of the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.LoopVariable#getDefinition <em>Definition</em>}' reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @param value the new value of the '<em>Definition</em>' reference.
-   * @see #getDefinition()
-   * @generated
-   */
-  void setDefinition(ForStatement value);
-
-} // LoopVariable
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/ParametrizedFunctionDefinition.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/ParametrizedFunctionDefinition.java
deleted file mode 100644
index 228b20085fc9f717beae336c0716c7ab8efa7082..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/ParametrizedFunctionDefinition.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
-
-import de.evoal.languages.model.instance.Instance;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Parametrized Function Definition</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinition#getName <em>Name</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinition#getDefinition <em>Definition</em>}</li>
- * </ul>
- *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getParametrizedFunctionDefinition()
- * @model
- * @generated
- */
-public interface ParametrizedFunctionDefinition extends EObject
-{
-  /**
-   * Returns the value of the '<em><b>Name</b></em>' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Name</em>' attribute.
-   * @see #setName(String)
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getParametrizedFunctionDefinition_Name()
-   * @model
-   * @generated
-   */
-  String getName();
-
-  /**
-   * Sets the value of the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinition#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>Definition</b></em>' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Definition</em>' containment reference.
-   * @see #setDefinition(Instance)
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getParametrizedFunctionDefinition_Definition()
-   * @model containment="true"
-   * @generated
-   */
-  Instance getDefinition();
-
-  /**
-   * Sets the value of the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinition#getDefinition <em>Definition</em>}' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @param value the new value of the '<em>Definition</em>' containment reference.
-   * @see #getDefinition()
-   * @generated
-   */
-  void setDefinition(Instance value);
-
-} // ParametrizedFunctionDefinition
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/ParametrizedFunctionDefinitionReference.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/ParametrizedFunctionDefinitionReference.java
deleted file mode 100644
index ec87a200d666f3cc0db4ad99f0263fd45eb01a5b..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/ParametrizedFunctionDefinitionReference.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Parametrized Function Definition Reference</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinitionReference#getDefinition <em>Definition</em>}</li>
- * </ul>
- *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getParametrizedFunctionDefinitionReference()
- * @model
- * @generated
- */
-public interface ParametrizedFunctionDefinitionReference extends FunctionDefReference
-{
-  /**
-   * Returns the value of the '<em><b>Definition</b></em>' reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Definition</em>' reference.
-   * @see #setDefinition(FunctionDefinitionReference)
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getParametrizedFunctionDefinitionReference_Definition()
-   * @model
-   * @generated
-   */
-  FunctionDefinitionReference getDefinition();
-
-  /**
-   * Sets the value of the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinitionReference#getDefinition <em>Definition</em>}' reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @param value the new value of the '<em>Definition</em>' reference.
-   * @see #getDefinition()
-   * @generated
-   */
-  void setDefinition(FunctionDefinitionReference value);
-
-} // ParametrizedFunctionDefinitionReference
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/Use.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/Use.java
deleted file mode 100644
index eaea74d3b3f30ed4d5880d02af1a027f9b2492e1..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/Use.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Use</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.Use#getImportURI <em>Import URI</em>}</li>
- * </ul>
- *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getUse()
- * @model
- * @generated
- */
-public interface Use extends EObject
-{
-  /**
-   * Returns the value of the '<em><b>Import URI</b></em>' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @return the value of the '<em>Import URI</em>' attribute.
-   * @see #setImportURI(String)
-   * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getUse_ImportURI()
-   * @model
-   * @generated
-   */
-  String getImportURI();
-
-  /**
-   * Sets the value of the '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Use#getImportURI <em>Import URI</em>}' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @param value the new value of the '<em>Import URI</em>' attribute.
-   * @see #getImportURI()
-   * @generated
-   */
-  void setImportURI(String value);
-
-} // Use
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/ApplyStatementImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/ApplyStatementImpl.java
deleted file mode 100644
index 0745ba880d63c9d0602b73f2c6ee8c13e82a86fd..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/ApplyStatementImpl.java
+++ /dev/null
@@ -1,401 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement;
-import de.evoal.languages.model.generator.dsl.generatorDSL.FunctionReference;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorReference;
-
-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;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Apply Statement</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ApplyStatementImpl#getFile <em>File</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ApplyStatementImpl#getCount <em>Count</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ApplyStatementImpl#getFunction <em>Function</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ApplyStatementImpl#getGenerator <em>Generator</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ApplyStatementImpl extends StatementImpl implements ApplyStatement
-{
-  /**
-   * The default value of the '{@link #getFile() <em>File</em>}' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getFile()
-   * @generated
-   * @ordered
-   */
-  protected static final String FILE_EDEFAULT = null;
-
-  /**
-   * The cached value of the '{@link #getFile() <em>File</em>}' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getFile()
-   * @generated
-   * @ordered
-   */
-  protected String file = FILE_EDEFAULT;
-
-  /**
-   * The default value of the '{@link #getCount() <em>Count</em>}' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getCount()
-   * @generated
-   * @ordered
-   */
-  protected static final int COUNT_EDEFAULT = 0;
-
-  /**
-   * The cached value of the '{@link #getCount() <em>Count</em>}' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getCount()
-   * @generated
-   * @ordered
-   */
-  protected int count = COUNT_EDEFAULT;
-
-  /**
-   * The cached value of the '{@link #getFunction() <em>Function</em>}' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getFunction()
-   * @generated
-   * @ordered
-   */
-  protected FunctionReference function;
-
-  /**
-   * The cached value of the '{@link #getGenerator() <em>Generator</em>}' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getGenerator()
-   * @generated
-   * @ordered
-   */
-  protected GeneratorReference generator;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected ApplyStatementImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.APPLY_STATEMENT;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public String getFile()
-  {
-    return file;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void setFile(String newFile)
-  {
-    String oldFile = file;
-    file = newFile;
-    if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.APPLY_STATEMENT__FILE, oldFile, file));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public int getCount()
-  {
-    return count;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void setCount(int newCount)
-  {
-    int oldCount = count;
-    count = newCount;
-    if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.APPLY_STATEMENT__COUNT, oldCount, count));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public FunctionReference getFunction()
-  {
-    return function;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public NotificationChain basicSetFunction(FunctionReference newFunction, NotificationChain msgs)
-  {
-    FunctionReference oldFunction = function;
-    function = newFunction;
-    if (eNotificationRequired())
-    {
-      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.APPLY_STATEMENT__FUNCTION, oldFunction, newFunction);
-      if (msgs == null) msgs = notification; else msgs.add(notification);
-    }
-    return msgs;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void setFunction(FunctionReference newFunction)
-  {
-    if (newFunction != function)
-    {
-      NotificationChain msgs = null;
-      if (function != null)
-        msgs = ((InternalEObject)function).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - GeneratorDSLPackage.APPLY_STATEMENT__FUNCTION, null, msgs);
-      if (newFunction != null)
-        msgs = ((InternalEObject)newFunction).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - GeneratorDSLPackage.APPLY_STATEMENT__FUNCTION, null, msgs);
-      msgs = basicSetFunction(newFunction, msgs);
-      if (msgs != null) msgs.dispatch();
-    }
-    else if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.APPLY_STATEMENT__FUNCTION, newFunction, newFunction));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public GeneratorReference getGenerator()
-  {
-    return generator;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public NotificationChain basicSetGenerator(GeneratorReference newGenerator, NotificationChain msgs)
-  {
-    GeneratorReference oldGenerator = generator;
-    generator = newGenerator;
-    if (eNotificationRequired())
-    {
-      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.APPLY_STATEMENT__GENERATOR, oldGenerator, newGenerator);
-      if (msgs == null) msgs = notification; else msgs.add(notification);
-    }
-    return msgs;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void setGenerator(GeneratorReference newGenerator)
-  {
-    if (newGenerator != generator)
-    {
-      NotificationChain msgs = null;
-      if (generator != null)
-        msgs = ((InternalEObject)generator).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - GeneratorDSLPackage.APPLY_STATEMENT__GENERATOR, null, msgs);
-      if (newGenerator != null)
-        msgs = ((InternalEObject)newGenerator).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - GeneratorDSLPackage.APPLY_STATEMENT__GENERATOR, null, msgs);
-      msgs = basicSetGenerator(newGenerator, msgs);
-      if (msgs != null) msgs.dispatch();
-    }
-    else if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.APPLY_STATEMENT__GENERATOR, newGenerator, newGenerator));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.APPLY_STATEMENT__FUNCTION:
-        return basicSetFunction(null, msgs);
-      case GeneratorDSLPackage.APPLY_STATEMENT__GENERATOR:
-        return basicSetGenerator(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 GeneratorDSLPackage.APPLY_STATEMENT__FILE:
-        return getFile();
-      case GeneratorDSLPackage.APPLY_STATEMENT__COUNT:
-        return getCount();
-      case GeneratorDSLPackage.APPLY_STATEMENT__FUNCTION:
-        return getFunction();
-      case GeneratorDSLPackage.APPLY_STATEMENT__GENERATOR:
-        return getGenerator();
-    }
-    return super.eGet(featureID, resolve, coreType);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eSet(int featureID, Object newValue)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.APPLY_STATEMENT__FILE:
-        setFile((String)newValue);
-        return;
-      case GeneratorDSLPackage.APPLY_STATEMENT__COUNT:
-        setCount((Integer)newValue);
-        return;
-      case GeneratorDSLPackage.APPLY_STATEMENT__FUNCTION:
-        setFunction((FunctionReference)newValue);
-        return;
-      case GeneratorDSLPackage.APPLY_STATEMENT__GENERATOR:
-        setGenerator((GeneratorReference)newValue);
-        return;
-    }
-    super.eSet(featureID, newValue);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eUnset(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.APPLY_STATEMENT__FILE:
-        setFile(FILE_EDEFAULT);
-        return;
-      case GeneratorDSLPackage.APPLY_STATEMENT__COUNT:
-        setCount(COUNT_EDEFAULT);
-        return;
-      case GeneratorDSLPackage.APPLY_STATEMENT__FUNCTION:
-        setFunction((FunctionReference)null);
-        return;
-      case GeneratorDSLPackage.APPLY_STATEMENT__GENERATOR:
-        setGenerator((GeneratorReference)null);
-        return;
-    }
-    super.eUnset(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public boolean eIsSet(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.APPLY_STATEMENT__FILE:
-        return FILE_EDEFAULT == null ? file != null : !FILE_EDEFAULT.equals(file);
-      case GeneratorDSLPackage.APPLY_STATEMENT__COUNT:
-        return count != COUNT_EDEFAULT;
-      case GeneratorDSLPackage.APPLY_STATEMENT__FUNCTION:
-        return function != null;
-      case GeneratorDSLPackage.APPLY_STATEMENT__GENERATOR:
-        return generator != null;
-    }
-    return super.eIsSet(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public String toString()
-  {
-    if (eIsProxy()) return super.toString();
-
-    StringBuilder result = new StringBuilder(super.toString());
-    result.append(" (file: ");
-    result.append(file);
-    result.append(", count: ");
-    result.append(count);
-    result.append(')');
-    return result.toString();
-  }
-
-} //ApplyStatementImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/ConfigurationImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/ConfigurationImpl.java
deleted file mode 100644
index 84d008703d6d83b3d3d7963cc117e55def9f636f..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/ConfigurationImpl.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.Configuration;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition;
-import de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinition;
-import de.evoal.languages.model.generator.dsl.generatorDSL.Statement;
-import de.evoal.languages.model.generator.dsl.generatorDSL.Use;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Configuration</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ConfigurationImpl#getUses <em>Uses</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ConfigurationImpl#getGenerators <em>Generators</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ConfigurationImpl#getFunctions <em>Functions</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ConfigurationImpl#getStatements <em>Statements</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ConfigurationImpl extends MinimalEObjectImpl.Container implements Configuration
-{
-  /**
-   * The cached value of the '{@link #getUses() <em>Uses</em>}' containment reference list.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getUses()
-   * @generated
-   * @ordered
-   */
-  protected EList<Use> uses;
-
-  /**
-   * The cached value of the '{@link #getGenerators() <em>Generators</em>}' containment reference list.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getGenerators()
-   * @generated
-   * @ordered
-   */
-  protected EList<GeneratorDefinition> generators;
-
-  /**
-   * The cached value of the '{@link #getFunctions() <em>Functions</em>}' containment reference list.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getFunctions()
-   * @generated
-   * @ordered
-   */
-  protected EList<ParametrizedFunctionDefinition> functions;
-
-  /**
-   * 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<Statement> statements;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected ConfigurationImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.CONFIGURATION;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EList<Use> getUses()
-  {
-    if (uses == null)
-    {
-      uses = new EObjectContainmentEList<Use>(Use.class, this, GeneratorDSLPackage.CONFIGURATION__USES);
-    }
-    return uses;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EList<GeneratorDefinition> getGenerators()
-  {
-    if (generators == null)
-    {
-      generators = new EObjectContainmentEList<GeneratorDefinition>(GeneratorDefinition.class, this, GeneratorDSLPackage.CONFIGURATION__GENERATORS);
-    }
-    return generators;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EList<ParametrizedFunctionDefinition> getFunctions()
-  {
-    if (functions == null)
-    {
-      functions = new EObjectContainmentEList<ParametrizedFunctionDefinition>(ParametrizedFunctionDefinition.class, this, GeneratorDSLPackage.CONFIGURATION__FUNCTIONS);
-    }
-    return functions;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EList<Statement> getStatements()
-  {
-    if (statements == null)
-    {
-      statements = new EObjectContainmentEList<Statement>(Statement.class, this, GeneratorDSLPackage.CONFIGURATION__STATEMENTS);
-    }
-    return statements;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.CONFIGURATION__USES:
-        return ((InternalEList<?>)getUses()).basicRemove(otherEnd, msgs);
-      case GeneratorDSLPackage.CONFIGURATION__GENERATORS:
-        return ((InternalEList<?>)getGenerators()).basicRemove(otherEnd, msgs);
-      case GeneratorDSLPackage.CONFIGURATION__FUNCTIONS:
-        return ((InternalEList<?>)getFunctions()).basicRemove(otherEnd, msgs);
-      case GeneratorDSLPackage.CONFIGURATION__STATEMENTS:
-        return ((InternalEList<?>)getStatements()).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 GeneratorDSLPackage.CONFIGURATION__USES:
-        return getUses();
-      case GeneratorDSLPackage.CONFIGURATION__GENERATORS:
-        return getGenerators();
-      case GeneratorDSLPackage.CONFIGURATION__FUNCTIONS:
-        return getFunctions();
-      case GeneratorDSLPackage.CONFIGURATION__STATEMENTS:
-        return getStatements();
-    }
-    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 GeneratorDSLPackage.CONFIGURATION__USES:
-        getUses().clear();
-        getUses().addAll((Collection<? extends Use>)newValue);
-        return;
-      case GeneratorDSLPackage.CONFIGURATION__GENERATORS:
-        getGenerators().clear();
-        getGenerators().addAll((Collection<? extends GeneratorDefinition>)newValue);
-        return;
-      case GeneratorDSLPackage.CONFIGURATION__FUNCTIONS:
-        getFunctions().clear();
-        getFunctions().addAll((Collection<? extends ParametrizedFunctionDefinition>)newValue);
-        return;
-      case GeneratorDSLPackage.CONFIGURATION__STATEMENTS:
-        getStatements().clear();
-        getStatements().addAll((Collection<? extends Statement>)newValue);
-        return;
-    }
-    super.eSet(featureID, newValue);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eUnset(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.CONFIGURATION__USES:
-        getUses().clear();
-        return;
-      case GeneratorDSLPackage.CONFIGURATION__GENERATORS:
-        getGenerators().clear();
-        return;
-      case GeneratorDSLPackage.CONFIGURATION__FUNCTIONS:
-        getFunctions().clear();
-        return;
-      case GeneratorDSLPackage.CONFIGURATION__STATEMENTS:
-        getStatements().clear();
-        return;
-    }
-    super.eUnset(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public boolean eIsSet(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.CONFIGURATION__USES:
-        return uses != null && !uses.isEmpty();
-      case GeneratorDSLPackage.CONFIGURATION__GENERATORS:
-        return generators != null && !generators.isEmpty();
-      case GeneratorDSLPackage.CONFIGURATION__FUNCTIONS:
-        return functions != null && !functions.isEmpty();
-      case GeneratorDSLPackage.CONFIGURATION__STATEMENTS:
-        return statements != null && !statements.isEmpty();
-    }
-    return super.eIsSet(featureID);
-  }
-
-} //ConfigurationImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/CounterRangeImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/CounterRangeImpl.java
deleted file mode 100644
index ee6c20222f78669c6b7a0715787bcc2fc715f1f8..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/CounterRangeImpl.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.CounterRange;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Counter Range</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.CounterRangeImpl#getStart <em>Start</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.CounterRangeImpl#getEnd <em>End</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class CounterRangeImpl extends RangeImpl implements CounterRange
-{
-  /**
-   * The default value of the '{@link #getStart() <em>Start</em>}' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getStart()
-   * @generated
-   * @ordered
-   */
-  protected static final int START_EDEFAULT = 0;
-
-  /**
-   * The cached value of the '{@link #getStart() <em>Start</em>}' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getStart()
-   * @generated
-   * @ordered
-   */
-  protected int start = START_EDEFAULT;
-
-  /**
-   * The default value of the '{@link #getEnd() <em>End</em>}' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getEnd()
-   * @generated
-   * @ordered
-   */
-  protected static final int END_EDEFAULT = 0;
-
-  /**
-   * The cached value of the '{@link #getEnd() <em>End</em>}' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getEnd()
-   * @generated
-   * @ordered
-   */
-  protected int end = END_EDEFAULT;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected CounterRangeImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.COUNTER_RANGE;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public int getStart()
-  {
-    return start;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void setStart(int newStart)
-  {
-    int oldStart = start;
-    start = newStart;
-    if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.COUNTER_RANGE__START, oldStart, start));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public int getEnd()
-  {
-    return end;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void setEnd(int newEnd)
-  {
-    int oldEnd = end;
-    end = newEnd;
-    if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.COUNTER_RANGE__END, oldEnd, end));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public Object eGet(int featureID, boolean resolve, boolean coreType)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.COUNTER_RANGE__START:
-        return getStart();
-      case GeneratorDSLPackage.COUNTER_RANGE__END:
-        return getEnd();
-    }
-    return super.eGet(featureID, resolve, coreType);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eSet(int featureID, Object newValue)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.COUNTER_RANGE__START:
-        setStart((Integer)newValue);
-        return;
-      case GeneratorDSLPackage.COUNTER_RANGE__END:
-        setEnd((Integer)newValue);
-        return;
-    }
-    super.eSet(featureID, newValue);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eUnset(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.COUNTER_RANGE__START:
-        setStart(START_EDEFAULT);
-        return;
-      case GeneratorDSLPackage.COUNTER_RANGE__END:
-        setEnd(END_EDEFAULT);
-        return;
-    }
-    super.eUnset(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public boolean eIsSet(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.COUNTER_RANGE__START:
-        return start != START_EDEFAULT;
-      case GeneratorDSLPackage.COUNTER_RANGE__END:
-        return end != END_EDEFAULT;
-    }
-    return super.eIsSet(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public String toString()
-  {
-    if (eIsProxy()) return super.toString();
-
-    StringBuilder result = new StringBuilder(super.toString());
-    result.append(" (start: ");
-    result.append(start);
-    result.append(", end: ");
-    result.append(end);
-    result.append(')');
-    return result.toString();
-  }
-
-} //CounterRangeImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/ForStatementImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/ForStatementImpl.java
deleted file mode 100644
index 9af1266461a966f683f7528e226f5caa0fc7c5c6..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/ForStatementImpl.java
+++ /dev/null
@@ -1,317 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.ForStatement;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-import de.evoal.languages.model.generator.dsl.generatorDSL.Range;
-import de.evoal.languages.model.generator.dsl.generatorDSL.Statement;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>For Statement</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ForStatementImpl#getName <em>Name</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ForStatementImpl#getRange <em>Range</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ForStatementImpl#getStatements <em>Statements</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ForStatementImpl extends StatementImpl implements ForStatement
-{
-  /**
-   * 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 #getRange() <em>Range</em>}' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getRange()
-   * @generated
-   * @ordered
-   */
-  protected Range range;
-
-  /**
-   * 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<Statement> statements;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected ForStatementImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.FOR_STATEMENT;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public String getName()
-  {
-    return name;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void setName(String newName)
-  {
-    String oldName = name;
-    name = newName;
-    if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.FOR_STATEMENT__NAME, oldName, name));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public Range getRange()
-  {
-    return range;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public NotificationChain basicSetRange(Range newRange, NotificationChain msgs)
-  {
-    Range oldRange = range;
-    range = newRange;
-    if (eNotificationRequired())
-    {
-      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.FOR_STATEMENT__RANGE, oldRange, newRange);
-      if (msgs == null) msgs = notification; else msgs.add(notification);
-    }
-    return msgs;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void setRange(Range newRange)
-  {
-    if (newRange != range)
-    {
-      NotificationChain msgs = null;
-      if (range != null)
-        msgs = ((InternalEObject)range).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - GeneratorDSLPackage.FOR_STATEMENT__RANGE, null, msgs);
-      if (newRange != null)
-        msgs = ((InternalEObject)newRange).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - GeneratorDSLPackage.FOR_STATEMENT__RANGE, null, msgs);
-      msgs = basicSetRange(newRange, msgs);
-      if (msgs != null) msgs.dispatch();
-    }
-    else if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.FOR_STATEMENT__RANGE, newRange, newRange));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EList<Statement> getStatements()
-  {
-    if (statements == null)
-    {
-      statements = new EObjectContainmentEList<Statement>(Statement.class, this, GeneratorDSLPackage.FOR_STATEMENT__STATEMENTS);
-    }
-    return statements;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.FOR_STATEMENT__RANGE:
-        return basicSetRange(null, msgs);
-      case GeneratorDSLPackage.FOR_STATEMENT__STATEMENTS:
-        return ((InternalEList<?>)getStatements()).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 GeneratorDSLPackage.FOR_STATEMENT__NAME:
-        return getName();
-      case GeneratorDSLPackage.FOR_STATEMENT__RANGE:
-        return getRange();
-      case GeneratorDSLPackage.FOR_STATEMENT__STATEMENTS:
-        return getStatements();
-    }
-    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 GeneratorDSLPackage.FOR_STATEMENT__NAME:
-        setName((String)newValue);
-        return;
-      case GeneratorDSLPackage.FOR_STATEMENT__RANGE:
-        setRange((Range)newValue);
-        return;
-      case GeneratorDSLPackage.FOR_STATEMENT__STATEMENTS:
-        getStatements().clear();
-        getStatements().addAll((Collection<? extends Statement>)newValue);
-        return;
-    }
-    super.eSet(featureID, newValue);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eUnset(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.FOR_STATEMENT__NAME:
-        setName(NAME_EDEFAULT);
-        return;
-      case GeneratorDSLPackage.FOR_STATEMENT__RANGE:
-        setRange((Range)null);
-        return;
-      case GeneratorDSLPackage.FOR_STATEMENT__STATEMENTS:
-        getStatements().clear();
-        return;
-    }
-    super.eUnset(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public boolean eIsSet(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.FOR_STATEMENT__NAME:
-        return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-      case GeneratorDSLPackage.FOR_STATEMENT__RANGE:
-        return range != null;
-      case GeneratorDSLPackage.FOR_STATEMENT__STATEMENTS:
-        return statements != null && !statements.isEmpty();
-    }
-    return super.eIsSet(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public String toString()
-  {
-    if (eIsProxy()) return super.toString();
-
-    StringBuilder result = new StringBuilder(super.toString());
-    result.append(" (name: ");
-    result.append(name);
-    result.append(')');
-    return result.toString();
-  }
-
-} //ForStatementImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/FunctionDefReferenceImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/FunctionDefReferenceImpl.java
deleted file mode 100644
index 4c2432065719fea76704d5bc82879ef2ca3c7c48..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/FunctionDefReferenceImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefReference;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-
-import org.eclipse.emf.ecore.EClass;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Function Def Reference</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class FunctionDefReferenceImpl extends FunctionReferenceImpl implements FunctionDefReference
-{
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected FunctionDefReferenceImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.FUNCTION_DEF_REFERENCE;
-  }
-
-} //FunctionDefReferenceImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/FunctionDefinitionReferenceImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/FunctionDefinitionReferenceImpl.java
deleted file mode 100644
index 84ba008b5ef5877e2884d7360d843182d166bae9..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/FunctionDefinitionReferenceImpl.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.dl.FunctionDefinition;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefinitionReference;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-
-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;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Function Definition Reference</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionDefinitionReferenceImpl#getDefinition <em>Definition</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class FunctionDefinitionReferenceImpl extends FunctionDefReferenceImpl implements FunctionDefinitionReference
-{
-  /**
-   * The cached value of the '{@link #getDefinition() <em>Definition</em>}' reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getDefinition()
-   * @generated
-   * @ordered
-   */
-  protected FunctionDefinition definition;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected FunctionDefinitionReferenceImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.FUNCTION_DEFINITION_REFERENCE;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public FunctionDefinition getDefinition()
-  {
-    if (definition != null && definition.eIsProxy())
-    {
-      InternalEObject oldDefinition = (InternalEObject)definition;
-      definition = (FunctionDefinition)eResolveProxy(oldDefinition);
-      if (definition != oldDefinition)
-      {
-        if (eNotificationRequired())
-          eNotify(new ENotificationImpl(this, Notification.RESOLVE, GeneratorDSLPackage.FUNCTION_DEFINITION_REFERENCE__DEFINITION, oldDefinition, definition));
-      }
-    }
-    return definition;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public FunctionDefinition basicGetDefinition()
-  {
-    return definition;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void setDefinition(FunctionDefinition newDefinition)
-  {
-    FunctionDefinition oldDefinition = definition;
-    definition = newDefinition;
-    if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.FUNCTION_DEFINITION_REFERENCE__DEFINITION, oldDefinition, definition));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public Object eGet(int featureID, boolean resolve, boolean coreType)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.FUNCTION_DEFINITION_REFERENCE__DEFINITION:
-        if (resolve) return getDefinition();
-        return basicGetDefinition();
-    }
-    return super.eGet(featureID, resolve, coreType);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eSet(int featureID, Object newValue)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.FUNCTION_DEFINITION_REFERENCE__DEFINITION:
-        setDefinition((FunctionDefinition)newValue);
-        return;
-    }
-    super.eSet(featureID, newValue);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eUnset(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.FUNCTION_DEFINITION_REFERENCE__DEFINITION:
-        setDefinition((FunctionDefinition)null);
-        return;
-    }
-    super.eUnset(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public boolean eIsSet(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.FUNCTION_DEFINITION_REFERENCE__DEFINITION:
-        return definition != null;
-    }
-    return super.eIsSet(featureID);
-  }
-
-} //FunctionDefinitionReferenceImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/FunctionReferenceImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/FunctionReferenceImpl.java
deleted file mode 100644
index 6747fa81e1dba9b20537cf6ed595bf353bd0ed9b..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/FunctionReferenceImpl.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.FunctionReference;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Function Reference</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class FunctionReferenceImpl extends MinimalEObjectImpl.Container implements FunctionReference
-{
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected FunctionReferenceImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.FUNCTION_REFERENCE;
-  }
-
-} //FunctionReferenceImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/FunctionReferencesImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/FunctionReferencesImpl.java
deleted file mode 100644
index 63f678a50c6c8a34c3c3890c6353186f48e65cae..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/FunctionReferencesImpl.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefReference;
-import de.evoal.languages.model.generator.dsl.generatorDSL.FunctionReferences;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Function References</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionReferencesImpl#getFunctions <em>Functions</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class FunctionReferencesImpl extends MinimalEObjectImpl.Container implements FunctionReferences
-{
-  /**
-   * The cached value of the '{@link #getFunctions() <em>Functions</em>}' containment reference list.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getFunctions()
-   * @generated
-   * @ordered
-   */
-  protected EList<FunctionDefReference> functions;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected FunctionReferencesImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.FUNCTION_REFERENCES;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EList<FunctionDefReference> getFunctions()
-  {
-    if (functions == null)
-    {
-      functions = new EObjectContainmentEList<FunctionDefReference>(FunctionDefReference.class, this, GeneratorDSLPackage.FUNCTION_REFERENCES__FUNCTIONS);
-    }
-    return functions;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.FUNCTION_REFERENCES__FUNCTIONS:
-        return ((InternalEList<?>)getFunctions()).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 GeneratorDSLPackage.FUNCTION_REFERENCES__FUNCTIONS:
-        return getFunctions();
-    }
-    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 GeneratorDSLPackage.FUNCTION_REFERENCES__FUNCTIONS:
-        getFunctions().clear();
-        getFunctions().addAll((Collection<? extends FunctionDefReference>)newValue);
-        return;
-    }
-    super.eSet(featureID, newValue);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eUnset(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.FUNCTION_REFERENCES__FUNCTIONS:
-        getFunctions().clear();
-        return;
-    }
-    super.eUnset(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public boolean eIsSet(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.FUNCTION_REFERENCES__FUNCTIONS:
-        return functions != null && !functions.isEmpty();
-    }
-    return super.eIsSet(featureID);
-  }
-
-} //FunctionReferencesImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/FunctionsImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/FunctionsImpl.java
deleted file mode 100644
index a063bcb8865151f0c192cfe03ffc290030c9dc83..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/FunctionsImpl.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.FunctionReferences;
-import de.evoal.languages.model.generator.dsl.generatorDSL.Functions;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-
-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;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Functions</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.FunctionsImpl#getFunctionReferences <em>Function References</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class FunctionsImpl extends RangeImpl implements Functions
-{
-  /**
-   * The cached value of the '{@link #getFunctionReferences() <em>Function References</em>}' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getFunctionReferences()
-   * @generated
-   * @ordered
-   */
-  protected FunctionReferences functionReferences;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected FunctionsImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.FUNCTIONS;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public FunctionReferences getFunctionReferences()
-  {
-    return functionReferences;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public NotificationChain basicSetFunctionReferences(FunctionReferences newFunctionReferences, NotificationChain msgs)
-  {
-    FunctionReferences oldFunctionReferences = functionReferences;
-    functionReferences = newFunctionReferences;
-    if (eNotificationRequired())
-    {
-      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.FUNCTIONS__FUNCTION_REFERENCES, oldFunctionReferences, newFunctionReferences);
-      if (msgs == null) msgs = notification; else msgs.add(notification);
-    }
-    return msgs;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void setFunctionReferences(FunctionReferences newFunctionReferences)
-  {
-    if (newFunctionReferences != functionReferences)
-    {
-      NotificationChain msgs = null;
-      if (functionReferences != null)
-        msgs = ((InternalEObject)functionReferences).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - GeneratorDSLPackage.FUNCTIONS__FUNCTION_REFERENCES, null, msgs);
-      if (newFunctionReferences != null)
-        msgs = ((InternalEObject)newFunctionReferences).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - GeneratorDSLPackage.FUNCTIONS__FUNCTION_REFERENCES, null, msgs);
-      msgs = basicSetFunctionReferences(newFunctionReferences, msgs);
-      if (msgs != null) msgs.dispatch();
-    }
-    else if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.FUNCTIONS__FUNCTION_REFERENCES, newFunctionReferences, newFunctionReferences));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.FUNCTIONS__FUNCTION_REFERENCES:
-        return basicSetFunctionReferences(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 GeneratorDSLPackage.FUNCTIONS__FUNCTION_REFERENCES:
-        return getFunctionReferences();
-    }
-    return super.eGet(featureID, resolve, coreType);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eSet(int featureID, Object newValue)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.FUNCTIONS__FUNCTION_REFERENCES:
-        setFunctionReferences((FunctionReferences)newValue);
-        return;
-    }
-    super.eSet(featureID, newValue);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eUnset(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.FUNCTIONS__FUNCTION_REFERENCES:
-        setFunctionReferences((FunctionReferences)null);
-        return;
-    }
-    super.eUnset(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public boolean eIsSet(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.FUNCTIONS__FUNCTION_REFERENCES:
-        return functionReferences != null;
-    }
-    return super.eIsSet(featureID);
-  }
-
-} //FunctionsImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorDSLFactoryImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorDSLFactoryImpl.java
deleted file mode 100644
index b3159b5c308d7b10c072e8785f86fd47bceb7249..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorDSLFactoryImpl.java
+++ /dev/null
@@ -1,356 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.*;
-
-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;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Factory</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class GeneratorDSLFactoryImpl extends EFactoryImpl implements GeneratorDSLFactory
-{
-  /**
-   * Creates the default factory implementation.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public static GeneratorDSLFactory init()
-  {
-    try
-    {
-      GeneratorDSLFactory theGeneratorDSLFactory = (GeneratorDSLFactory)EPackage.Registry.INSTANCE.getEFactory(GeneratorDSLPackage.eNS_URI);
-      if (theGeneratorDSLFactory != null)
-      {
-        return theGeneratorDSLFactory;
-      }
-    }
-    catch (Exception exception)
-    {
-      EcorePlugin.INSTANCE.log(exception);
-    }
-    return new GeneratorDSLFactoryImpl();
-  }
-
-  /**
-   * Creates an instance of the factory.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public GeneratorDSLFactoryImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EObject create(EClass eClass)
-  {
-    switch (eClass.getClassifierID())
-    {
-      case GeneratorDSLPackage.CONFIGURATION: return createConfiguration();
-      case GeneratorDSLPackage.USE: return createUse();
-      case GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION: return createParametrizedFunctionDefinition();
-      case GeneratorDSLPackage.GENERATOR_DEFINITION: return createGeneratorDefinition();
-      case GeneratorDSLPackage.STATEMENT: return createStatement();
-      case GeneratorDSLPackage.FOR_STATEMENT: return createForStatement();
-      case GeneratorDSLPackage.RANGE: return createRange();
-      case GeneratorDSLPackage.COUNTER_RANGE: return createCounterRange();
-      case GeneratorDSLPackage.FUNCTIONS: return createFunctions();
-      case GeneratorDSLPackage.FUNCTION_REFERENCES: return createFunctionReferences();
-      case GeneratorDSLPackage.GENERATORS: return createGenerators();
-      case GeneratorDSLPackage.GENERATOR_REFERENCES: return createGeneratorReferences();
-      case GeneratorDSLPackage.APPLY_STATEMENT: return createApplyStatement();
-      case GeneratorDSLPackage.GENERATOR_REFERENCE: return createGeneratorReference();
-      case GeneratorDSLPackage.GENERATOR_DEFINITION_REFERENCE: return createGeneratorDefinitionReference();
-      case GeneratorDSLPackage.FUNCTION_REFERENCE: return createFunctionReference();
-      case GeneratorDSLPackage.FUNCTION_DEF_REFERENCE: return createFunctionDefReference();
-      case GeneratorDSLPackage.LOOP_VARIABLE: return createLoopVariable();
-      case GeneratorDSLPackage.FUNCTION_DEFINITION_REFERENCE: return createFunctionDefinitionReference();
-      case GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE: return createParametrizedFunctionDefinitionReference();
-      default:
-        throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
-    }
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public Configuration createConfiguration()
-  {
-    ConfigurationImpl configuration = new ConfigurationImpl();
-    return configuration;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public Use createUse()
-  {
-    UseImpl use = new UseImpl();
-    return use;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public ParametrizedFunctionDefinition createParametrizedFunctionDefinition()
-  {
-    ParametrizedFunctionDefinitionImpl parametrizedFunctionDefinition = new ParametrizedFunctionDefinitionImpl();
-    return parametrizedFunctionDefinition;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public GeneratorDefinition createGeneratorDefinition()
-  {
-    GeneratorDefinitionImpl generatorDefinition = new GeneratorDefinitionImpl();
-    return generatorDefinition;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public Statement createStatement()
-  {
-    StatementImpl statement = new StatementImpl();
-    return statement;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public ForStatement createForStatement()
-  {
-    ForStatementImpl forStatement = new ForStatementImpl();
-    return forStatement;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public Range createRange()
-  {
-    RangeImpl range = new RangeImpl();
-    return range;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public CounterRange createCounterRange()
-  {
-    CounterRangeImpl counterRange = new CounterRangeImpl();
-    return counterRange;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public Functions createFunctions()
-  {
-    FunctionsImpl functions = new FunctionsImpl();
-    return functions;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public FunctionReferences createFunctionReferences()
-  {
-    FunctionReferencesImpl functionReferences = new FunctionReferencesImpl();
-    return functionReferences;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public Generators createGenerators()
-  {
-    GeneratorsImpl generators = new GeneratorsImpl();
-    return generators;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public GeneratorReferences createGeneratorReferences()
-  {
-    GeneratorReferencesImpl generatorReferences = new GeneratorReferencesImpl();
-    return generatorReferences;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public ApplyStatement createApplyStatement()
-  {
-    ApplyStatementImpl applyStatement = new ApplyStatementImpl();
-    return applyStatement;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public GeneratorReference createGeneratorReference()
-  {
-    GeneratorReferenceImpl generatorReference = new GeneratorReferenceImpl();
-    return generatorReference;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public GeneratorDefinitionReference createGeneratorDefinitionReference()
-  {
-    GeneratorDefinitionReferenceImpl generatorDefinitionReference = new GeneratorDefinitionReferenceImpl();
-    return generatorDefinitionReference;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public FunctionReference createFunctionReference()
-  {
-    FunctionReferenceImpl functionReference = new FunctionReferenceImpl();
-    return functionReference;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public FunctionDefReference createFunctionDefReference()
-  {
-    FunctionDefReferenceImpl functionDefReference = new FunctionDefReferenceImpl();
-    return functionDefReference;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public LoopVariable createLoopVariable()
-  {
-    LoopVariableImpl loopVariable = new LoopVariableImpl();
-    return loopVariable;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public FunctionDefinitionReference createFunctionDefinitionReference()
-  {
-    FunctionDefinitionReferenceImpl functionDefinitionReference = new FunctionDefinitionReferenceImpl();
-    return functionDefinitionReference;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public ParametrizedFunctionDefinitionReference createParametrizedFunctionDefinitionReference()
-  {
-    ParametrizedFunctionDefinitionReferenceImpl parametrizedFunctionDefinitionReference = new ParametrizedFunctionDefinitionReferenceImpl();
-    return parametrizedFunctionDefinitionReference;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public GeneratorDSLPackage getGeneratorDSLPackage()
-  {
-    return (GeneratorDSLPackage)getEPackage();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @deprecated
-   * @generated
-   */
-  @Deprecated
-  public static GeneratorDSLPackage getPackage()
-  {
-    return GeneratorDSLPackage.eINSTANCE;
-  }
-
-} //GeneratorDSLFactoryImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorDSLPackageImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorDSLPackageImpl.java
deleted file mode 100644
index e2e13fa960b2a9d1aada6274c7ba6e45496fc217..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorDSLPackageImpl.java
+++ /dev/null
@@ -1,981 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.ddl.DdlPackage;
-
-import de.evoal.languages.model.dl.DlPackage;
-
-import de.evoal.languages.model.el.ELPackage;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement;
-import de.evoal.languages.model.generator.dsl.generatorDSL.Configuration;
-import de.evoal.languages.model.generator.dsl.generatorDSL.CounterRange;
-import de.evoal.languages.model.generator.dsl.generatorDSL.ForStatement;
-import de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefReference;
-import de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefinitionReference;
-import de.evoal.languages.model.generator.dsl.generatorDSL.FunctionReference;
-import de.evoal.languages.model.generator.dsl.generatorDSL.FunctionReferences;
-import de.evoal.languages.model.generator.dsl.generatorDSL.Functions;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLFactory;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinitionReference;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorReference;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorReferences;
-import de.evoal.languages.model.generator.dsl.generatorDSL.Generators;
-import de.evoal.languages.model.generator.dsl.generatorDSL.LoopVariable;
-import de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinition;
-import de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinitionReference;
-import de.evoal.languages.model.generator.dsl.generatorDSL.Range;
-import de.evoal.languages.model.generator.dsl.generatorDSL.Statement;
-import de.evoal.languages.model.generator.dsl.generatorDSL.Use;
-
-import de.evoal.languages.model.instance.InstancePackage;
-
-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;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class GeneratorDSLPackageImpl extends EPackageImpl implements GeneratorDSLPackage
-{
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass configurationEClass = null;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass useEClass = null;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass parametrizedFunctionDefinitionEClass = null;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass generatorDefinitionEClass = null;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass statementEClass = null;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass forStatementEClass = null;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass rangeEClass = null;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass counterRangeEClass = null;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass functionsEClass = null;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass functionReferencesEClass = null;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass generatorsEClass = null;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass generatorReferencesEClass = null;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass applyStatementEClass = null;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass generatorReferenceEClass = null;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass generatorDefinitionReferenceEClass = null;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass functionReferenceEClass = null;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass functionDefReferenceEClass = null;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass loopVariableEClass = null;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass functionDefinitionReferenceEClass = null;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  private EClass parametrizedFunctionDefinitionReferenceEClass = 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 de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#eNS_URI
-   * @see #init()
-   * @generated
-   */
-  private GeneratorDSLPackageImpl()
-  {
-    super(eNS_URI, GeneratorDSLFactory.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 GeneratorDSLPackage#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 GeneratorDSLPackage init()
-  {
-    if (isInited) return (GeneratorDSLPackage)EPackage.Registry.INSTANCE.getEPackage(GeneratorDSLPackage.eNS_URI);
-
-    // Obtain or create and register package
-    Object registeredGeneratorDSLPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
-    GeneratorDSLPackageImpl theGeneratorDSLPackage = registeredGeneratorDSLPackage instanceof GeneratorDSLPackageImpl ? (GeneratorDSLPackageImpl)registeredGeneratorDSLPackage : new GeneratorDSLPackageImpl();
-
-    isInited = true;
-
-    // Initialize simple dependencies
-    DlPackage.eINSTANCE.eClass();
-    InstancePackage.eINSTANCE.eClass();
-    ELPackage.eINSTANCE.eClass();
-    DdlPackage.eINSTANCE.eClass();
-
-    // Create package meta-data objects
-    theGeneratorDSLPackage.createPackageContents();
-
-    // Initialize created meta-data
-    theGeneratorDSLPackage.initializePackageContents();
-
-    // Mark meta-data to indicate it can't be changed
-    theGeneratorDSLPackage.freeze();
-
-    // Update the registry and return the package
-    EPackage.Registry.INSTANCE.put(GeneratorDSLPackage.eNS_URI, theGeneratorDSLPackage);
-    return theGeneratorDSLPackage;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getConfiguration()
-  {
-    return configurationEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EReference getConfiguration_Uses()
-  {
-    return (EReference)configurationEClass.getEStructuralFeatures().get(0);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EReference getConfiguration_Generators()
-  {
-    return (EReference)configurationEClass.getEStructuralFeatures().get(1);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EReference getConfiguration_Functions()
-  {
-    return (EReference)configurationEClass.getEStructuralFeatures().get(2);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EReference getConfiguration_Statements()
-  {
-    return (EReference)configurationEClass.getEStructuralFeatures().get(3);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getUse()
-  {
-    return useEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EAttribute getUse_ImportURI()
-  {
-    return (EAttribute)useEClass.getEStructuralFeatures().get(0);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getParametrizedFunctionDefinition()
-  {
-    return parametrizedFunctionDefinitionEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EAttribute getParametrizedFunctionDefinition_Name()
-  {
-    return (EAttribute)parametrizedFunctionDefinitionEClass.getEStructuralFeatures().get(0);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EReference getParametrizedFunctionDefinition_Definition()
-  {
-    return (EReference)parametrizedFunctionDefinitionEClass.getEStructuralFeatures().get(1);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getGeneratorDefinition()
-  {
-    return generatorDefinitionEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EAttribute getGeneratorDefinition_Name()
-  {
-    return (EAttribute)generatorDefinitionEClass.getEStructuralFeatures().get(0);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EReference getGeneratorDefinition_Definition()
-  {
-    return (EReference)generatorDefinitionEClass.getEStructuralFeatures().get(1);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getStatement()
-  {
-    return statementEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getForStatement()
-  {
-    return forStatementEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EAttribute getForStatement_Name()
-  {
-    return (EAttribute)forStatementEClass.getEStructuralFeatures().get(0);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EReference getForStatement_Range()
-  {
-    return (EReference)forStatementEClass.getEStructuralFeatures().get(1);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EReference getForStatement_Statements()
-  {
-    return (EReference)forStatementEClass.getEStructuralFeatures().get(2);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getRange()
-  {
-    return rangeEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getCounterRange()
-  {
-    return counterRangeEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EAttribute getCounterRange_Start()
-  {
-    return (EAttribute)counterRangeEClass.getEStructuralFeatures().get(0);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EAttribute getCounterRange_End()
-  {
-    return (EAttribute)counterRangeEClass.getEStructuralFeatures().get(1);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getFunctions()
-  {
-    return functionsEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EReference getFunctions_FunctionReferences()
-  {
-    return (EReference)functionsEClass.getEStructuralFeatures().get(0);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getFunctionReferences()
-  {
-    return functionReferencesEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EReference getFunctionReferences_Functions()
-  {
-    return (EReference)functionReferencesEClass.getEStructuralFeatures().get(0);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getGenerators()
-  {
-    return generatorsEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EReference getGenerators_GeneratorReferences()
-  {
-    return (EReference)generatorsEClass.getEStructuralFeatures().get(0);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getGeneratorReferences()
-  {
-    return generatorReferencesEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EReference getGeneratorReferences_Generators()
-  {
-    return (EReference)generatorReferencesEClass.getEStructuralFeatures().get(0);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getApplyStatement()
-  {
-    return applyStatementEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EAttribute getApplyStatement_File()
-  {
-    return (EAttribute)applyStatementEClass.getEStructuralFeatures().get(0);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EAttribute getApplyStatement_Count()
-  {
-    return (EAttribute)applyStatementEClass.getEStructuralFeatures().get(1);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EReference getApplyStatement_Function()
-  {
-    return (EReference)applyStatementEClass.getEStructuralFeatures().get(2);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EReference getApplyStatement_Generator()
-  {
-    return (EReference)applyStatementEClass.getEStructuralFeatures().get(3);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getGeneratorReference()
-  {
-    return generatorReferenceEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getGeneratorDefinitionReference()
-  {
-    return generatorDefinitionReferenceEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EReference getGeneratorDefinitionReference_Definition()
-  {
-    return (EReference)generatorDefinitionReferenceEClass.getEStructuralFeatures().get(0);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getFunctionReference()
-  {
-    return functionReferenceEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getFunctionDefReference()
-  {
-    return functionDefReferenceEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getLoopVariable()
-  {
-    return loopVariableEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EReference getLoopVariable_Definition()
-  {
-    return (EReference)loopVariableEClass.getEStructuralFeatures().get(0);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getFunctionDefinitionReference()
-  {
-    return functionDefinitionReferenceEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EReference getFunctionDefinitionReference_Definition()
-  {
-    return (EReference)functionDefinitionReferenceEClass.getEStructuralFeatures().get(0);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EClass getParametrizedFunctionDefinitionReference()
-  {
-    return parametrizedFunctionDefinitionReferenceEClass;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EReference getParametrizedFunctionDefinitionReference_Definition()
-  {
-    return (EReference)parametrizedFunctionDefinitionReferenceEClass.getEStructuralFeatures().get(0);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public GeneratorDSLFactory getGeneratorDSLFactory()
-  {
-    return (GeneratorDSLFactory)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
-    configurationEClass = createEClass(CONFIGURATION);
-    createEReference(configurationEClass, CONFIGURATION__USES);
-    createEReference(configurationEClass, CONFIGURATION__GENERATORS);
-    createEReference(configurationEClass, CONFIGURATION__FUNCTIONS);
-    createEReference(configurationEClass, CONFIGURATION__STATEMENTS);
-
-    useEClass = createEClass(USE);
-    createEAttribute(useEClass, USE__IMPORT_URI);
-
-    parametrizedFunctionDefinitionEClass = createEClass(PARAMETRIZED_FUNCTION_DEFINITION);
-    createEAttribute(parametrizedFunctionDefinitionEClass, PARAMETRIZED_FUNCTION_DEFINITION__NAME);
-    createEReference(parametrizedFunctionDefinitionEClass, PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION);
-
-    generatorDefinitionEClass = createEClass(GENERATOR_DEFINITION);
-    createEAttribute(generatorDefinitionEClass, GENERATOR_DEFINITION__NAME);
-    createEReference(generatorDefinitionEClass, GENERATOR_DEFINITION__DEFINITION);
-
-    statementEClass = createEClass(STATEMENT);
-
-    forStatementEClass = createEClass(FOR_STATEMENT);
-    createEAttribute(forStatementEClass, FOR_STATEMENT__NAME);
-    createEReference(forStatementEClass, FOR_STATEMENT__RANGE);
-    createEReference(forStatementEClass, FOR_STATEMENT__STATEMENTS);
-
-    rangeEClass = createEClass(RANGE);
-
-    counterRangeEClass = createEClass(COUNTER_RANGE);
-    createEAttribute(counterRangeEClass, COUNTER_RANGE__START);
-    createEAttribute(counterRangeEClass, COUNTER_RANGE__END);
-
-    functionsEClass = createEClass(FUNCTIONS);
-    createEReference(functionsEClass, FUNCTIONS__FUNCTION_REFERENCES);
-
-    functionReferencesEClass = createEClass(FUNCTION_REFERENCES);
-    createEReference(functionReferencesEClass, FUNCTION_REFERENCES__FUNCTIONS);
-
-    generatorsEClass = createEClass(GENERATORS);
-    createEReference(generatorsEClass, GENERATORS__GENERATOR_REFERENCES);
-
-    generatorReferencesEClass = createEClass(GENERATOR_REFERENCES);
-    createEReference(generatorReferencesEClass, GENERATOR_REFERENCES__GENERATORS);
-
-    applyStatementEClass = createEClass(APPLY_STATEMENT);
-    createEAttribute(applyStatementEClass, APPLY_STATEMENT__FILE);
-    createEAttribute(applyStatementEClass, APPLY_STATEMENT__COUNT);
-    createEReference(applyStatementEClass, APPLY_STATEMENT__FUNCTION);
-    createEReference(applyStatementEClass, APPLY_STATEMENT__GENERATOR);
-
-    generatorReferenceEClass = createEClass(GENERATOR_REFERENCE);
-
-    generatorDefinitionReferenceEClass = createEClass(GENERATOR_DEFINITION_REFERENCE);
-    createEReference(generatorDefinitionReferenceEClass, GENERATOR_DEFINITION_REFERENCE__DEFINITION);
-
-    functionReferenceEClass = createEClass(FUNCTION_REFERENCE);
-
-    functionDefReferenceEClass = createEClass(FUNCTION_DEF_REFERENCE);
-
-    loopVariableEClass = createEClass(LOOP_VARIABLE);
-    createEReference(loopVariableEClass, LOOP_VARIABLE__DEFINITION);
-
-    functionDefinitionReferenceEClass = createEClass(FUNCTION_DEFINITION_REFERENCE);
-    createEReference(functionDefinitionReferenceEClass, FUNCTION_DEFINITION_REFERENCE__DEFINITION);
-
-    parametrizedFunctionDefinitionReferenceEClass = createEClass(PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE);
-    createEReference(parametrizedFunctionDefinitionReferenceEClass, PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION);
-  }
-
-  /**
-   * <!-- 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
-    InstancePackage theInstancePackage = (InstancePackage)EPackage.Registry.INSTANCE.getEPackage(InstancePackage.eNS_URI);
-    DlPackage theDlPackage = (DlPackage)EPackage.Registry.INSTANCE.getEPackage(DlPackage.eNS_URI);
-
-    // Create type parameters
-
-    // Set bounds for type parameters
-
-    // Add supertypes to classes
-    forStatementEClass.getESuperTypes().add(this.getStatement());
-    counterRangeEClass.getESuperTypes().add(this.getRange());
-    functionsEClass.getESuperTypes().add(this.getRange());
-    generatorsEClass.getESuperTypes().add(this.getRange());
-    applyStatementEClass.getESuperTypes().add(this.getStatement());
-    generatorDefinitionReferenceEClass.getESuperTypes().add(this.getGeneratorReference());
-    functionDefReferenceEClass.getESuperTypes().add(this.getFunctionReference());
-    loopVariableEClass.getESuperTypes().add(this.getGeneratorReference());
-    loopVariableEClass.getESuperTypes().add(this.getFunctionReference());
-    functionDefinitionReferenceEClass.getESuperTypes().add(this.getFunctionDefReference());
-    parametrizedFunctionDefinitionReferenceEClass.getESuperTypes().add(this.getFunctionDefReference());
-
-    // Initialize classes and features; add operations and parameters
-    initEClass(configurationEClass, Configuration.class, "Configuration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEReference(getConfiguration_Uses(), this.getUse(), null, "uses", null, 0, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-    initEReference(getConfiguration_Generators(), this.getGeneratorDefinition(), null, "generators", null, 0, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-    initEReference(getConfiguration_Functions(), this.getParametrizedFunctionDefinition(), null, "functions", null, 0, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-    initEReference(getConfiguration_Statements(), this.getStatement(), null, "statements", null, 0, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-    initEClass(useEClass, Use.class, "Use", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEAttribute(getUse_ImportURI(), ecorePackage.getEString(), "importURI", null, 0, 1, Use.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-    initEClass(parametrizedFunctionDefinitionEClass, ParametrizedFunctionDefinition.class, "ParametrizedFunctionDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEAttribute(getParametrizedFunctionDefinition_Name(), ecorePackage.getEString(), "name", null, 0, 1, ParametrizedFunctionDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-    initEReference(getParametrizedFunctionDefinition_Definition(), theInstancePackage.getInstance(), null, "definition", null, 0, 1, ParametrizedFunctionDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-    initEClass(generatorDefinitionEClass, GeneratorDefinition.class, "GeneratorDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEAttribute(getGeneratorDefinition_Name(), ecorePackage.getEString(), "name", null, 0, 1, GeneratorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-    initEReference(getGeneratorDefinition_Definition(), theInstancePackage.getInstance(), null, "definition", null, 0, 1, GeneratorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-    initEClass(statementEClass, Statement.class, "Statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-    initEClass(forStatementEClass, ForStatement.class, "ForStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEAttribute(getForStatement_Name(), ecorePackage.getEString(), "name", null, 0, 1, ForStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-    initEReference(getForStatement_Range(), this.getRange(), null, "range", null, 0, 1, ForStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-    initEReference(getForStatement_Statements(), this.getStatement(), null, "statements", null, 0, -1, ForStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-    initEClass(rangeEClass, Range.class, "Range", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-    initEClass(counterRangeEClass, CounterRange.class, "CounterRange", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEAttribute(getCounterRange_Start(), ecorePackage.getEInt(), "start", null, 0, 1, CounterRange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-    initEAttribute(getCounterRange_End(), ecorePackage.getEInt(), "end", null, 0, 1, CounterRange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-    initEClass(functionsEClass, Functions.class, "Functions", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEReference(getFunctions_FunctionReferences(), this.getFunctionReferences(), null, "functionReferences", null, 0, 1, Functions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-    initEClass(functionReferencesEClass, FunctionReferences.class, "FunctionReferences", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEReference(getFunctionReferences_Functions(), this.getFunctionDefReference(), null, "functions", null, 0, -1, FunctionReferences.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-    initEClass(generatorsEClass, Generators.class, "Generators", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEReference(getGenerators_GeneratorReferences(), this.getGeneratorReferences(), null, "generatorReferences", null, 0, 1, Generators.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-    initEClass(generatorReferencesEClass, GeneratorReferences.class, "GeneratorReferences", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEReference(getGeneratorReferences_Generators(), this.getGeneratorDefinition(), null, "generators", null, 0, -1, GeneratorReferences.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-    initEClass(applyStatementEClass, ApplyStatement.class, "ApplyStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEAttribute(getApplyStatement_File(), ecorePackage.getEString(), "file", null, 0, 1, ApplyStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-    initEAttribute(getApplyStatement_Count(), ecorePackage.getEInt(), "count", null, 0, 1, ApplyStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-    initEReference(getApplyStatement_Function(), this.getFunctionReference(), null, "function", null, 0, 1, ApplyStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-    initEReference(getApplyStatement_Generator(), this.getGeneratorReference(), null, "generator", null, 0, 1, ApplyStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-    initEClass(generatorReferenceEClass, GeneratorReference.class, "GeneratorReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-    initEClass(generatorDefinitionReferenceEClass, GeneratorDefinitionReference.class, "GeneratorDefinitionReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEReference(getGeneratorDefinitionReference_Definition(), this.getGeneratorDefinition(), null, "definition", null, 0, 1, GeneratorDefinitionReference.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);
-
-    initEClass(functionDefReferenceEClass, FunctionDefReference.class, "FunctionDefReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-    initEClass(loopVariableEClass, LoopVariable.class, "LoopVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEReference(getLoopVariable_Definition(), this.getForStatement(), null, "definition", null, 0, 1, LoopVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-    initEClass(functionDefinitionReferenceEClass, FunctionDefinitionReference.class, "FunctionDefinitionReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEReference(getFunctionDefinitionReference_Definition(), theDlPackage.getFunctionDefinition(), null, "definition", null, 0, 1, FunctionDefinitionReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-    initEClass(parametrizedFunctionDefinitionReferenceEClass, ParametrizedFunctionDefinitionReference.class, "ParametrizedFunctionDefinitionReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-    initEReference(getParametrizedFunctionDefinitionReference_Definition(), this.getFunctionDefinitionReference(), null, "definition", null, 0, 1, ParametrizedFunctionDefinitionReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-    // Create resource
-    createResource(eNS_URI);
-  }
-
-} //GeneratorDSLPackageImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorDefinitionImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorDefinitionImpl.java
deleted file mode 100644
index 4e72a2a2447ae4725f7c442db67daa2959e14f36..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorDefinitionImpl.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition;
-
-import de.evoal.languages.model.instance.Instance;
-
-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;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Generator Definition</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDefinitionImpl#getName <em>Name</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDefinitionImpl#getDefinition <em>Definition</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class GeneratorDefinitionImpl extends MinimalEObjectImpl.Container implements GeneratorDefinition
-{
-  /**
-   * 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 #getDefinition() <em>Definition</em>}' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getDefinition()
-   * @generated
-   * @ordered
-   */
-  protected Instance definition;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected GeneratorDefinitionImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.GENERATOR_DEFINITION;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public String getName()
-  {
-    return name;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void setName(String newName)
-  {
-    String oldName = name;
-    name = newName;
-    if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.GENERATOR_DEFINITION__NAME, oldName, name));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public Instance getDefinition()
-  {
-    return definition;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public NotificationChain basicSetDefinition(Instance newDefinition, NotificationChain msgs)
-  {
-    Instance oldDefinition = definition;
-    definition = newDefinition;
-    if (eNotificationRequired())
-    {
-      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.GENERATOR_DEFINITION__DEFINITION, oldDefinition, newDefinition);
-      if (msgs == null) msgs = notification; else msgs.add(notification);
-    }
-    return msgs;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void setDefinition(Instance newDefinition)
-  {
-    if (newDefinition != definition)
-    {
-      NotificationChain msgs = null;
-      if (definition != null)
-        msgs = ((InternalEObject)definition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - GeneratorDSLPackage.GENERATOR_DEFINITION__DEFINITION, null, msgs);
-      if (newDefinition != null)
-        msgs = ((InternalEObject)newDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - GeneratorDSLPackage.GENERATOR_DEFINITION__DEFINITION, null, msgs);
-      msgs = basicSetDefinition(newDefinition, msgs);
-      if (msgs != null) msgs.dispatch();
-    }
-    else if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.GENERATOR_DEFINITION__DEFINITION, newDefinition, newDefinition));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.GENERATOR_DEFINITION__DEFINITION:
-        return basicSetDefinition(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 GeneratorDSLPackage.GENERATOR_DEFINITION__NAME:
-        return getName();
-      case GeneratorDSLPackage.GENERATOR_DEFINITION__DEFINITION:
-        return getDefinition();
-    }
-    return super.eGet(featureID, resolve, coreType);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eSet(int featureID, Object newValue)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.GENERATOR_DEFINITION__NAME:
-        setName((String)newValue);
-        return;
-      case GeneratorDSLPackage.GENERATOR_DEFINITION__DEFINITION:
-        setDefinition((Instance)newValue);
-        return;
-    }
-    super.eSet(featureID, newValue);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eUnset(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.GENERATOR_DEFINITION__NAME:
-        setName(NAME_EDEFAULT);
-        return;
-      case GeneratorDSLPackage.GENERATOR_DEFINITION__DEFINITION:
-        setDefinition((Instance)null);
-        return;
-    }
-    super.eUnset(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public boolean eIsSet(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.GENERATOR_DEFINITION__NAME:
-        return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-      case GeneratorDSLPackage.GENERATOR_DEFINITION__DEFINITION:
-        return definition != null;
-    }
-    return super.eIsSet(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public String toString()
-  {
-    if (eIsProxy()) return super.toString();
-
-    StringBuilder result = new StringBuilder(super.toString());
-    result.append(" (name: ");
-    result.append(name);
-    result.append(')');
-    return result.toString();
-  }
-
-} //GeneratorDefinitionImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorDefinitionReferenceImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorDefinitionReferenceImpl.java
deleted file mode 100644
index 388b771556547e9039f9f17e9f34447fa86ae253..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorDefinitionReferenceImpl.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinitionReference;
-
-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;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Generator Definition Reference</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorDefinitionReferenceImpl#getDefinition <em>Definition</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class GeneratorDefinitionReferenceImpl extends GeneratorReferenceImpl implements GeneratorDefinitionReference
-{
-  /**
-   * The cached value of the '{@link #getDefinition() <em>Definition</em>}' reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getDefinition()
-   * @generated
-   * @ordered
-   */
-  protected GeneratorDefinition definition;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected GeneratorDefinitionReferenceImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.GENERATOR_DEFINITION_REFERENCE;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public GeneratorDefinition getDefinition()
-  {
-    if (definition != null && definition.eIsProxy())
-    {
-      InternalEObject oldDefinition = (InternalEObject)definition;
-      definition = (GeneratorDefinition)eResolveProxy(oldDefinition);
-      if (definition != oldDefinition)
-      {
-        if (eNotificationRequired())
-          eNotify(new ENotificationImpl(this, Notification.RESOLVE, GeneratorDSLPackage.GENERATOR_DEFINITION_REFERENCE__DEFINITION, oldDefinition, definition));
-      }
-    }
-    return definition;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public GeneratorDefinition basicGetDefinition()
-  {
-    return definition;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void setDefinition(GeneratorDefinition newDefinition)
-  {
-    GeneratorDefinition oldDefinition = definition;
-    definition = newDefinition;
-    if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.GENERATOR_DEFINITION_REFERENCE__DEFINITION, oldDefinition, definition));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public Object eGet(int featureID, boolean resolve, boolean coreType)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.GENERATOR_DEFINITION_REFERENCE__DEFINITION:
-        if (resolve) return getDefinition();
-        return basicGetDefinition();
-    }
-    return super.eGet(featureID, resolve, coreType);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eSet(int featureID, Object newValue)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.GENERATOR_DEFINITION_REFERENCE__DEFINITION:
-        setDefinition((GeneratorDefinition)newValue);
-        return;
-    }
-    super.eSet(featureID, newValue);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eUnset(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.GENERATOR_DEFINITION_REFERENCE__DEFINITION:
-        setDefinition((GeneratorDefinition)null);
-        return;
-    }
-    super.eUnset(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public boolean eIsSet(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.GENERATOR_DEFINITION_REFERENCE__DEFINITION:
-        return definition != null;
-    }
-    return super.eIsSet(featureID);
-  }
-
-} //GeneratorDefinitionReferenceImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorReferenceImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorReferenceImpl.java
deleted file mode 100644
index 7f1ffc0e62c8f5ff95344b46b0087b5d4424ee01..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorReferenceImpl.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorReference;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Generator Reference</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class GeneratorReferenceImpl extends MinimalEObjectImpl.Container implements GeneratorReference
-{
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected GeneratorReferenceImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.GENERATOR_REFERENCE;
-  }
-
-} //GeneratorReferenceImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorReferencesImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorReferencesImpl.java
deleted file mode 100644
index 70b2adade32b6931c3ccf25bd2b00e7b28ba5319..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorReferencesImpl.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorReferences;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectResolvingEList;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Generator References</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorReferencesImpl#getGenerators <em>Generators</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class GeneratorReferencesImpl extends MinimalEObjectImpl.Container implements GeneratorReferences
-{
-  /**
-   * The cached value of the '{@link #getGenerators() <em>Generators</em>}' reference list.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getGenerators()
-   * @generated
-   * @ordered
-   */
-  protected EList<GeneratorDefinition> generators;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected GeneratorReferencesImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.GENERATOR_REFERENCES;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public EList<GeneratorDefinition> getGenerators()
-  {
-    if (generators == null)
-    {
-      generators = new EObjectResolvingEList<GeneratorDefinition>(GeneratorDefinition.class, this, GeneratorDSLPackage.GENERATOR_REFERENCES__GENERATORS);
-    }
-    return generators;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public Object eGet(int featureID, boolean resolve, boolean coreType)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.GENERATOR_REFERENCES__GENERATORS:
-        return getGenerators();
-    }
-    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 GeneratorDSLPackage.GENERATOR_REFERENCES__GENERATORS:
-        getGenerators().clear();
-        getGenerators().addAll((Collection<? extends GeneratorDefinition>)newValue);
-        return;
-    }
-    super.eSet(featureID, newValue);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eUnset(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.GENERATOR_REFERENCES__GENERATORS:
-        getGenerators().clear();
-        return;
-    }
-    super.eUnset(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public boolean eIsSet(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.GENERATOR_REFERENCES__GENERATORS:
-        return generators != null && !generators.isEmpty();
-    }
-    return super.eIsSet(featureID);
-  }
-
-} //GeneratorReferencesImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorsImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorsImpl.java
deleted file mode 100644
index eb2180bbb1b3d7cf8a5b96efeb5037dc9c5b9e89..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/GeneratorsImpl.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorReferences;
-import de.evoal.languages.model.generator.dsl.generatorDSL.Generators;
-
-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;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Generators</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.GeneratorsImpl#getGeneratorReferences <em>Generator References</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class GeneratorsImpl extends RangeImpl implements Generators
-{
-  /**
-   * The cached value of the '{@link #getGeneratorReferences() <em>Generator References</em>}' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getGeneratorReferences()
-   * @generated
-   * @ordered
-   */
-  protected GeneratorReferences generatorReferences;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected GeneratorsImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.GENERATORS;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public GeneratorReferences getGeneratorReferences()
-  {
-    return generatorReferences;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public NotificationChain basicSetGeneratorReferences(GeneratorReferences newGeneratorReferences, NotificationChain msgs)
-  {
-    GeneratorReferences oldGeneratorReferences = generatorReferences;
-    generatorReferences = newGeneratorReferences;
-    if (eNotificationRequired())
-    {
-      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.GENERATORS__GENERATOR_REFERENCES, oldGeneratorReferences, newGeneratorReferences);
-      if (msgs == null) msgs = notification; else msgs.add(notification);
-    }
-    return msgs;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void setGeneratorReferences(GeneratorReferences newGeneratorReferences)
-  {
-    if (newGeneratorReferences != generatorReferences)
-    {
-      NotificationChain msgs = null;
-      if (generatorReferences != null)
-        msgs = ((InternalEObject)generatorReferences).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - GeneratorDSLPackage.GENERATORS__GENERATOR_REFERENCES, null, msgs);
-      if (newGeneratorReferences != null)
-        msgs = ((InternalEObject)newGeneratorReferences).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - GeneratorDSLPackage.GENERATORS__GENERATOR_REFERENCES, null, msgs);
-      msgs = basicSetGeneratorReferences(newGeneratorReferences, msgs);
-      if (msgs != null) msgs.dispatch();
-    }
-    else if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.GENERATORS__GENERATOR_REFERENCES, newGeneratorReferences, newGeneratorReferences));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.GENERATORS__GENERATOR_REFERENCES:
-        return basicSetGeneratorReferences(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 GeneratorDSLPackage.GENERATORS__GENERATOR_REFERENCES:
-        return getGeneratorReferences();
-    }
-    return super.eGet(featureID, resolve, coreType);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eSet(int featureID, Object newValue)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.GENERATORS__GENERATOR_REFERENCES:
-        setGeneratorReferences((GeneratorReferences)newValue);
-        return;
-    }
-    super.eSet(featureID, newValue);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eUnset(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.GENERATORS__GENERATOR_REFERENCES:
-        setGeneratorReferences((GeneratorReferences)null);
-        return;
-    }
-    super.eUnset(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public boolean eIsSet(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.GENERATORS__GENERATOR_REFERENCES:
-        return generatorReferences != null;
-    }
-    return super.eIsSet(featureID);
-  }
-
-} //GeneratorsImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/LoopVariableImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/LoopVariableImpl.java
deleted file mode 100644
index 9d8c43aa1b1b9e14e6693ea2c63c98a6fe4a1b2c..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/LoopVariableImpl.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.ForStatement;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-import de.evoal.languages.model.generator.dsl.generatorDSL.LoopVariable;
-
-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;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Loop Variable</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.LoopVariableImpl#getDefinition <em>Definition</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class LoopVariableImpl extends GeneratorReferenceImpl implements LoopVariable
-{
-  /**
-   * The cached value of the '{@link #getDefinition() <em>Definition</em>}' reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getDefinition()
-   * @generated
-   * @ordered
-   */
-  protected ForStatement definition;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected LoopVariableImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.LOOP_VARIABLE;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public ForStatement getDefinition()
-  {
-    if (definition != null && definition.eIsProxy())
-    {
-      InternalEObject oldDefinition = (InternalEObject)definition;
-      definition = (ForStatement)eResolveProxy(oldDefinition);
-      if (definition != oldDefinition)
-      {
-        if (eNotificationRequired())
-          eNotify(new ENotificationImpl(this, Notification.RESOLVE, GeneratorDSLPackage.LOOP_VARIABLE__DEFINITION, oldDefinition, definition));
-      }
-    }
-    return definition;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public ForStatement basicGetDefinition()
-  {
-    return definition;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void setDefinition(ForStatement newDefinition)
-  {
-    ForStatement oldDefinition = definition;
-    definition = newDefinition;
-    if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.LOOP_VARIABLE__DEFINITION, oldDefinition, definition));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public Object eGet(int featureID, boolean resolve, boolean coreType)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.LOOP_VARIABLE__DEFINITION:
-        if (resolve) return getDefinition();
-        return basicGetDefinition();
-    }
-    return super.eGet(featureID, resolve, coreType);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eSet(int featureID, Object newValue)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.LOOP_VARIABLE__DEFINITION:
-        setDefinition((ForStatement)newValue);
-        return;
-    }
-    super.eSet(featureID, newValue);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eUnset(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.LOOP_VARIABLE__DEFINITION:
-        setDefinition((ForStatement)null);
-        return;
-    }
-    super.eUnset(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public boolean eIsSet(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.LOOP_VARIABLE__DEFINITION:
-        return definition != null;
-    }
-    return super.eIsSet(featureID);
-  }
-
-} //LoopVariableImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/ParametrizedFunctionDefinitionImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/ParametrizedFunctionDefinitionImpl.java
deleted file mode 100644
index 11bfbce6a2c7095b216298658863902834ff2639..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/ParametrizedFunctionDefinitionImpl.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-import de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinition;
-
-import de.evoal.languages.model.instance.Instance;
-
-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;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Parametrized Function Definition</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ParametrizedFunctionDefinitionImpl#getName <em>Name</em>}</li>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ParametrizedFunctionDefinitionImpl#getDefinition <em>Definition</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ParametrizedFunctionDefinitionImpl extends MinimalEObjectImpl.Container implements ParametrizedFunctionDefinition
-{
-  /**
-   * 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 #getDefinition() <em>Definition</em>}' containment reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getDefinition()
-   * @generated
-   * @ordered
-   */
-  protected Instance definition;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected ParametrizedFunctionDefinitionImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.PARAMETRIZED_FUNCTION_DEFINITION;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public String getName()
-  {
-    return name;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void setName(String newName)
-  {
-    String oldName = name;
-    name = newName;
-    if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION__NAME, oldName, name));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public Instance getDefinition()
-  {
-    return definition;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public NotificationChain basicSetDefinition(Instance newDefinition, NotificationChain msgs)
-  {
-    Instance oldDefinition = definition;
-    definition = newDefinition;
-    if (eNotificationRequired())
-    {
-      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION, oldDefinition, newDefinition);
-      if (msgs == null) msgs = notification; else msgs.add(notification);
-    }
-    return msgs;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void setDefinition(Instance newDefinition)
-  {
-    if (newDefinition != definition)
-    {
-      NotificationChain msgs = null;
-      if (definition != null)
-        msgs = ((InternalEObject)definition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION, null, msgs);
-      if (newDefinition != null)
-        msgs = ((InternalEObject)newDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION, null, msgs);
-      msgs = basicSetDefinition(newDefinition, msgs);
-      if (msgs != null) msgs.dispatch();
-    }
-    else if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION, newDefinition, newDefinition));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION:
-        return basicSetDefinition(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 GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION__NAME:
-        return getName();
-      case GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION:
-        return getDefinition();
-    }
-    return super.eGet(featureID, resolve, coreType);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eSet(int featureID, Object newValue)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION__NAME:
-        setName((String)newValue);
-        return;
-      case GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION:
-        setDefinition((Instance)newValue);
-        return;
-    }
-    super.eSet(featureID, newValue);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eUnset(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION__NAME:
-        setName(NAME_EDEFAULT);
-        return;
-      case GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION:
-        setDefinition((Instance)null);
-        return;
-    }
-    super.eUnset(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public boolean eIsSet(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION__NAME:
-        return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-      case GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION:
-        return definition != null;
-    }
-    return super.eIsSet(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public String toString()
-  {
-    if (eIsProxy()) return super.toString();
-
-    StringBuilder result = new StringBuilder(super.toString());
-    result.append(" (name: ");
-    result.append(name);
-    result.append(')');
-    return result.toString();
-  }
-
-} //ParametrizedFunctionDefinitionImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/ParametrizedFunctionDefinitionReferenceImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/ParametrizedFunctionDefinitionReferenceImpl.java
deleted file mode 100644
index 33ba6cb7aca301fe8e51840fd4acb974b9d40a06..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/ParametrizedFunctionDefinitionReferenceImpl.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefinitionReference;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-import de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinitionReference;
-
-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;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Parametrized Function Definition Reference</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.ParametrizedFunctionDefinitionReferenceImpl#getDefinition <em>Definition</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ParametrizedFunctionDefinitionReferenceImpl extends FunctionDefReferenceImpl implements ParametrizedFunctionDefinitionReference
-{
-  /**
-   * The cached value of the '{@link #getDefinition() <em>Definition</em>}' reference.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getDefinition()
-   * @generated
-   * @ordered
-   */
-  protected FunctionDefinitionReference definition;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected ParametrizedFunctionDefinitionReferenceImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public FunctionDefinitionReference getDefinition()
-  {
-    if (definition != null && definition.eIsProxy())
-    {
-      InternalEObject oldDefinition = (InternalEObject)definition;
-      definition = (FunctionDefinitionReference)eResolveProxy(oldDefinition);
-      if (definition != oldDefinition)
-      {
-        if (eNotificationRequired())
-          eNotify(new ENotificationImpl(this, Notification.RESOLVE, GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION, oldDefinition, definition));
-      }
-    }
-    return definition;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public FunctionDefinitionReference basicGetDefinition()
-  {
-    return definition;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void setDefinition(FunctionDefinitionReference newDefinition)
-  {
-    FunctionDefinitionReference oldDefinition = definition;
-    definition = newDefinition;
-    if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION, oldDefinition, definition));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public Object eGet(int featureID, boolean resolve, boolean coreType)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION:
-        if (resolve) return getDefinition();
-        return basicGetDefinition();
-    }
-    return super.eGet(featureID, resolve, coreType);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eSet(int featureID, Object newValue)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION:
-        setDefinition((FunctionDefinitionReference)newValue);
-        return;
-    }
-    super.eSet(featureID, newValue);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eUnset(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION:
-        setDefinition((FunctionDefinitionReference)null);
-        return;
-    }
-    super.eUnset(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public boolean eIsSet(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION:
-        return definition != null;
-    }
-    return super.eIsSet(featureID);
-  }
-
-} //ParametrizedFunctionDefinitionReferenceImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/RangeImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/RangeImpl.java
deleted file mode 100644
index 6d3783e4c78e1e23d06fb02bc0e7a3dd40a3f119..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/RangeImpl.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-import de.evoal.languages.model.generator.dsl.generatorDSL.Range;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Range</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class RangeImpl extends MinimalEObjectImpl.Container implements Range
-{
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected RangeImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.RANGE;
-  }
-
-} //RangeImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/StatementImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/StatementImpl.java
deleted file mode 100644
index 47557eefcb862f2b9a401ae4c1c07ba1a93e26f6..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/StatementImpl.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-import de.evoal.languages.model.generator.dsl.generatorDSL.Statement;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Statement</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class StatementImpl extends MinimalEObjectImpl.Container implements Statement
-{
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected StatementImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.STATEMENT;
-  }
-
-} //StatementImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/UseImpl.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/UseImpl.java
deleted file mode 100644
index a1cd4ccf7f86fc94905ef5dcef57157d17916440..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/impl/UseImpl.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.impl;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-import de.evoal.languages.model.generator.dsl.generatorDSL.Use;
-
-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;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Use</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link de.evoal.languages.model.generator.dsl.generatorDSL.impl.UseImpl#getImportURI <em>Import URI</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class UseImpl extends MinimalEObjectImpl.Container implements Use
-{
-  /**
-   * The default value of the '{@link #getImportURI() <em>Import URI</em>}' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getImportURI()
-   * @generated
-   * @ordered
-   */
-  protected static final String IMPORT_URI_EDEFAULT = null;
-
-  /**
-   * The cached value of the '{@link #getImportURI() <em>Import URI</em>}' attribute.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @see #getImportURI()
-   * @generated
-   * @ordered
-   */
-  protected String importURI = IMPORT_URI_EDEFAULT;
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected UseImpl()
-  {
-    super();
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  protected EClass eStaticClass()
-  {
-    return GeneratorDSLPackage.Literals.USE;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public String getImportURI()
-  {
-    return importURI;
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void setImportURI(String newImportURI)
-  {
-    String oldImportURI = importURI;
-    importURI = newImportURI;
-    if (eNotificationRequired())
-      eNotify(new ENotificationImpl(this, Notification.SET, GeneratorDSLPackage.USE__IMPORT_URI, oldImportURI, importURI));
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public Object eGet(int featureID, boolean resolve, boolean coreType)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.USE__IMPORT_URI:
-        return getImportURI();
-    }
-    return super.eGet(featureID, resolve, coreType);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eSet(int featureID, Object newValue)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.USE__IMPORT_URI:
-        setImportURI((String)newValue);
-        return;
-    }
-    super.eSet(featureID, newValue);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public void eUnset(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.USE__IMPORT_URI:
-        setImportURI(IMPORT_URI_EDEFAULT);
-        return;
-    }
-    super.eUnset(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public boolean eIsSet(int featureID)
-  {
-    switch (featureID)
-    {
-      case GeneratorDSLPackage.USE__IMPORT_URI:
-        return IMPORT_URI_EDEFAULT == null ? importURI != null : !IMPORT_URI_EDEFAULT.equals(importURI);
-    }
-    return super.eIsSet(featureID);
-  }
-
-  /**
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  @Override
-  public String toString()
-  {
-    if (eIsProxy()) return super.toString();
-
-    StringBuilder result = new StringBuilder(super.toString());
-    result.append(" (importURI: ");
-    result.append(importURI);
-    result.append(')');
-    return result.toString();
-  }
-
-} //UseImpl
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/util/GeneratorDSLAdapterFactory.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/util/GeneratorDSLAdapterFactory.java
deleted file mode 100644
index ed53c26ea61a5a5d1e437c08283005820c4a56c4..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/util/GeneratorDSLAdapterFactory.java
+++ /dev/null
@@ -1,513 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.util;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.*;
-
-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;
-
-/**
- * <!-- 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 de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage
- * @generated
- */
-public class GeneratorDSLAdapterFactory extends AdapterFactoryImpl
-{
-  /**
-   * The cached model package.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected static GeneratorDSLPackage modelPackage;
-
-  /**
-   * Creates an instance of the adapter factory.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public GeneratorDSLAdapterFactory()
-  {
-    if (modelPackage == null)
-    {
-      modelPackage = GeneratorDSLPackage.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 GeneratorDSLSwitch<Adapter> modelSwitch =
-    new GeneratorDSLSwitch<Adapter>()
-    {
-      @Override
-      public Adapter caseConfiguration(Configuration object)
-      {
-        return createConfigurationAdapter();
-      }
-      @Override
-      public Adapter caseUse(Use object)
-      {
-        return createUseAdapter();
-      }
-      @Override
-      public Adapter caseParametrizedFunctionDefinition(ParametrizedFunctionDefinition object)
-      {
-        return createParametrizedFunctionDefinitionAdapter();
-      }
-      @Override
-      public Adapter caseGeneratorDefinition(GeneratorDefinition object)
-      {
-        return createGeneratorDefinitionAdapter();
-      }
-      @Override
-      public Adapter caseStatement(Statement object)
-      {
-        return createStatementAdapter();
-      }
-      @Override
-      public Adapter caseForStatement(ForStatement object)
-      {
-        return createForStatementAdapter();
-      }
-      @Override
-      public Adapter caseRange(Range object)
-      {
-        return createRangeAdapter();
-      }
-      @Override
-      public Adapter caseCounterRange(CounterRange object)
-      {
-        return createCounterRangeAdapter();
-      }
-      @Override
-      public Adapter caseFunctions(Functions object)
-      {
-        return createFunctionsAdapter();
-      }
-      @Override
-      public Adapter caseFunctionReferences(FunctionReferences object)
-      {
-        return createFunctionReferencesAdapter();
-      }
-      @Override
-      public Adapter caseGenerators(Generators object)
-      {
-        return createGeneratorsAdapter();
-      }
-      @Override
-      public Adapter caseGeneratorReferences(GeneratorReferences object)
-      {
-        return createGeneratorReferencesAdapter();
-      }
-      @Override
-      public Adapter caseApplyStatement(ApplyStatement object)
-      {
-        return createApplyStatementAdapter();
-      }
-      @Override
-      public Adapter caseGeneratorReference(GeneratorReference object)
-      {
-        return createGeneratorReferenceAdapter();
-      }
-      @Override
-      public Adapter caseGeneratorDefinitionReference(GeneratorDefinitionReference object)
-      {
-        return createGeneratorDefinitionReferenceAdapter();
-      }
-      @Override
-      public Adapter caseFunctionReference(FunctionReference object)
-      {
-        return createFunctionReferenceAdapter();
-      }
-      @Override
-      public Adapter caseFunctionDefReference(FunctionDefReference object)
-      {
-        return createFunctionDefReferenceAdapter();
-      }
-      @Override
-      public Adapter caseLoopVariable(LoopVariable object)
-      {
-        return createLoopVariableAdapter();
-      }
-      @Override
-      public Adapter caseFunctionDefinitionReference(FunctionDefinitionReference object)
-      {
-        return createFunctionDefinitionReferenceAdapter();
-      }
-      @Override
-      public Adapter caseParametrizedFunctionDefinitionReference(ParametrizedFunctionDefinitionReference object)
-      {
-        return createParametrizedFunctionDefinitionReferenceAdapter();
-      }
-      @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 de.evoal.languages.model.generator.dsl.generatorDSL.Configuration <em>Configuration</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 de.evoal.languages.model.generator.dsl.generatorDSL.Configuration
-   * @generated
-   */
-  public Adapter createConfigurationAdapter()
-  {
-    return null;
-  }
-
-  /**
-   * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Use <em>Use</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 de.evoal.languages.model.generator.dsl.generatorDSL.Use
-   * @generated
-   */
-  public Adapter createUseAdapter()
-  {
-    return null;
-  }
-
-  /**
-   * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinition <em>Parametrized 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 de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinition
-   * @generated
-   */
-  public Adapter createParametrizedFunctionDefinitionAdapter()
-  {
-    return null;
-  }
-
-  /**
-   * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition <em>Generator 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 de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition
-   * @generated
-   */
-  public Adapter createGeneratorDefinitionAdapter()
-  {
-    return null;
-  }
-
-  /**
-   * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Statement <em>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 de.evoal.languages.model.generator.dsl.generatorDSL.Statement
-   * @generated
-   */
-  public Adapter createStatementAdapter()
-  {
-    return null;
-  }
-
-  /**
-   * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ForStatement <em>For 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 de.evoal.languages.model.generator.dsl.generatorDSL.ForStatement
-   * @generated
-   */
-  public Adapter createForStatementAdapter()
-  {
-    return null;
-  }
-
-  /**
-   * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Range <em>Range</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 de.evoal.languages.model.generator.dsl.generatorDSL.Range
-   * @generated
-   */
-  public Adapter createRangeAdapter()
-  {
-    return null;
-  }
-
-  /**
-   * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.CounterRange <em>Counter Range</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 de.evoal.languages.model.generator.dsl.generatorDSL.CounterRange
-   * @generated
-   */
-  public Adapter createCounterRangeAdapter()
-  {
-    return null;
-  }
-
-  /**
-   * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Functions <em>Functions</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 de.evoal.languages.model.generator.dsl.generatorDSL.Functions
-   * @generated
-   */
-  public Adapter createFunctionsAdapter()
-  {
-    return null;
-  }
-
-  /**
-   * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.FunctionReferences <em>Function References</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 de.evoal.languages.model.generator.dsl.generatorDSL.FunctionReferences
-   * @generated
-   */
-  public Adapter createFunctionReferencesAdapter()
-  {
-    return null;
-  }
-
-  /**
-   * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.Generators <em>Generators</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 de.evoal.languages.model.generator.dsl.generatorDSL.Generators
-   * @generated
-   */
-  public Adapter createGeneratorsAdapter()
-  {
-    return null;
-  }
-
-  /**
-   * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorReferences <em>Generator References</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 de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorReferences
-   * @generated
-   */
-  public Adapter createGeneratorReferencesAdapter()
-  {
-    return null;
-  }
-
-  /**
-   * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement <em>Apply 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 de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement
-   * @generated
-   */
-  public Adapter createApplyStatementAdapter()
-  {
-    return null;
-  }
-
-  /**
-   * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorReference <em>Generator 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 de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorReference
-   * @generated
-   */
-  public Adapter createGeneratorReferenceAdapter()
-  {
-    return null;
-  }
-
-  /**
-   * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinitionReference <em>Generator Definition 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 de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinitionReference
-   * @generated
-   */
-  public Adapter createGeneratorDefinitionReferenceAdapter()
-  {
-    return null;
-  }
-
-  /**
-   * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.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 de.evoal.languages.model.generator.dsl.generatorDSL.FunctionReference
-   * @generated
-   */
-  public Adapter createFunctionReferenceAdapter()
-  {
-    return null;
-  }
-
-  /**
-   * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefReference <em>Function Def 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 de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefReference
-   * @generated
-   */
-  public Adapter createFunctionDefReferenceAdapter()
-  {
-    return null;
-  }
-
-  /**
-   * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.LoopVariable <em>Loop 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 de.evoal.languages.model.generator.dsl.generatorDSL.LoopVariable
-   * @generated
-   */
-  public Adapter createLoopVariableAdapter()
-  {
-    return null;
-  }
-
-  /**
-   * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefinitionReference <em>Function Definition 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 de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefinitionReference
-   * @generated
-   */
-  public Adapter createFunctionDefinitionReferenceAdapter()
-  {
-    return null;
-  }
-
-  /**
-   * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinitionReference <em>Parametrized Function Definition 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 de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinitionReference
-   * @generated
-   */
-  public Adapter createParametrizedFunctionDefinitionReferenceAdapter()
-  {
-    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;
-  }
-
-} //GeneratorDSLAdapterFactory
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/util/GeneratorDSLSwitch.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/util/GeneratorDSLSwitch.java
deleted file mode 100644
index e7511d12480a77d17feaca857ded181e565fc540..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/util/GeneratorDSLSwitch.java
+++ /dev/null
@@ -1,570 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- */
-package de.evoal.languages.model.generator.dsl.generatorDSL.util;
-
-import de.evoal.languages.model.generator.dsl.generatorDSL.*;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-
-import org.eclipse.emf.ecore.util.Switch;
-
-/**
- * <!-- 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 de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage
- * @generated
- */
-public class GeneratorDSLSwitch<T> extends Switch<T>
-{
-  /**
-   * The cached model package
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected static GeneratorDSLPackage modelPackage;
-
-  /**
-   * Creates an instance of the switch.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  public GeneratorDSLSwitch()
-  {
-    if (modelPackage == null)
-    {
-      modelPackage = GeneratorDSLPackage.eINSTANCE;
-    }
-  }
-
-  /**
-   * Checks whether this is a switch for the given package.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @param ePackage the package in question.
-   * @return whether this is a switch for the given package.
-   * @generated
-   */
-  @Override
-  protected boolean isSwitchFor(EPackage ePackage)
-  {
-    return ePackage == modelPackage;
-  }
-
-  /**
-   * Calls <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 GeneratorDSLPackage.CONFIGURATION:
-      {
-        Configuration configuration = (Configuration)theEObject;
-        T result = caseConfiguration(configuration);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      case GeneratorDSLPackage.USE:
-      {
-        Use use = (Use)theEObject;
-        T result = caseUse(use);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      case GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION:
-      {
-        ParametrizedFunctionDefinition parametrizedFunctionDefinition = (ParametrizedFunctionDefinition)theEObject;
-        T result = caseParametrizedFunctionDefinition(parametrizedFunctionDefinition);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      case GeneratorDSLPackage.GENERATOR_DEFINITION:
-      {
-        GeneratorDefinition generatorDefinition = (GeneratorDefinition)theEObject;
-        T result = caseGeneratorDefinition(generatorDefinition);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      case GeneratorDSLPackage.STATEMENT:
-      {
-        Statement statement = (Statement)theEObject;
-        T result = caseStatement(statement);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      case GeneratorDSLPackage.FOR_STATEMENT:
-      {
-        ForStatement forStatement = (ForStatement)theEObject;
-        T result = caseForStatement(forStatement);
-        if (result == null) result = caseStatement(forStatement);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      case GeneratorDSLPackage.RANGE:
-      {
-        Range range = (Range)theEObject;
-        T result = caseRange(range);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      case GeneratorDSLPackage.COUNTER_RANGE:
-      {
-        CounterRange counterRange = (CounterRange)theEObject;
-        T result = caseCounterRange(counterRange);
-        if (result == null) result = caseRange(counterRange);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      case GeneratorDSLPackage.FUNCTIONS:
-      {
-        Functions functions = (Functions)theEObject;
-        T result = caseFunctions(functions);
-        if (result == null) result = caseRange(functions);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      case GeneratorDSLPackage.FUNCTION_REFERENCES:
-      {
-        FunctionReferences functionReferences = (FunctionReferences)theEObject;
-        T result = caseFunctionReferences(functionReferences);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      case GeneratorDSLPackage.GENERATORS:
-      {
-        Generators generators = (Generators)theEObject;
-        T result = caseGenerators(generators);
-        if (result == null) result = caseRange(generators);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      case GeneratorDSLPackage.GENERATOR_REFERENCES:
-      {
-        GeneratorReferences generatorReferences = (GeneratorReferences)theEObject;
-        T result = caseGeneratorReferences(generatorReferences);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      case GeneratorDSLPackage.APPLY_STATEMENT:
-      {
-        ApplyStatement applyStatement = (ApplyStatement)theEObject;
-        T result = caseApplyStatement(applyStatement);
-        if (result == null) result = caseStatement(applyStatement);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      case GeneratorDSLPackage.GENERATOR_REFERENCE:
-      {
-        GeneratorReference generatorReference = (GeneratorReference)theEObject;
-        T result = caseGeneratorReference(generatorReference);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      case GeneratorDSLPackage.GENERATOR_DEFINITION_REFERENCE:
-      {
-        GeneratorDefinitionReference generatorDefinitionReference = (GeneratorDefinitionReference)theEObject;
-        T result = caseGeneratorDefinitionReference(generatorDefinitionReference);
-        if (result == null) result = caseGeneratorReference(generatorDefinitionReference);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      case GeneratorDSLPackage.FUNCTION_REFERENCE:
-      {
-        FunctionReference functionReference = (FunctionReference)theEObject;
-        T result = caseFunctionReference(functionReference);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      case GeneratorDSLPackage.FUNCTION_DEF_REFERENCE:
-      {
-        FunctionDefReference functionDefReference = (FunctionDefReference)theEObject;
-        T result = caseFunctionDefReference(functionDefReference);
-        if (result == null) result = caseFunctionReference(functionDefReference);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      case GeneratorDSLPackage.LOOP_VARIABLE:
-      {
-        LoopVariable loopVariable = (LoopVariable)theEObject;
-        T result = caseLoopVariable(loopVariable);
-        if (result == null) result = caseGeneratorReference(loopVariable);
-        if (result == null) result = caseFunctionReference(loopVariable);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      case GeneratorDSLPackage.FUNCTION_DEFINITION_REFERENCE:
-      {
-        FunctionDefinitionReference functionDefinitionReference = (FunctionDefinitionReference)theEObject;
-        T result = caseFunctionDefinitionReference(functionDefinitionReference);
-        if (result == null) result = caseFunctionDefReference(functionDefinitionReference);
-        if (result == null) result = caseFunctionReference(functionDefinitionReference);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      case GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE:
-      {
-        ParametrizedFunctionDefinitionReference parametrizedFunctionDefinitionReference = (ParametrizedFunctionDefinitionReference)theEObject;
-        T result = caseParametrizedFunctionDefinitionReference(parametrizedFunctionDefinitionReference);
-        if (result == null) result = caseFunctionDefReference(parametrizedFunctionDefinitionReference);
-        if (result == null) result = caseFunctionReference(parametrizedFunctionDefinitionReference);
-        if (result == null) result = defaultCase(theEObject);
-        return result;
-      }
-      default: return defaultCase(theEObject);
-    }
-  }
-
-  /**
-   * Returns the result of interpreting the object as an instance of '<em>Configuration</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>Configuration</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseConfiguration(Configuration object)
-  {
-    return null;
-  }
-
-  /**
-   * Returns the result of interpreting the object as an instance of '<em>Use</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>Use</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseUse(Use object)
-  {
-    return null;
-  }
-
-  /**
-   * Returns the result of interpreting the object as an instance of '<em>Parametrized 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>Parametrized Function Definition</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseParametrizedFunctionDefinition(ParametrizedFunctionDefinition object)
-  {
-    return null;
-  }
-
-  /**
-   * Returns the result of interpreting the object as an instance of '<em>Generator 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>Generator Definition</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseGeneratorDefinition(GeneratorDefinition object)
-  {
-    return null;
-  }
-
-  /**
-   * Returns the result of interpreting the object as an instance of '<em>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>Statement</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseStatement(Statement object)
-  {
-    return null;
-  }
-
-  /**
-   * Returns the result of interpreting the object as an instance of '<em>For 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>For Statement</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseForStatement(ForStatement object)
-  {
-    return null;
-  }
-
-  /**
-   * Returns the result of interpreting the object as an instance of '<em>Range</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>Range</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseRange(Range object)
-  {
-    return null;
-  }
-
-  /**
-   * Returns the result of interpreting the object as an instance of '<em>Counter Range</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>Counter Range</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseCounterRange(CounterRange object)
-  {
-    return null;
-  }
-
-  /**
-   * Returns the result of interpreting the object as an instance of '<em>Functions</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>Functions</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseFunctions(Functions object)
-  {
-    return null;
-  }
-
-  /**
-   * Returns the result of interpreting the object as an instance of '<em>Function References</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 References</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseFunctionReferences(FunctionReferences object)
-  {
-    return null;
-  }
-
-  /**
-   * Returns the result of interpreting the object as an instance of '<em>Generators</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>Generators</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseGenerators(Generators object)
-  {
-    return null;
-  }
-
-  /**
-   * Returns the result of interpreting the object as an instance of '<em>Generator References</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>Generator References</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseGeneratorReferences(GeneratorReferences object)
-  {
-    return null;
-  }
-
-  /**
-   * Returns the result of interpreting the object as an instance of '<em>Apply 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>Apply Statement</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseApplyStatement(ApplyStatement object)
-  {
-    return null;
-  }
-
-  /**
-   * Returns the result of interpreting the object as an instance of '<em>Generator 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>Generator Reference</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseGeneratorReference(GeneratorReference object)
-  {
-    return null;
-  }
-
-  /**
-   * Returns the result of interpreting the object as an instance of '<em>Generator Definition 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>Generator Definition Reference</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseGeneratorDefinitionReference(GeneratorDefinitionReference 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>Function Def 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 Def Reference</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseFunctionDefReference(FunctionDefReference object)
-  {
-    return null;
-  }
-
-  /**
-   * Returns the result of interpreting the object as an instance of '<em>Loop 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>Loop Variable</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseLoopVariable(LoopVariable object)
-  {
-    return null;
-  }
-
-  /**
-   * Returns the result of interpreting the object as an instance of '<em>Function Definition 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 Definition Reference</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseFunctionDefinitionReference(FunctionDefinitionReference object)
-  {
-    return null;
-  }
-
-  /**
-   * Returns the result of interpreting the object as an instance of '<em>Parametrized Function Definition 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>Parametrized Function Definition Reference</em>'.
-   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-   * @generated
-   */
-  public T caseParametrizedFunctionDefinitionReference(ParametrizedFunctionDefinitionReference 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;
-  }
-
-} //GeneratorDSLSwitch
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/serializer/GeneratorDSLSemanticSequencer.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/serializer/GeneratorDSLSemanticSequencer.java
index 2d3d46bb1bd5ef43c6aa8c245b5ba04665424927..3b81b8918aa3ac7a208b24a7c0e474a3133a53e8 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/serializer/GeneratorDSLSemanticSequencer.java
+++ b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/serializer/GeneratorDSLSemanticSequencer.java
@@ -23,22 +23,22 @@ import de.evoal.languages.model.el.StringLiteral;
 import de.evoal.languages.model.el.UnaryAddOrSubtractExpression;
 import de.evoal.languages.model.el.ValueReference;
 import de.evoal.languages.model.el.XorExpression;
-import de.evoal.languages.model.generator.dsl.generatorDSL.ApplyStatement;
-import de.evoal.languages.model.generator.dsl.generatorDSL.Configuration;
-import de.evoal.languages.model.generator.dsl.generatorDSL.CounterRange;
-import de.evoal.languages.model.generator.dsl.generatorDSL.ForStatement;
-import de.evoal.languages.model.generator.dsl.generatorDSL.FunctionDefinitionReference;
-import de.evoal.languages.model.generator.dsl.generatorDSL.FunctionReferences;
-import de.evoal.languages.model.generator.dsl.generatorDSL.Functions;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinition;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDefinitionReference;
-import de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorReferences;
-import de.evoal.languages.model.generator.dsl.generatorDSL.Generators;
-import de.evoal.languages.model.generator.dsl.generatorDSL.LoopVariable;
-import de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinition;
-import de.evoal.languages.model.generator.dsl.generatorDSL.ParametrizedFunctionDefinitionReference;
-import de.evoal.languages.model.generator.dsl.generatorDSL.Use;
+import de.evoal.languages.model.generator.ApplyStatement;
+import de.evoal.languages.model.generator.Configuration;
+import de.evoal.languages.model.generator.CounterRange;
+import de.evoal.languages.model.generator.ForStatement;
+import de.evoal.languages.model.generator.FunctionDefinitionReference;
+import de.evoal.languages.model.generator.FunctionReferences;
+import de.evoal.languages.model.generator.Functions;
+import de.evoal.languages.model.generator.GeneratorDefinition;
+import de.evoal.languages.model.generator.GeneratorDefinitionReference;
+import de.evoal.languages.model.generator.GeneratorPackage;
+import de.evoal.languages.model.generator.GeneratorReferences;
+import de.evoal.languages.model.generator.Generators;
+import de.evoal.languages.model.generator.LoopVariable;
+import de.evoal.languages.model.generator.ParametrizedFunctionDefinition;
+import de.evoal.languages.model.generator.ParametrizedFunctionDefinitionReference;
+import de.evoal.languages.model.generator.Use;
 import de.evoal.languages.model.generator.dsl.services.GeneratorDSLGrammarAccess;
 import de.evoal.languages.model.instance.Array;
 import de.evoal.languages.model.instance.Attribute;
@@ -128,51 +128,51 @@ public class GeneratorDSLSemanticSequencer extends InstanceLanguageSemanticSeque
 				sequence_XorExpressionRule(context, (XorExpression) semanticObject); 
 				return; 
 			}
-		else if (epackage == GeneratorDSLPackage.eINSTANCE)
+		else if (epackage == GeneratorPackage.eINSTANCE)
 			switch (semanticObject.eClass().getClassifierID()) {
-			case GeneratorDSLPackage.APPLY_STATEMENT:
+			case GeneratorPackage.APPLY_STATEMENT:
 				sequence_ApplyStatementRule(context, (ApplyStatement) semanticObject); 
 				return; 
-			case GeneratorDSLPackage.CONFIGURATION:
+			case GeneratorPackage.CONFIGURATION:
 				sequence_ConfigurationRule(context, (Configuration) semanticObject); 
 				return; 
-			case GeneratorDSLPackage.COUNTER_RANGE:
+			case GeneratorPackage.COUNTER_RANGE:
 				sequence_CounterRangeRule(context, (CounterRange) semanticObject); 
 				return; 
-			case GeneratorDSLPackage.FOR_STATEMENT:
+			case GeneratorPackage.FOR_STATEMENT:
 				sequence_ForStatementRule(context, (ForStatement) semanticObject); 
 				return; 
-			case GeneratorDSLPackage.FUNCTION_DEFINITION_REFERENCE:
+			case GeneratorPackage.FUNCTION_DEFINITION_REFERENCE:
 				sequence_FunctionDefinitionReferenceRule(context, (FunctionDefinitionReference) semanticObject); 
 				return; 
-			case GeneratorDSLPackage.FUNCTION_REFERENCES:
+			case GeneratorPackage.FUNCTION_REFERENCES:
 				sequence_FunctionReferencesRule(context, (FunctionReferences) semanticObject); 
 				return; 
-			case GeneratorDSLPackage.FUNCTIONS:
+			case GeneratorPackage.FUNCTIONS:
 				sequence_FunctionsRule(context, (Functions) semanticObject); 
 				return; 
-			case GeneratorDSLPackage.GENERATOR_DEFINITION:
+			case GeneratorPackage.GENERATOR_DEFINITION:
 				sequence_GeneratorDefinitionRule(context, (GeneratorDefinition) semanticObject); 
 				return; 
-			case GeneratorDSLPackage.GENERATOR_DEFINITION_REFERENCE:
+			case GeneratorPackage.GENERATOR_DEFINITION_REFERENCE:
 				sequence_GeneratorDefinitionReferenceRule(context, (GeneratorDefinitionReference) semanticObject); 
 				return; 
-			case GeneratorDSLPackage.GENERATOR_REFERENCES:
+			case GeneratorPackage.GENERATOR_REFERENCES:
 				sequence_GeneratorReferencesRule(context, (GeneratorReferences) semanticObject); 
 				return; 
-			case GeneratorDSLPackage.GENERATORS:
+			case GeneratorPackage.GENERATORS:
 				sequence_GeneratorsRule(context, (Generators) semanticObject); 
 				return; 
-			case GeneratorDSLPackage.LOOP_VARIABLE:
+			case GeneratorPackage.LOOP_VARIABLE:
 				sequence_LoopVariableReference(context, (LoopVariable) semanticObject); 
 				return; 
-			case GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION:
+			case GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION:
 				sequence_ParametrizedFunctionDefinitionRule(context, (ParametrizedFunctionDefinition) semanticObject); 
 				return; 
-			case GeneratorDSLPackage.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE:
+			case GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE:
 				sequence_ParametrizedFunctionDefinitionReferenceRule(context, (ParametrizedFunctionDefinitionReference) semanticObject); 
 				return; 
-			case GeneratorDSLPackage.USE:
+			case GeneratorPackage.USE:
 				sequence_UseRule(context, (Use) semanticObject); 
 				return; 
 			}
@@ -214,14 +214,14 @@ public class GeneratorDSLSemanticSequencer extends InstanceLanguageSemanticSeque
 	 */
 	protected void sequence_ApplyStatementRule(ISerializationContext context, ApplyStatement semanticObject) {
 		if (errorAcceptor != null) {
-			if (transientValues.isValueTransient(semanticObject, GeneratorDSLPackage.Literals.APPLY_STATEMENT__FILE) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorDSLPackage.Literals.APPLY_STATEMENT__FILE));
-			if (transientValues.isValueTransient(semanticObject, GeneratorDSLPackage.Literals.APPLY_STATEMENT__COUNT) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorDSLPackage.Literals.APPLY_STATEMENT__COUNT));
-			if (transientValues.isValueTransient(semanticObject, GeneratorDSLPackage.Literals.APPLY_STATEMENT__FUNCTION) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorDSLPackage.Literals.APPLY_STATEMENT__FUNCTION));
-			if (transientValues.isValueTransient(semanticObject, GeneratorDSLPackage.Literals.APPLY_STATEMENT__GENERATOR) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorDSLPackage.Literals.APPLY_STATEMENT__GENERATOR));
+			if (transientValues.isValueTransient(semanticObject, GeneratorPackage.Literals.APPLY_STATEMENT__FILE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorPackage.Literals.APPLY_STATEMENT__FILE));
+			if (transientValues.isValueTransient(semanticObject, GeneratorPackage.Literals.APPLY_STATEMENT__COUNT) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorPackage.Literals.APPLY_STATEMENT__COUNT));
+			if (transientValues.isValueTransient(semanticObject, GeneratorPackage.Literals.APPLY_STATEMENT__FUNCTION) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorPackage.Literals.APPLY_STATEMENT__FUNCTION));
+			if (transientValues.isValueTransient(semanticObject, GeneratorPackage.Literals.APPLY_STATEMENT__GENERATOR) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorPackage.Literals.APPLY_STATEMENT__GENERATOR));
 		}
 		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getApplyStatementRuleAccess().getFileSTRINGTerminalRuleCall_1_0(), semanticObject.getFile());
@@ -263,10 +263,10 @@ public class GeneratorDSLSemanticSequencer extends InstanceLanguageSemanticSeque
 	 */
 	protected void sequence_CounterRangeRule(ISerializationContext context, CounterRange semanticObject) {
 		if (errorAcceptor != null) {
-			if (transientValues.isValueTransient(semanticObject, GeneratorDSLPackage.Literals.COUNTER_RANGE__START) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorDSLPackage.Literals.COUNTER_RANGE__START));
-			if (transientValues.isValueTransient(semanticObject, GeneratorDSLPackage.Literals.COUNTER_RANGE__END) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorDSLPackage.Literals.COUNTER_RANGE__END));
+			if (transientValues.isValueTransient(semanticObject, GeneratorPackage.Literals.COUNTER_RANGE__START) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorPackage.Literals.COUNTER_RANGE__START));
+			if (transientValues.isValueTransient(semanticObject, GeneratorPackage.Literals.COUNTER_RANGE__END) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorPackage.Literals.COUNTER_RANGE__END));
 		}
 		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getCounterRangeRuleAccess().getStartINTTerminalRuleCall_1_0(), semanticObject.getStart());
@@ -299,11 +299,11 @@ public class GeneratorDSLSemanticSequencer extends InstanceLanguageSemanticSeque
 	 */
 	protected void sequence_FunctionDefinitionReferenceRule(ISerializationContext context, FunctionDefinitionReference semanticObject) {
 		if (errorAcceptor != null) {
-			if (transientValues.isValueTransient(semanticObject, GeneratorDSLPackage.Literals.FUNCTION_DEFINITION_REFERENCE__DEFINITION) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorDSLPackage.Literals.FUNCTION_DEFINITION_REFERENCE__DEFINITION));
+			if (transientValues.isValueTransient(semanticObject, GeneratorPackage.Literals.FUNCTION_DEFINITION_REFERENCE__DEFINITION) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorPackage.Literals.FUNCTION_DEFINITION_REFERENCE__DEFINITION));
 		}
 		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
-		feeder.accept(grammarAccess.getFunctionDefinitionReferenceRuleAccess().getDefinitionFunctionDefinitionStringOrIdParserRuleCall_2_0_1(), semanticObject.eGet(GeneratorDSLPackage.Literals.FUNCTION_DEFINITION_REFERENCE__DEFINITION, false));
+		feeder.accept(grammarAccess.getFunctionDefinitionReferenceRuleAccess().getDefinitionFunctionDefinitionStringOrIdParserRuleCall_2_0_1(), semanticObject.eGet(GeneratorPackage.Literals.FUNCTION_DEFINITION_REFERENCE__DEFINITION, false));
 		feeder.finish();
 	}
 	
@@ -343,11 +343,11 @@ public class GeneratorDSLSemanticSequencer extends InstanceLanguageSemanticSeque
 	 */
 	protected void sequence_GeneratorDefinitionReferenceRule(ISerializationContext context, GeneratorDefinitionReference semanticObject) {
 		if (errorAcceptor != null) {
-			if (transientValues.isValueTransient(semanticObject, GeneratorDSLPackage.Literals.GENERATOR_DEFINITION_REFERENCE__DEFINITION) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorDSLPackage.Literals.GENERATOR_DEFINITION_REFERENCE__DEFINITION));
+			if (transientValues.isValueTransient(semanticObject, GeneratorPackage.Literals.GENERATOR_DEFINITION_REFERENCE__DEFINITION) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorPackage.Literals.GENERATOR_DEFINITION_REFERENCE__DEFINITION));
 		}
 		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
-		feeder.accept(grammarAccess.getGeneratorDefinitionReferenceRuleAccess().getDefinitionGeneratorDefinitionStringOrIdParserRuleCall_1_0_1(), semanticObject.eGet(GeneratorDSLPackage.Literals.GENERATOR_DEFINITION_REFERENCE__DEFINITION, false));
+		feeder.accept(grammarAccess.getGeneratorDefinitionReferenceRuleAccess().getDefinitionGeneratorDefinitionStringOrIdParserRuleCall_1_0_1(), semanticObject.eGet(GeneratorPackage.Literals.GENERATOR_DEFINITION_REFERENCE__DEFINITION, false));
 		feeder.finish();
 	}
 	
@@ -361,10 +361,10 @@ public class GeneratorDSLSemanticSequencer extends InstanceLanguageSemanticSeque
 	 */
 	protected void sequence_GeneratorDefinitionRule(ISerializationContext context, GeneratorDefinition semanticObject) {
 		if (errorAcceptor != null) {
-			if (transientValues.isValueTransient(semanticObject, GeneratorDSLPackage.Literals.GENERATOR_DEFINITION__NAME) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorDSLPackage.Literals.GENERATOR_DEFINITION__NAME));
-			if (transientValues.isValueTransient(semanticObject, GeneratorDSLPackage.Literals.GENERATOR_DEFINITION__DEFINITION) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorDSLPackage.Literals.GENERATOR_DEFINITION__DEFINITION));
+			if (transientValues.isValueTransient(semanticObject, GeneratorPackage.Literals.GENERATOR_DEFINITION__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorPackage.Literals.GENERATOR_DEFINITION__NAME));
+			if (transientValues.isValueTransient(semanticObject, GeneratorPackage.Literals.GENERATOR_DEFINITION__DEFINITION) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorPackage.Literals.GENERATOR_DEFINITION__DEFINITION));
 		}
 		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getGeneratorDefinitionRuleAccess().getNameStringOrIdParserRuleCall_1_0(), semanticObject.getName());
@@ -409,11 +409,11 @@ public class GeneratorDSLSemanticSequencer extends InstanceLanguageSemanticSeque
 	 */
 	protected void sequence_LoopVariableReference(ISerializationContext context, LoopVariable semanticObject) {
 		if (errorAcceptor != null) {
-			if (transientValues.isValueTransient(semanticObject, GeneratorDSLPackage.Literals.LOOP_VARIABLE__DEFINITION) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorDSLPackage.Literals.LOOP_VARIABLE__DEFINITION));
+			if (transientValues.isValueTransient(semanticObject, GeneratorPackage.Literals.LOOP_VARIABLE__DEFINITION) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorPackage.Literals.LOOP_VARIABLE__DEFINITION));
 		}
 		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
-		feeder.accept(grammarAccess.getLoopVariableReferenceAccess().getDefinitionForStatementIDTerminalRuleCall_1_0_1(), semanticObject.eGet(GeneratorDSLPackage.Literals.LOOP_VARIABLE__DEFINITION, false));
+		feeder.accept(grammarAccess.getLoopVariableReferenceAccess().getDefinitionForStatementIDTerminalRuleCall_1_0_1(), semanticObject.eGet(GeneratorPackage.Literals.LOOP_VARIABLE__DEFINITION, false));
 		feeder.finish();
 	}
 	
@@ -429,11 +429,11 @@ public class GeneratorDSLSemanticSequencer extends InstanceLanguageSemanticSeque
 	 */
 	protected void sequence_ParametrizedFunctionDefinitionReferenceRule(ISerializationContext context, ParametrizedFunctionDefinitionReference semanticObject) {
 		if (errorAcceptor != null) {
-			if (transientValues.isValueTransient(semanticObject, GeneratorDSLPackage.Literals.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorDSLPackage.Literals.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION));
+			if (transientValues.isValueTransient(semanticObject, GeneratorPackage.Literals.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorPackage.Literals.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION));
 		}
 		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
-		feeder.accept(grammarAccess.getParametrizedFunctionDefinitionReferenceRuleAccess().getDefinitionFunctionDefinitionReferenceStringOrIdParserRuleCall_2_0_1(), semanticObject.eGet(GeneratorDSLPackage.Literals.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION, false));
+		feeder.accept(grammarAccess.getParametrizedFunctionDefinitionReferenceRuleAccess().getDefinitionFunctionDefinitionReferenceStringOrIdParserRuleCall_2_0_1(), semanticObject.eGet(GeneratorPackage.Literals.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION, false));
 		feeder.finish();
 	}
 	
@@ -447,10 +447,10 @@ public class GeneratorDSLSemanticSequencer extends InstanceLanguageSemanticSeque
 	 */
 	protected void sequence_ParametrizedFunctionDefinitionRule(ISerializationContext context, ParametrizedFunctionDefinition semanticObject) {
 		if (errorAcceptor != null) {
-			if (transientValues.isValueTransient(semanticObject, GeneratorDSLPackage.Literals.PARAMETRIZED_FUNCTION_DEFINITION__NAME) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorDSLPackage.Literals.PARAMETRIZED_FUNCTION_DEFINITION__NAME));
-			if (transientValues.isValueTransient(semanticObject, GeneratorDSLPackage.Literals.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorDSLPackage.Literals.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION));
+			if (transientValues.isValueTransient(semanticObject, GeneratorPackage.Literals.PARAMETRIZED_FUNCTION_DEFINITION__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorPackage.Literals.PARAMETRIZED_FUNCTION_DEFINITION__NAME));
+			if (transientValues.isValueTransient(semanticObject, GeneratorPackage.Literals.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorPackage.Literals.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION));
 		}
 		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getParametrizedFunctionDefinitionRuleAccess().getNameStringOrIdParserRuleCall_1_0(), semanticObject.getName());
@@ -468,8 +468,8 @@ public class GeneratorDSLSemanticSequencer extends InstanceLanguageSemanticSeque
 	 */
 	protected void sequence_UseRule(ISerializationContext context, Use semanticObject) {
 		if (errorAcceptor != null) {
-			if (transientValues.isValueTransient(semanticObject, GeneratorDSLPackage.Literals.USE__IMPORT_URI) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorDSLPackage.Literals.USE__IMPORT_URI));
+			if (transientValues.isValueTransient(semanticObject, GeneratorPackage.Literals.USE__IMPORT_URI) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GeneratorPackage.Literals.USE__IMPORT_URI));
 		}
 		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getUseRuleAccess().getImportURISTRINGTerminalRuleCall_1_0(), semanticObject.getImportURI());
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/validation/AbstractGeneratorDSLValidator.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/validation/AbstractGeneratorDSLValidator.java
index 5a6fe43d3c46fd660ac0c2eef8cbd1d3df3209db..c01cae95044f6a7ea689275467f9a2d03b192d91 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/validation/AbstractGeneratorDSLValidator.java
+++ b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/validation/AbstractGeneratorDSLValidator.java
@@ -13,7 +13,7 @@ public abstract class AbstractGeneratorDSLValidator extends InstanceLanguageVali
 	@Override
 	protected List<EPackage> getEPackages() {
 		List<EPackage> result = new ArrayList<EPackage>(super.getEPackages());
-		result.add(de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage.eINSTANCE);
+		result.add(EPackage.Registry.INSTANCE.getEPackage("https://www.evoal.de/languages/generator/1.0.0"));
 		result.add(EPackage.Registry.INSTANCE.getEPackage("https://www.evoal.de/languages/instance/1.0.0"));
 		result.add(EPackage.Registry.INSTANCE.getEPackage("https://www.evoal.de/languages/el/1.0.0"));
 		return result;
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src/de/evoal/languages/model/generator/dsl/GenerateGeneratorDSL.mwe2 b/src/languages/de.evoal.languages.model.generator.dsl/src/de/evoal/languages/model/generator/dsl/GenerateGeneratorDSL.mwe2
index 51c8080115029e652aa9bd11dd303c6378f96959..867ef519bd70673802d746c3149d2b525f31169a 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/src/de/evoal/languages/model/generator/dsl/GenerateGeneratorDSL.mwe2
+++ b/src/languages/de.evoal.languages.model.generator.dsl/src/de/evoal/languages/model/generator/dsl/GenerateGeneratorDSL.mwe2
@@ -29,6 +29,7 @@ Workflow {
 			fileExtensions = "generator"
 
 			referencedResource = "platform:/resource/de.evoal.languages.model.instance/model/model.genmodel"
+			referencedResource = "platform:/resource/de.evoal.languages.model.generator/model/model.genmodel"
 
 			serializer = {
 				generateStub = false
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src/de/evoal/languages/model/generator/dsl/GeneratorDSL.xtext b/src/languages/de.evoal.languages.model.generator.dsl/src/de/evoal/languages/model/generator/dsl/GeneratorDSL.xtext
index d9e513f9284019e859cd825fd177d0f3f7dc2c5a..a016bbc4f2507440235726447de1298d8998bd43 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/src/de/evoal/languages/model/generator/dsl/GeneratorDSL.xtext
+++ b/src/languages/de.evoal.languages.model.generator.dsl/src/de/evoal/languages/model/generator/dsl/GeneratorDSL.xtext
@@ -1,8 +1,7 @@
 grammar de.evoal.languages.model.generator.dsl.GeneratorDSL with de.evoal.languages.model.instance.dsl.InstanceLanguage
 
-generate generatorDSL "http://www.evoal.de/languages/model/generator/dsl/GeneratorDSL"
-
 import "https://www.evoal.de/languages/dl/1.0.0"
+import "https://www.evoal.de/languages/generator/1.0.0"
 
 ConfigurationRule returns Configuration:
 	(uses += UseRule)*
diff --git a/src/languages/de.evoal.languages.model.generator/.classpath b/src/languages/de.evoal.languages.model.generator/.classpath
new file mode 100644
index 0000000000000000000000000000000000000000..79ba2e81fbc66a485b5520bbefa50dc90ca383f1
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/.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-11"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src-gen/"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/src/languages/de.evoal.languages.model.generator/.gitignore b/src/languages/de.evoal.languages.model.generator/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..b83d22266ac8aa2f8df2edef68082c789727841d
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/src/languages/de.evoal.languages.model.generator/.project b/src/languages/de.evoal.languages.model.generator/.project
new file mode 100644
index 0000000000000000000000000000000000000000..a5b4bfa4f48329123e909ba010e36e8d60a3170c
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/.project
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>de.evoal.languages.model.generator</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.ocl.pivot.ui.oclbuilder</name>
+			<arguments>
+				<dictionary>
+					<key>disabledExtensions</key>
+					<value>*,essentialocl</value>
+				</dictionary>
+				<dictionary>
+					<key>disabledPaths</key>
+					<value>bin/**,target/**</value>
+				</dictionary>
+				<dictionary>
+					<key>enabledExtensions</key>
+					<value>ecore,ocl,oclinecore,oclstdlib,uml</value>
+				</dictionary>
+				<dictionary>
+					<key>enabledPaths</key>
+					<value>**</value>
+				</dictionary>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<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.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.ocl.pivot.ui.oclnature</nature>
+	</natures>
+</projectDescription>
diff --git a/src/languages/de.evoal.languages.model.generator/META-INF/MANIFEST.MF b/src/languages/de.evoal.languages.model.generator/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000000000000000000000000000000000..1e729763a2a0a802e95233b06d8d2df0b4710b11
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: de.evoal.languages.model.generator;singleton:=true
+Automatic-Module-Name: de.evoal.languages.model.generator
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ de.evoal.languages.model.instance;bundle-version="1.0.0",
+ de.evoal.languages.model.el;bundle-version="1.0.0",
+ de.evoal.languages.model.ddl;bundle-version="1.0.0"
+Eclipse-LazyStart: true
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-11
+Export-Package: de.evoal.languages.model.generator,
+ de.evoal.languages.model.generator.impl,
+ de.evoal.languages.model.generator.util
diff --git a/src/languages/de.evoal.languages.model.generator/build.properties b/src/languages/de.evoal.languages.model.generator/build.properties
new file mode 100644
index 0000000000000000000000000000000000000000..e981b6ab8957db42f68649903a7d543188690930
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+               model/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties
+jars.compile.order = .
+source.. = src-gen/
+output.. = target/classes/
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/model/generated/GeneratorDSL.ecore b/src/languages/de.evoal.languages.model.generator/model/model.ecore
similarity index 83%
rename from src/languages/de.evoal.languages.model.generator.dsl/model/generated/GeneratorDSL.ecore
rename to src/languages/de.evoal.languages.model.generator/model/model.ecore
index d8f4f54405b7f5a89bf6770e5b7cd8ebaca9a78b..e441370239144b0f77cfd870e2facf29e9f16209 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/model/generated/GeneratorDSL.ecore
+++ b/src/languages/de.evoal.languages.model.generator/model/model.ecore
@@ -1,7 +1,12 @@
 <?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="generatorDSL" nsURI="http://www.evoal.de/languages/model/generator/dsl/GeneratorDSL"
-    nsPrefix="generatorDSL">
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="generator" nsURI="https://www.evoal.de/languages/generator/1.0.0"
+    nsPrefix="generator">
+  <eAnnotations source="http://www.eclipse.org/OCL/Import">
+    <details key="dl" value="platform:/resource/de.evoal.languages.model.dl/model/model.ecore#/"/>
+    <details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore"/>
+    <details key="ins" value="platform:/resource/de.evoal.languages.model.instance/model/model.ecore#/"/>
+  </eAnnotations>
   <eClassifiers xsi:type="ecore:EClass" name="Configuration">
     <eStructuralFeatures xsi:type="ecore:EReference" name="uses" upperBound="-1" eType="#//Use"
         containment="true"/>
@@ -17,12 +22,12 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ParametrizedFunctionDefinition">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="definition" eType="ecore:EClass platform:/resource/de.evoal.languages.model.instance/model/model.ecore#//Instance"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="definition" eType="ecore:EClass ../../de.evoal.languages.model.instance/model/model.ecore#//Instance"
         containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="GeneratorDefinition">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="definition" eType="ecore:EClass platform:/resource/de.evoal.languages.model.instance/model/model.ecore#//Instance"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="definition" eType="ecore:EClass ../../de.evoal.languages.model.instance/model/model.ecore#//Instance"
         containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Statement"/>
@@ -35,8 +40,8 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Range"/>
   <eClassifiers xsi:type="ecore:EClass" name="CounterRange" eSuperTypes="#//Range">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="start" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="end" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="start" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="end" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Functions" eSuperTypes="#//Range">
     <eStructuralFeatures xsi:type="ecore:EReference" name="functionReferences" eType="#//FunctionReferences"
@@ -56,7 +61,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ApplyStatement" eSuperTypes="#//Statement">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="file" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="count" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="count" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="function" eType="#//FunctionReference"
         containment="true"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="generator" eType="#//GeneratorReference"
@@ -72,7 +77,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="definition" eType="#//ForStatement"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="FunctionDefinitionReference" eSuperTypes="#//FunctionDefReference">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="definition" eType="ecore:EClass platform:/resource/de.evoal.languages.model.dl/model/model.ecore#//FunctionDefinition"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="definition" eType="ecore:EClass ../../de.evoal.languages.model.dl/model/model.ecore#//FunctionDefinition"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ParametrizedFunctionDefinitionReference"
       eSuperTypes="#//FunctionDefReference">
diff --git a/src/languages/de.evoal.languages.model.generator/model/model.genmodel b/src/languages/de.evoal.languages.model.generator/model/model.genmodel
new file mode 100644
index 0000000000000000000000000000000000000000..dd106e0365e1a9fa3703b580ecce906d11f6a218
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/model/model.genmodel
@@ -0,0 +1,73 @@
+<?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" copyrightText="generated by Xtext 2.25.0" modelDirectory="/de.evoal.languages.model.generator/src-gen"
+    modelPluginID="de.evoal.languages.model.generator" forceOverwrite="true" modelName="generator"
+    updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+    importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
+    runtimeVersion="2.20" usedGenPackages="../../de.evoal.languages.model.ddl/model/model.genmodel#//ddl ../../de.evoal.languages.model.dl/model/model.genmodel#//dl ../../de.evoal.languages.model.el/model/model.genmodel#//el ../../de.evoal.languages.model.instance/model/model.genmodel#//instance">
+  <foreignModel>model.ecore</foreignModel>
+  <genPackages prefix="Generator" basePackage="de.evoal.languages.model" disposableProviderFactory="true"
+      fileExtensions="generator" ecorePackage="model.ecore#/">
+    <genClasses ecoreClass="model.ecore#//Configuration">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//Configuration/uses"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//Configuration/generators"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//Configuration/functions"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//Configuration/statements"/>
+    </genClasses>
+    <genClasses ecoreClass="model.ecore#//Use">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//Use/importURI"/>
+    </genClasses>
+    <genClasses ecoreClass="model.ecore#//ParametrizedFunctionDefinition">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//ParametrizedFunctionDefinition/name"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//ParametrizedFunctionDefinition/definition"/>
+    </genClasses>
+    <genClasses ecoreClass="model.ecore#//GeneratorDefinition">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//GeneratorDefinition/name"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//GeneratorDefinition/definition"/>
+    </genClasses>
+    <genClasses ecoreClass="model.ecore#//Statement"/>
+    <genClasses ecoreClass="model.ecore#//ForStatement">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//ForStatement/name"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//ForStatement/range"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//ForStatement/statements"/>
+    </genClasses>
+    <genClasses ecoreClass="model.ecore#//Range"/>
+    <genClasses ecoreClass="model.ecore#//CounterRange">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//CounterRange/start"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//CounterRange/end"/>
+    </genClasses>
+    <genClasses ecoreClass="model.ecore#//Functions">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//Functions/functionReferences"/>
+    </genClasses>
+    <genClasses ecoreClass="model.ecore#//FunctionReferences">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//FunctionReferences/functions"/>
+    </genClasses>
+    <genClasses ecoreClass="model.ecore#//Generators">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//Generators/generatorReferences"/>
+    </genClasses>
+    <genClasses ecoreClass="model.ecore#//GeneratorReferences">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference model.ecore#//GeneratorReferences/generators"/>
+    </genClasses>
+    <genClasses ecoreClass="model.ecore#//ApplyStatement">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//ApplyStatement/file"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//ApplyStatement/count"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//ApplyStatement/function"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//ApplyStatement/generator"/>
+    </genClasses>
+    <genClasses ecoreClass="model.ecore#//GeneratorReference"/>
+    <genClasses ecoreClass="model.ecore#//GeneratorDefinitionReference">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference model.ecore#//GeneratorDefinitionReference/definition"/>
+    </genClasses>
+    <genClasses ecoreClass="model.ecore#//FunctionReference"/>
+    <genClasses ecoreClass="model.ecore#//FunctionDefReference"/>
+    <genClasses ecoreClass="model.ecore#//LoopVariable">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference model.ecore#//LoopVariable/definition"/>
+    </genClasses>
+    <genClasses ecoreClass="model.ecore#//FunctionDefinitionReference">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference model.ecore#//FunctionDefinitionReference/definition"/>
+    </genClasses>
+    <genClasses ecoreClass="model.ecore#//ParametrizedFunctionDefinitionReference">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference model.ecore#//ParametrizedFunctionDefinitionReference/definition"/>
+    </genClasses>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/src/languages/de.evoal.languages.model.generator/plugin.properties b/src/languages/de.evoal.languages.model.generator/plugin.properties
new file mode 100644
index 0000000000000000000000000000000000000000..c8d8d60518740ae79a8b9624d22ece09dddeaa44
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/plugin.properties
@@ -0,0 +1,2 @@
+pluginName = EvoAl's Data Description Language
+providerName = EvoAl Project
diff --git a/src/languages/de.evoal.languages.model.generator/plugin.xml b/src/languages/de.evoal.languages.model.generator/plugin.xml
new file mode 100644
index 0000000000000000000000000000000000000000..318ee051fa8cb81ccff0680fa8e36f63a5d71ff2
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/plugin.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated model -->
+      <package
+            uri="https://www.evoal.de/languages/generator/1.0.0"
+            class="de.evoal.languages.model.generator.GeneratorPackage"
+            genModel="model/model.genmodel"/>
+   </extension>
+
+</plugin>
diff --git a/src/languages/de.evoal.languages.model.generator/pom.xml b/src/languages/de.evoal.languages.model.generator/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3bb0bf3141530a0ca3346f7749c6198e5c67d7de
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+        <groupId>de.evoal.languages</groupId>
+        <artifactId>de.evoal.languages.releng.parent</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+      <relativePath>../de.evoal.languages.releng.parent</relativePath>
+  </parent>
+
+  <artifactId>de.evoal.languages.model.generator</artifactId>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/ApplyStatement.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/ApplyStatement.java
new file mode 100644
index 0000000000000000000000000000000000000000..a3deb98e6870c6ac98bee5adb5baeb0baa34c1f6
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/ApplyStatement.java
@@ -0,0 +1,115 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Apply Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.ApplyStatement#getFile <em>File</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.ApplyStatement#getCount <em>Count</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.ApplyStatement#getFunction <em>Function</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.ApplyStatement#getGenerator <em>Generator</em>}</li>
+ * </ul>
+ *
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getApplyStatement()
+ * @model
+ * @generated
+ */
+public interface ApplyStatement extends Statement {
+	/**
+	 * Returns the value of the '<em><b>File</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>File</em>' attribute.
+	 * @see #setFile(String)
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getApplyStatement_File()
+	 * @model
+	 * @generated
+	 */
+	String getFile();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.generator.ApplyStatement#getFile <em>File</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>File</em>' attribute.
+	 * @see #getFile()
+	 * @generated
+	 */
+	void setFile(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Count</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Count</em>' attribute.
+	 * @see #setCount(int)
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getApplyStatement_Count()
+	 * @model required="true"
+	 * @generated
+	 */
+	int getCount();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.generator.ApplyStatement#getCount <em>Count</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Count</em>' attribute.
+	 * @see #getCount()
+	 * @generated
+	 */
+	void setCount(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Function</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Function</em>' containment reference.
+	 * @see #setFunction(FunctionReference)
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getApplyStatement_Function()
+	 * @model containment="true"
+	 * @generated
+	 */
+	FunctionReference getFunction();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.generator.ApplyStatement#getFunction <em>Function</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Function</em>' containment reference.
+	 * @see #getFunction()
+	 * @generated
+	 */
+	void setFunction(FunctionReference value);
+
+	/**
+	 * Returns the value of the '<em><b>Generator</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Generator</em>' containment reference.
+	 * @see #setGenerator(GeneratorReference)
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getApplyStatement_Generator()
+	 * @model containment="true"
+	 * @generated
+	 */
+	GeneratorReference getGenerator();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.generator.ApplyStatement#getGenerator <em>Generator</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Generator</em>' containment reference.
+	 * @see #getGenerator()
+	 * @generated
+	 */
+	void setGenerator(GeneratorReference value);
+
+} // ApplyStatement
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/Configuration.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/Configuration.java
new file mode 100644
index 0000000000000000000000000000000000000000..16f02d771ce346a9b9d257afe2f663d0c9fc30f5
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/Configuration.java
@@ -0,0 +1,78 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.Configuration#getUses <em>Uses</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.Configuration#getGenerators <em>Generators</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.Configuration#getFunctions <em>Functions</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.Configuration#getStatements <em>Statements</em>}</li>
+ * </ul>
+ *
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getConfiguration()
+ * @model
+ * @generated
+ */
+public interface Configuration extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Uses</b></em>' containment reference list.
+	 * The list contents are of type {@link de.evoal.languages.model.generator.Use}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Uses</em>' containment reference list.
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getConfiguration_Uses()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Use> getUses();
+
+	/**
+	 * Returns the value of the '<em><b>Generators</b></em>' containment reference list.
+	 * The list contents are of type {@link de.evoal.languages.model.generator.GeneratorDefinition}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Generators</em>' containment reference list.
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getConfiguration_Generators()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<GeneratorDefinition> getGenerators();
+
+	/**
+	 * Returns the value of the '<em><b>Functions</b></em>' containment reference list.
+	 * The list contents are of type {@link de.evoal.languages.model.generator.ParametrizedFunctionDefinition}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Functions</em>' containment reference list.
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getConfiguration_Functions()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<ParametrizedFunctionDefinition> getFunctions();
+
+	/**
+	 * Returns the value of the '<em><b>Statements</b></em>' containment reference list.
+	 * The list contents are of type {@link de.evoal.languages.model.generator.Statement}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Statements</em>' containment reference list.
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getConfiguration_Statements()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Statement> getStatements();
+
+} // Configuration
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/CounterRange.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/CounterRange.java
new file mode 100644
index 0000000000000000000000000000000000000000..145f0cf7f9899433b617a649693bc6f0c5e8a4e5
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/CounterRange.java
@@ -0,0 +1,69 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Counter Range</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.CounterRange#getStart <em>Start</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.CounterRange#getEnd <em>End</em>}</li>
+ * </ul>
+ *
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getCounterRange()
+ * @model
+ * @generated
+ */
+public interface CounterRange extends Range {
+	/**
+	 * Returns the value of the '<em><b>Start</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Start</em>' attribute.
+	 * @see #setStart(int)
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getCounterRange_Start()
+	 * @model required="true"
+	 * @generated
+	 */
+	int getStart();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.generator.CounterRange#getStart <em>Start</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Start</em>' attribute.
+	 * @see #getStart()
+	 * @generated
+	 */
+	void setStart(int value);
+
+	/**
+	 * Returns the value of the '<em><b>End</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>End</em>' attribute.
+	 * @see #setEnd(int)
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getCounterRange_End()
+	 * @model required="true"
+	 * @generated
+	 */
+	int getEnd();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.generator.CounterRange#getEnd <em>End</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>End</em>' attribute.
+	 * @see #getEnd()
+	 * @generated
+	 */
+	void setEnd(int value);
+
+} // CounterRange
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/ForStatement.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/ForStatement.java
new file mode 100644
index 0000000000000000000000000000000000000000..5de45dcfa87ee7be71b1792435d114521ab282b1
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/ForStatement.java
@@ -0,0 +1,83 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>For Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.ForStatement#getName <em>Name</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.ForStatement#getRange <em>Range</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.ForStatement#getStatements <em>Statements</em>}</li>
+ * </ul>
+ *
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getForStatement()
+ * @model
+ * @generated
+ */
+public interface ForStatement extends Statement {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getForStatement_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.generator.ForStatement#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>Range</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Range</em>' containment reference.
+	 * @see #setRange(Range)
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getForStatement_Range()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Range getRange();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.generator.ForStatement#getRange <em>Range</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Range</em>' containment reference.
+	 * @see #getRange()
+	 * @generated
+	 */
+	void setRange(Range value);
+
+	/**
+	 * Returns the value of the '<em><b>Statements</b></em>' containment reference list.
+	 * The list contents are of type {@link de.evoal.languages.model.generator.Statement}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Statements</em>' containment reference list.
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getForStatement_Statements()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Statement> getStatements();
+
+} // ForStatement
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/FunctionDefReference.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/FunctionDefReference.java
similarity index 50%
rename from src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/FunctionDefReference.java
rename to src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/FunctionDefReference.java
index a02415bbfebee0f6cce883db8c652df853a0c05b..9febf26fa03015bdded403d24a9809e86371a713 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/FunctionDefReference.java
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/FunctionDefReference.java
@@ -1,7 +1,7 @@
 /**
  * generated by Xtext 2.25.0
  */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
+package de.evoal.languages.model.generator;
 
 
 /**
@@ -10,10 +10,9 @@ package de.evoal.languages.model.generator.dsl.generatorDSL;
  * <!-- end-user-doc -->
  *
  *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getFunctionDefReference()
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getFunctionDefReference()
  * @model
  * @generated
  */
-public interface FunctionDefReference extends FunctionReference
-{
+public interface FunctionDefReference extends FunctionReference {
 } // FunctionDefReference
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/FunctionDefinitionReference.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/FunctionDefinitionReference.java
new file mode 100644
index 0000000000000000000000000000000000000000..d547008a43a3bf6a330947d7ebb95c8c0267ca12
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/FunctionDefinitionReference.java
@@ -0,0 +1,47 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator;
+
+import de.evoal.languages.model.dl.FunctionDefinition;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Function Definition Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.FunctionDefinitionReference#getDefinition <em>Definition</em>}</li>
+ * </ul>
+ *
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getFunctionDefinitionReference()
+ * @model
+ * @generated
+ */
+public interface FunctionDefinitionReference extends FunctionDefReference {
+	/**
+	 * Returns the value of the '<em><b>Definition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Definition</em>' reference.
+	 * @see #setDefinition(FunctionDefinition)
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getFunctionDefinitionReference_Definition()
+	 * @model
+	 * @generated
+	 */
+	FunctionDefinition getDefinition();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.generator.FunctionDefinitionReference#getDefinition <em>Definition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Definition</em>' reference.
+	 * @see #getDefinition()
+	 * @generated
+	 */
+	void setDefinition(FunctionDefinition value);
+
+} // FunctionDefinitionReference
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/FunctionReference.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/FunctionReference.java
similarity index 55%
rename from src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/FunctionReference.java
rename to src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/FunctionReference.java
index 8d016fff41d4c192f23237eed5c7751c8b94649e..515247b091e854ccb2382445898810fa2f78e901 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/FunctionReference.java
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/FunctionReference.java
@@ -1,7 +1,7 @@
 /**
  * generated by Xtext 2.25.0
  */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
+package de.evoal.languages.model.generator;
 
 import org.eclipse.emf.ecore.EObject;
 
@@ -11,10 +11,9 @@ import org.eclipse.emf.ecore.EObject;
  * <!-- end-user-doc -->
  *
  *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getFunctionReference()
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getFunctionReference()
  * @model
  * @generated
  */
-public interface FunctionReference extends EObject
-{
+public interface FunctionReference extends EObject {
 } // FunctionReference
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/FunctionReferences.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/FunctionReferences.java
new file mode 100644
index 0000000000000000000000000000000000000000..b7aed9be5ad6e25f68218291ed89a1d0369eb07a
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/FunctionReferences.java
@@ -0,0 +1,39 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Function References</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.FunctionReferences#getFunctions <em>Functions</em>}</li>
+ * </ul>
+ *
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getFunctionReferences()
+ * @model
+ * @generated
+ */
+public interface FunctionReferences extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Functions</b></em>' containment reference list.
+	 * The list contents are of type {@link de.evoal.languages.model.generator.FunctionDefReference}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Functions</em>' containment reference list.
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getFunctionReferences_Functions()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<FunctionDefReference> getFunctions();
+
+} // FunctionReferences
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/Functions.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/Functions.java
new file mode 100644
index 0000000000000000000000000000000000000000..7042c046d87970736c21e88756abdedca59cf641
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/Functions.java
@@ -0,0 +1,46 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Functions</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.Functions#getFunctionReferences <em>Function References</em>}</li>
+ * </ul>
+ *
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getFunctions()
+ * @model
+ * @generated
+ */
+public interface Functions extends Range {
+	/**
+	 * Returns the value of the '<em><b>Function References</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Function References</em>' containment reference.
+	 * @see #setFunctionReferences(FunctionReferences)
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getFunctions_FunctionReferences()
+	 * @model containment="true"
+	 * @generated
+	 */
+	FunctionReferences getFunctionReferences();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.generator.Functions#getFunctionReferences <em>Function References</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Function References</em>' containment reference.
+	 * @see #getFunctionReferences()
+	 * @generated
+	 */
+	void setFunctionReferences(FunctionReferences value);
+
+} // Functions
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/GeneratorDefinition.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/GeneratorDefinition.java
new file mode 100644
index 0000000000000000000000000000000000000000..63d522b484c02ee50c1f973079516da2baea38bb
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/GeneratorDefinition.java
@@ -0,0 +1,72 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator;
+
+import de.evoal.languages.model.instance.Instance;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.GeneratorDefinition#getName <em>Name</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.GeneratorDefinition#getDefinition <em>Definition</em>}</li>
+ * </ul>
+ *
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getGeneratorDefinition()
+ * @model
+ * @generated
+ */
+public interface GeneratorDefinition extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getGeneratorDefinition_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.generator.GeneratorDefinition#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>Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Definition</em>' containment reference.
+	 * @see #setDefinition(Instance)
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getGeneratorDefinition_Definition()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Instance getDefinition();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.generator.GeneratorDefinition#getDefinition <em>Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Definition</em>' containment reference.
+	 * @see #getDefinition()
+	 * @generated
+	 */
+	void setDefinition(Instance value);
+
+} // GeneratorDefinition
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/GeneratorDefinitionReference.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/GeneratorDefinitionReference.java
new file mode 100644
index 0000000000000000000000000000000000000000..0d0754ade52065c868240a19fee2375bade92fcc
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/GeneratorDefinitionReference.java
@@ -0,0 +1,46 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Definition Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.GeneratorDefinitionReference#getDefinition <em>Definition</em>}</li>
+ * </ul>
+ *
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getGeneratorDefinitionReference()
+ * @model
+ * @generated
+ */
+public interface GeneratorDefinitionReference extends GeneratorReference {
+	/**
+	 * Returns the value of the '<em><b>Definition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Definition</em>' reference.
+	 * @see #setDefinition(GeneratorDefinition)
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getGeneratorDefinitionReference_Definition()
+	 * @model
+	 * @generated
+	 */
+	GeneratorDefinition getDefinition();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.generator.GeneratorDefinitionReference#getDefinition <em>Definition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Definition</em>' reference.
+	 * @see #getDefinition()
+	 * @generated
+	 */
+	void setDefinition(GeneratorDefinition value);
+
+} // GeneratorDefinitionReference
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/GeneratorFactory.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/GeneratorFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..7c6b7704e5fc670c5c6d22ecb4edaee19e6c1084
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/GeneratorFactory.java
@@ -0,0 +1,214 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator;
+
+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 de.evoal.languages.model.generator.GeneratorPackage
+ * @generated
+ */
+public interface GeneratorFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	GeneratorFactory eINSTANCE = de.evoal.languages.model.generator.impl.GeneratorFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Configuration</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Configuration</em>'.
+	 * @generated
+	 */
+	Configuration createConfiguration();
+
+	/**
+	 * Returns a new object of class '<em>Use</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Use</em>'.
+	 * @generated
+	 */
+	Use createUse();
+
+	/**
+	 * Returns a new object of class '<em>Parametrized Function Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Parametrized Function Definition</em>'.
+	 * @generated
+	 */
+	ParametrizedFunctionDefinition createParametrizedFunctionDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Definition</em>'.
+	 * @generated
+	 */
+	GeneratorDefinition createGeneratorDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Statement</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Statement</em>'.
+	 * @generated
+	 */
+	Statement createStatement();
+
+	/**
+	 * Returns a new object of class '<em>For Statement</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>For Statement</em>'.
+	 * @generated
+	 */
+	ForStatement createForStatement();
+
+	/**
+	 * Returns a new object of class '<em>Range</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Range</em>'.
+	 * @generated
+	 */
+	Range createRange();
+
+	/**
+	 * Returns a new object of class '<em>Counter Range</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Counter Range</em>'.
+	 * @generated
+	 */
+	CounterRange createCounterRange();
+
+	/**
+	 * Returns a new object of class '<em>Functions</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Functions</em>'.
+	 * @generated
+	 */
+	Functions createFunctions();
+
+	/**
+	 * Returns a new object of class '<em>Function References</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Function References</em>'.
+	 * @generated
+	 */
+	FunctionReferences createFunctionReferences();
+
+	/**
+	 * Returns a new object of class '<em>Generators</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Generators</em>'.
+	 * @generated
+	 */
+	Generators createGenerators();
+
+	/**
+	 * Returns a new object of class '<em>References</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>References</em>'.
+	 * @generated
+	 */
+	GeneratorReferences createGeneratorReferences();
+
+	/**
+	 * Returns a new object of class '<em>Apply Statement</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Apply Statement</em>'.
+	 * @generated
+	 */
+	ApplyStatement createApplyStatement();
+
+	/**
+	 * Returns a new object of class '<em>Reference</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Reference</em>'.
+	 * @generated
+	 */
+	GeneratorReference createGeneratorReference();
+
+	/**
+	 * Returns a new object of class '<em>Definition Reference</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Definition Reference</em>'.
+	 * @generated
+	 */
+	GeneratorDefinitionReference createGeneratorDefinitionReference();
+
+	/**
+	 * 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>Function Def Reference</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Function Def Reference</em>'.
+	 * @generated
+	 */
+	FunctionDefReference createFunctionDefReference();
+
+	/**
+	 * Returns a new object of class '<em>Loop Variable</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Loop Variable</em>'.
+	 * @generated
+	 */
+	LoopVariable createLoopVariable();
+
+	/**
+	 * Returns a new object of class '<em>Function Definition Reference</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Function Definition Reference</em>'.
+	 * @generated
+	 */
+	FunctionDefinitionReference createFunctionDefinitionReference();
+
+	/**
+	 * Returns a new object of class '<em>Parametrized Function Definition Reference</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Parametrized Function Definition Reference</em>'.
+	 * @generated
+	 */
+	ParametrizedFunctionDefinitionReference createParametrizedFunctionDefinitionReference();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	GeneratorPackage getGeneratorPackage();
+
+} //GeneratorFactory
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/GeneratorPackage.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/GeneratorPackage.java
new file mode 100644
index 0000000000000000000000000000000000000000..9ccf3376b85fd890ded18afe3f3b21ced8f25719
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/GeneratorPackage.java
@@ -0,0 +1,1593 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator;
+
+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 de.evoal.languages.model.generator.GeneratorFactory
+ * @model kind="package"
+ *        annotation="http://www.eclipse.org/OCL/Import dl='platform:/resource/de.evoal.languages.model.dl/model/model.ecore#/' ecore='http://www.eclipse.org/emf/2002/Ecore' ins='platform:/resource/de.evoal.languages.model.instance/model/model.ecore#/'"
+ * @generated
+ */
+public interface GeneratorPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "generator";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "https://www.evoal.de/languages/generator/1.0.0";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "generator";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	GeneratorPackage eINSTANCE = de.evoal.languages.model.generator.impl.GeneratorPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.ConfigurationImpl <em>Configuration</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.ConfigurationImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getConfiguration()
+	 * @generated
+	 */
+	int CONFIGURATION = 0;
+
+	/**
+	 * The feature id for the '<em><b>Uses</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONFIGURATION__USES = 0;
+
+	/**
+	 * The feature id for the '<em><b>Generators</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONFIGURATION__GENERATORS = 1;
+
+	/**
+	 * The feature id for the '<em><b>Functions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONFIGURATION__FUNCTIONS = 2;
+
+	/**
+	 * The feature id for the '<em><b>Statements</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONFIGURATION__STATEMENTS = 3;
+
+	/**
+	 * The number of structural features of the '<em>Configuration</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONFIGURATION_FEATURE_COUNT = 4;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.UseImpl <em>Use</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.UseImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getUse()
+	 * @generated
+	 */
+	int USE = 1;
+
+	/**
+	 * The feature id for the '<em><b>Import URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USE__IMPORT_URI = 0;
+
+	/**
+	 * The number of structural features of the '<em>Use</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USE_FEATURE_COUNT = 1;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.ParametrizedFunctionDefinitionImpl <em>Parametrized Function Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.ParametrizedFunctionDefinitionImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getParametrizedFunctionDefinition()
+	 * @generated
+	 */
+	int PARAMETRIZED_FUNCTION_DEFINITION = 2;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETRIZED_FUNCTION_DEFINITION__NAME = 0;
+
+	/**
+	 * The feature id for the '<em><b>Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION = 1;
+
+	/**
+	 * The number of structural features of the '<em>Parametrized Function Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETRIZED_FUNCTION_DEFINITION_FEATURE_COUNT = 2;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.GeneratorDefinitionImpl <em>Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.GeneratorDefinitionImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getGeneratorDefinition()
+	 * @generated
+	 */
+	int GENERATOR_DEFINITION = 3;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GENERATOR_DEFINITION__NAME = 0;
+
+	/**
+	 * The feature id for the '<em><b>Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GENERATOR_DEFINITION__DEFINITION = 1;
+
+	/**
+	 * The number of structural features of the '<em>Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GENERATOR_DEFINITION_FEATURE_COUNT = 2;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.StatementImpl <em>Statement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.StatementImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getStatement()
+	 * @generated
+	 */
+	int STATEMENT = 4;
+
+	/**
+	 * The number of structural features of the '<em>Statement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STATEMENT_FEATURE_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.ForStatementImpl <em>For Statement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.ForStatementImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getForStatement()
+	 * @generated
+	 */
+	int FOR_STATEMENT = 5;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOR_STATEMENT__NAME = STATEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Range</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOR_STATEMENT__RANGE = STATEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Statements</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOR_STATEMENT__STATEMENTS = STATEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>For Statement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOR_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.RangeImpl <em>Range</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.RangeImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getRange()
+	 * @generated
+	 */
+	int RANGE = 6;
+
+	/**
+	 * The number of structural features of the '<em>Range</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RANGE_FEATURE_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.CounterRangeImpl <em>Counter Range</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.CounterRangeImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getCounterRange()
+	 * @generated
+	 */
+	int COUNTER_RANGE = 7;
+
+	/**
+	 * The feature id for the '<em><b>Start</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COUNTER_RANGE__START = RANGE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>End</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COUNTER_RANGE__END = RANGE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Counter Range</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COUNTER_RANGE_FEATURE_COUNT = RANGE_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.FunctionsImpl <em>Functions</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.FunctionsImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getFunctions()
+	 * @generated
+	 */
+	int FUNCTIONS = 8;
+
+	/**
+	 * The feature id for the '<em><b>Function References</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTIONS__FUNCTION_REFERENCES = RANGE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Functions</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTIONS_FEATURE_COUNT = RANGE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.FunctionReferencesImpl <em>Function References</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.FunctionReferencesImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getFunctionReferences()
+	 * @generated
+	 */
+	int FUNCTION_REFERENCES = 9;
+
+	/**
+	 * The feature id for the '<em><b>Functions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION_REFERENCES__FUNCTIONS = 0;
+
+	/**
+	 * The number of structural features of the '<em>Function References</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION_REFERENCES_FEATURE_COUNT = 1;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.GeneratorsImpl <em>Generators</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.GeneratorsImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getGenerators()
+	 * @generated
+	 */
+	int GENERATORS = 10;
+
+	/**
+	 * The feature id for the '<em><b>Generator References</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GENERATORS__GENERATOR_REFERENCES = RANGE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Generators</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GENERATORS_FEATURE_COUNT = RANGE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.GeneratorReferencesImpl <em>References</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.GeneratorReferencesImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getGeneratorReferences()
+	 * @generated
+	 */
+	int GENERATOR_REFERENCES = 11;
+
+	/**
+	 * The feature id for the '<em><b>Generators</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GENERATOR_REFERENCES__GENERATORS = 0;
+
+	/**
+	 * The number of structural features of the '<em>References</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GENERATOR_REFERENCES_FEATURE_COUNT = 1;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.ApplyStatementImpl <em>Apply Statement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.ApplyStatementImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getApplyStatement()
+	 * @generated
+	 */
+	int APPLY_STATEMENT = 12;
+
+	/**
+	 * The feature id for the '<em><b>File</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int APPLY_STATEMENT__FILE = STATEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Count</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int APPLY_STATEMENT__COUNT = STATEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Function</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int APPLY_STATEMENT__FUNCTION = STATEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Generator</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int APPLY_STATEMENT__GENERATOR = STATEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>Apply Statement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int APPLY_STATEMENT_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.GeneratorReferenceImpl <em>Reference</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.GeneratorReferenceImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getGeneratorReference()
+	 * @generated
+	 */
+	int GENERATOR_REFERENCE = 13;
+
+	/**
+	 * The number of structural features of the '<em>Reference</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GENERATOR_REFERENCE_FEATURE_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.GeneratorDefinitionReferenceImpl <em>Definition Reference</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.GeneratorDefinitionReferenceImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getGeneratorDefinitionReference()
+	 * @generated
+	 */
+	int GENERATOR_DEFINITION_REFERENCE = 14;
+
+	/**
+	 * The feature id for the '<em><b>Definition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GENERATOR_DEFINITION_REFERENCE__DEFINITION = GENERATOR_REFERENCE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Definition Reference</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GENERATOR_DEFINITION_REFERENCE_FEATURE_COUNT = GENERATOR_REFERENCE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.FunctionReferenceImpl <em>Function Reference</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.FunctionReferenceImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getFunctionReference()
+	 * @generated
+	 */
+	int FUNCTION_REFERENCE = 15;
+
+	/**
+	 * 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 = 0;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.FunctionDefReferenceImpl <em>Function Def Reference</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.FunctionDefReferenceImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getFunctionDefReference()
+	 * @generated
+	 */
+	int FUNCTION_DEF_REFERENCE = 16;
+
+	/**
+	 * The number of structural features of the '<em>Function Def Reference</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION_DEF_REFERENCE_FEATURE_COUNT = FUNCTION_REFERENCE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.LoopVariableImpl <em>Loop Variable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.LoopVariableImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getLoopVariable()
+	 * @generated
+	 */
+	int LOOP_VARIABLE = 17;
+
+	/**
+	 * The feature id for the '<em><b>Definition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LOOP_VARIABLE__DEFINITION = GENERATOR_REFERENCE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Loop Variable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LOOP_VARIABLE_FEATURE_COUNT = GENERATOR_REFERENCE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.FunctionDefinitionReferenceImpl <em>Function Definition Reference</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.FunctionDefinitionReferenceImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getFunctionDefinitionReference()
+	 * @generated
+	 */
+	int FUNCTION_DEFINITION_REFERENCE = 18;
+
+	/**
+	 * The feature id for the '<em><b>Definition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION_DEFINITION_REFERENCE__DEFINITION = FUNCTION_DEF_REFERENCE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Function Definition Reference</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION_DEFINITION_REFERENCE_FEATURE_COUNT = FUNCTION_DEF_REFERENCE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.generator.impl.ParametrizedFunctionDefinitionReferenceImpl <em>Parametrized Function Definition Reference</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.generator.impl.ParametrizedFunctionDefinitionReferenceImpl
+	 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getParametrizedFunctionDefinitionReference()
+	 * @generated
+	 */
+	int PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE = 19;
+
+	/**
+	 * The feature id for the '<em><b>Definition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION = FUNCTION_DEF_REFERENCE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Parametrized Function Definition Reference</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE_FEATURE_COUNT = FUNCTION_DEF_REFERENCE_FEATURE_COUNT + 1;
+
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.Configuration <em>Configuration</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Configuration</em>'.
+	 * @see de.evoal.languages.model.generator.Configuration
+	 * @generated
+	 */
+	EClass getConfiguration();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link de.evoal.languages.model.generator.Configuration#getUses <em>Uses</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Uses</em>'.
+	 * @see de.evoal.languages.model.generator.Configuration#getUses()
+	 * @see #getConfiguration()
+	 * @generated
+	 */
+	EReference getConfiguration_Uses();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link de.evoal.languages.model.generator.Configuration#getGenerators <em>Generators</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Generators</em>'.
+	 * @see de.evoal.languages.model.generator.Configuration#getGenerators()
+	 * @see #getConfiguration()
+	 * @generated
+	 */
+	EReference getConfiguration_Generators();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link de.evoal.languages.model.generator.Configuration#getFunctions <em>Functions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Functions</em>'.
+	 * @see de.evoal.languages.model.generator.Configuration#getFunctions()
+	 * @see #getConfiguration()
+	 * @generated
+	 */
+	EReference getConfiguration_Functions();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link de.evoal.languages.model.generator.Configuration#getStatements <em>Statements</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Statements</em>'.
+	 * @see de.evoal.languages.model.generator.Configuration#getStatements()
+	 * @see #getConfiguration()
+	 * @generated
+	 */
+	EReference getConfiguration_Statements();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.Use <em>Use</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Use</em>'.
+	 * @see de.evoal.languages.model.generator.Use
+	 * @generated
+	 */
+	EClass getUse();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.evoal.languages.model.generator.Use#getImportURI <em>Import URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Import URI</em>'.
+	 * @see de.evoal.languages.model.generator.Use#getImportURI()
+	 * @see #getUse()
+	 * @generated
+	 */
+	EAttribute getUse_ImportURI();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.ParametrizedFunctionDefinition <em>Parametrized Function Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Parametrized Function Definition</em>'.
+	 * @see de.evoal.languages.model.generator.ParametrizedFunctionDefinition
+	 * @generated
+	 */
+	EClass getParametrizedFunctionDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.evoal.languages.model.generator.ParametrizedFunctionDefinition#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see de.evoal.languages.model.generator.ParametrizedFunctionDefinition#getName()
+	 * @see #getParametrizedFunctionDefinition()
+	 * @generated
+	 */
+	EAttribute getParametrizedFunctionDefinition_Name();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link de.evoal.languages.model.generator.ParametrizedFunctionDefinition#getDefinition <em>Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Definition</em>'.
+	 * @see de.evoal.languages.model.generator.ParametrizedFunctionDefinition#getDefinition()
+	 * @see #getParametrizedFunctionDefinition()
+	 * @generated
+	 */
+	EReference getParametrizedFunctionDefinition_Definition();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.GeneratorDefinition <em>Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Definition</em>'.
+	 * @see de.evoal.languages.model.generator.GeneratorDefinition
+	 * @generated
+	 */
+	EClass getGeneratorDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.evoal.languages.model.generator.GeneratorDefinition#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see de.evoal.languages.model.generator.GeneratorDefinition#getName()
+	 * @see #getGeneratorDefinition()
+	 * @generated
+	 */
+	EAttribute getGeneratorDefinition_Name();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link de.evoal.languages.model.generator.GeneratorDefinition#getDefinition <em>Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Definition</em>'.
+	 * @see de.evoal.languages.model.generator.GeneratorDefinition#getDefinition()
+	 * @see #getGeneratorDefinition()
+	 * @generated
+	 */
+	EReference getGeneratorDefinition_Definition();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.Statement <em>Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Statement</em>'.
+	 * @see de.evoal.languages.model.generator.Statement
+	 * @generated
+	 */
+	EClass getStatement();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.ForStatement <em>For Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>For Statement</em>'.
+	 * @see de.evoal.languages.model.generator.ForStatement
+	 * @generated
+	 */
+	EClass getForStatement();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.evoal.languages.model.generator.ForStatement#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see de.evoal.languages.model.generator.ForStatement#getName()
+	 * @see #getForStatement()
+	 * @generated
+	 */
+	EAttribute getForStatement_Name();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link de.evoal.languages.model.generator.ForStatement#getRange <em>Range</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Range</em>'.
+	 * @see de.evoal.languages.model.generator.ForStatement#getRange()
+	 * @see #getForStatement()
+	 * @generated
+	 */
+	EReference getForStatement_Range();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link de.evoal.languages.model.generator.ForStatement#getStatements <em>Statements</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Statements</em>'.
+	 * @see de.evoal.languages.model.generator.ForStatement#getStatements()
+	 * @see #getForStatement()
+	 * @generated
+	 */
+	EReference getForStatement_Statements();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.Range <em>Range</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Range</em>'.
+	 * @see de.evoal.languages.model.generator.Range
+	 * @generated
+	 */
+	EClass getRange();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.CounterRange <em>Counter Range</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Counter Range</em>'.
+	 * @see de.evoal.languages.model.generator.CounterRange
+	 * @generated
+	 */
+	EClass getCounterRange();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.evoal.languages.model.generator.CounterRange#getStart <em>Start</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Start</em>'.
+	 * @see de.evoal.languages.model.generator.CounterRange#getStart()
+	 * @see #getCounterRange()
+	 * @generated
+	 */
+	EAttribute getCounterRange_Start();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.evoal.languages.model.generator.CounterRange#getEnd <em>End</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>End</em>'.
+	 * @see de.evoal.languages.model.generator.CounterRange#getEnd()
+	 * @see #getCounterRange()
+	 * @generated
+	 */
+	EAttribute getCounterRange_End();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.Functions <em>Functions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Functions</em>'.
+	 * @see de.evoal.languages.model.generator.Functions
+	 * @generated
+	 */
+	EClass getFunctions();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link de.evoal.languages.model.generator.Functions#getFunctionReferences <em>Function References</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Function References</em>'.
+	 * @see de.evoal.languages.model.generator.Functions#getFunctionReferences()
+	 * @see #getFunctions()
+	 * @generated
+	 */
+	EReference getFunctions_FunctionReferences();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.FunctionReferences <em>Function References</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Function References</em>'.
+	 * @see de.evoal.languages.model.generator.FunctionReferences
+	 * @generated
+	 */
+	EClass getFunctionReferences();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link de.evoal.languages.model.generator.FunctionReferences#getFunctions <em>Functions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Functions</em>'.
+	 * @see de.evoal.languages.model.generator.FunctionReferences#getFunctions()
+	 * @see #getFunctionReferences()
+	 * @generated
+	 */
+	EReference getFunctionReferences_Functions();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.Generators <em>Generators</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Generators</em>'.
+	 * @see de.evoal.languages.model.generator.Generators
+	 * @generated
+	 */
+	EClass getGenerators();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link de.evoal.languages.model.generator.Generators#getGeneratorReferences <em>Generator References</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Generator References</em>'.
+	 * @see de.evoal.languages.model.generator.Generators#getGeneratorReferences()
+	 * @see #getGenerators()
+	 * @generated
+	 */
+	EReference getGenerators_GeneratorReferences();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.GeneratorReferences <em>References</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>References</em>'.
+	 * @see de.evoal.languages.model.generator.GeneratorReferences
+	 * @generated
+	 */
+	EClass getGeneratorReferences();
+
+	/**
+	 * Returns the meta object for the reference list '{@link de.evoal.languages.model.generator.GeneratorReferences#getGenerators <em>Generators</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Generators</em>'.
+	 * @see de.evoal.languages.model.generator.GeneratorReferences#getGenerators()
+	 * @see #getGeneratorReferences()
+	 * @generated
+	 */
+	EReference getGeneratorReferences_Generators();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.ApplyStatement <em>Apply Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Apply Statement</em>'.
+	 * @see de.evoal.languages.model.generator.ApplyStatement
+	 * @generated
+	 */
+	EClass getApplyStatement();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.evoal.languages.model.generator.ApplyStatement#getFile <em>File</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>File</em>'.
+	 * @see de.evoal.languages.model.generator.ApplyStatement#getFile()
+	 * @see #getApplyStatement()
+	 * @generated
+	 */
+	EAttribute getApplyStatement_File();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.evoal.languages.model.generator.ApplyStatement#getCount <em>Count</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Count</em>'.
+	 * @see de.evoal.languages.model.generator.ApplyStatement#getCount()
+	 * @see #getApplyStatement()
+	 * @generated
+	 */
+	EAttribute getApplyStatement_Count();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link de.evoal.languages.model.generator.ApplyStatement#getFunction <em>Function</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Function</em>'.
+	 * @see de.evoal.languages.model.generator.ApplyStatement#getFunction()
+	 * @see #getApplyStatement()
+	 * @generated
+	 */
+	EReference getApplyStatement_Function();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link de.evoal.languages.model.generator.ApplyStatement#getGenerator <em>Generator</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Generator</em>'.
+	 * @see de.evoal.languages.model.generator.ApplyStatement#getGenerator()
+	 * @see #getApplyStatement()
+	 * @generated
+	 */
+	EReference getApplyStatement_Generator();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.GeneratorReference <em>Reference</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Reference</em>'.
+	 * @see de.evoal.languages.model.generator.GeneratorReference
+	 * @generated
+	 */
+	EClass getGeneratorReference();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.GeneratorDefinitionReference <em>Definition Reference</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Definition Reference</em>'.
+	 * @see de.evoal.languages.model.generator.GeneratorDefinitionReference
+	 * @generated
+	 */
+	EClass getGeneratorDefinitionReference();
+
+	/**
+	 * Returns the meta object for the reference '{@link de.evoal.languages.model.generator.GeneratorDefinitionReference#getDefinition <em>Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Definition</em>'.
+	 * @see de.evoal.languages.model.generator.GeneratorDefinitionReference#getDefinition()
+	 * @see #getGeneratorDefinitionReference()
+	 * @generated
+	 */
+	EReference getGeneratorDefinitionReference_Definition();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.FunctionReference <em>Function Reference</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Function Reference</em>'.
+	 * @see de.evoal.languages.model.generator.FunctionReference
+	 * @generated
+	 */
+	EClass getFunctionReference();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.FunctionDefReference <em>Function Def Reference</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Function Def Reference</em>'.
+	 * @see de.evoal.languages.model.generator.FunctionDefReference
+	 * @generated
+	 */
+	EClass getFunctionDefReference();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.LoopVariable <em>Loop Variable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Loop Variable</em>'.
+	 * @see de.evoal.languages.model.generator.LoopVariable
+	 * @generated
+	 */
+	EClass getLoopVariable();
+
+	/**
+	 * Returns the meta object for the reference '{@link de.evoal.languages.model.generator.LoopVariable#getDefinition <em>Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Definition</em>'.
+	 * @see de.evoal.languages.model.generator.LoopVariable#getDefinition()
+	 * @see #getLoopVariable()
+	 * @generated
+	 */
+	EReference getLoopVariable_Definition();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.FunctionDefinitionReference <em>Function Definition Reference</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Function Definition Reference</em>'.
+	 * @see de.evoal.languages.model.generator.FunctionDefinitionReference
+	 * @generated
+	 */
+	EClass getFunctionDefinitionReference();
+
+	/**
+	 * Returns the meta object for the reference '{@link de.evoal.languages.model.generator.FunctionDefinitionReference#getDefinition <em>Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Definition</em>'.
+	 * @see de.evoal.languages.model.generator.FunctionDefinitionReference#getDefinition()
+	 * @see #getFunctionDefinitionReference()
+	 * @generated
+	 */
+	EReference getFunctionDefinitionReference_Definition();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.generator.ParametrizedFunctionDefinitionReference <em>Parametrized Function Definition Reference</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Parametrized Function Definition Reference</em>'.
+	 * @see de.evoal.languages.model.generator.ParametrizedFunctionDefinitionReference
+	 * @generated
+	 */
+	EClass getParametrizedFunctionDefinitionReference();
+
+	/**
+	 * Returns the meta object for the reference '{@link de.evoal.languages.model.generator.ParametrizedFunctionDefinitionReference#getDefinition <em>Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Definition</em>'.
+	 * @see de.evoal.languages.model.generator.ParametrizedFunctionDefinitionReference#getDefinition()
+	 * @see #getParametrizedFunctionDefinitionReference()
+	 * @generated
+	 */
+	EReference getParametrizedFunctionDefinitionReference_Definition();
+
+	/**
+	 * 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
+	 */
+	GeneratorFactory getGeneratorFactory();
+
+	/**
+	 * <!-- 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 de.evoal.languages.model.generator.impl.ConfigurationImpl <em>Configuration</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.ConfigurationImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getConfiguration()
+		 * @generated
+		 */
+		EClass CONFIGURATION = eINSTANCE.getConfiguration();
+
+		/**
+		 * The meta object literal for the '<em><b>Uses</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CONFIGURATION__USES = eINSTANCE.getConfiguration_Uses();
+
+		/**
+		 * The meta object literal for the '<em><b>Generators</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CONFIGURATION__GENERATORS = eINSTANCE.getConfiguration_Generators();
+
+		/**
+		 * The meta object literal for the '<em><b>Functions</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CONFIGURATION__FUNCTIONS = eINSTANCE.getConfiguration_Functions();
+
+		/**
+		 * The meta object literal for the '<em><b>Statements</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CONFIGURATION__STATEMENTS = eINSTANCE.getConfiguration_Statements();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.generator.impl.UseImpl <em>Use</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.UseImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getUse()
+		 * @generated
+		 */
+		EClass USE = eINSTANCE.getUse();
+
+		/**
+		 * The meta object literal for the '<em><b>Import URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute USE__IMPORT_URI = eINSTANCE.getUse_ImportURI();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.generator.impl.ParametrizedFunctionDefinitionImpl <em>Parametrized Function Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.ParametrizedFunctionDefinitionImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getParametrizedFunctionDefinition()
+		 * @generated
+		 */
+		EClass PARAMETRIZED_FUNCTION_DEFINITION = eINSTANCE.getParametrizedFunctionDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PARAMETRIZED_FUNCTION_DEFINITION__NAME = eINSTANCE.getParametrizedFunctionDefinition_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Definition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION = eINSTANCE.getParametrizedFunctionDefinition_Definition();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.generator.impl.GeneratorDefinitionImpl <em>Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.GeneratorDefinitionImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getGeneratorDefinition()
+		 * @generated
+		 */
+		EClass GENERATOR_DEFINITION = eINSTANCE.getGeneratorDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute GENERATOR_DEFINITION__NAME = eINSTANCE.getGeneratorDefinition_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Definition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference GENERATOR_DEFINITION__DEFINITION = eINSTANCE.getGeneratorDefinition_Definition();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.generator.impl.StatementImpl <em>Statement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.StatementImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getStatement()
+		 * @generated
+		 */
+		EClass STATEMENT = eINSTANCE.getStatement();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.generator.impl.ForStatementImpl <em>For Statement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.ForStatementImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getForStatement()
+		 * @generated
+		 */
+		EClass FOR_STATEMENT = eINSTANCE.getForStatement();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FOR_STATEMENT__NAME = eINSTANCE.getForStatement_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Range</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference FOR_STATEMENT__RANGE = eINSTANCE.getForStatement_Range();
+
+		/**
+		 * The meta object literal for the '<em><b>Statements</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference FOR_STATEMENT__STATEMENTS = eINSTANCE.getForStatement_Statements();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.generator.impl.RangeImpl <em>Range</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.RangeImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getRange()
+		 * @generated
+		 */
+		EClass RANGE = eINSTANCE.getRange();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.generator.impl.CounterRangeImpl <em>Counter Range</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.CounterRangeImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getCounterRange()
+		 * @generated
+		 */
+		EClass COUNTER_RANGE = eINSTANCE.getCounterRange();
+
+		/**
+		 * The meta object literal for the '<em><b>Start</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COUNTER_RANGE__START = eINSTANCE.getCounterRange_Start();
+
+		/**
+		 * The meta object literal for the '<em><b>End</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COUNTER_RANGE__END = eINSTANCE.getCounterRange_End();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.generator.impl.FunctionsImpl <em>Functions</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.FunctionsImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getFunctions()
+		 * @generated
+		 */
+		EClass FUNCTIONS = eINSTANCE.getFunctions();
+
+		/**
+		 * The meta object literal for the '<em><b>Function References</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference FUNCTIONS__FUNCTION_REFERENCES = eINSTANCE.getFunctions_FunctionReferences();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.generator.impl.FunctionReferencesImpl <em>Function References</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.FunctionReferencesImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getFunctionReferences()
+		 * @generated
+		 */
+		EClass FUNCTION_REFERENCES = eINSTANCE.getFunctionReferences();
+
+		/**
+		 * The meta object literal for the '<em><b>Functions</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference FUNCTION_REFERENCES__FUNCTIONS = eINSTANCE.getFunctionReferences_Functions();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.generator.impl.GeneratorsImpl <em>Generators</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.GeneratorsImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getGenerators()
+		 * @generated
+		 */
+		EClass GENERATORS = eINSTANCE.getGenerators();
+
+		/**
+		 * The meta object literal for the '<em><b>Generator References</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference GENERATORS__GENERATOR_REFERENCES = eINSTANCE.getGenerators_GeneratorReferences();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.generator.impl.GeneratorReferencesImpl <em>References</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.GeneratorReferencesImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getGeneratorReferences()
+		 * @generated
+		 */
+		EClass GENERATOR_REFERENCES = eINSTANCE.getGeneratorReferences();
+
+		/**
+		 * The meta object literal for the '<em><b>Generators</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference GENERATOR_REFERENCES__GENERATORS = eINSTANCE.getGeneratorReferences_Generators();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.generator.impl.ApplyStatementImpl <em>Apply Statement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.ApplyStatementImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getApplyStatement()
+		 * @generated
+		 */
+		EClass APPLY_STATEMENT = eINSTANCE.getApplyStatement();
+
+		/**
+		 * The meta object literal for the '<em><b>File</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute APPLY_STATEMENT__FILE = eINSTANCE.getApplyStatement_File();
+
+		/**
+		 * The meta object literal for the '<em><b>Count</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute APPLY_STATEMENT__COUNT = eINSTANCE.getApplyStatement_Count();
+
+		/**
+		 * The meta object literal for the '<em><b>Function</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference APPLY_STATEMENT__FUNCTION = eINSTANCE.getApplyStatement_Function();
+
+		/**
+		 * The meta object literal for the '<em><b>Generator</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference APPLY_STATEMENT__GENERATOR = eINSTANCE.getApplyStatement_Generator();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.generator.impl.GeneratorReferenceImpl <em>Reference</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.GeneratorReferenceImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getGeneratorReference()
+		 * @generated
+		 */
+		EClass GENERATOR_REFERENCE = eINSTANCE.getGeneratorReference();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.generator.impl.GeneratorDefinitionReferenceImpl <em>Definition Reference</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.GeneratorDefinitionReferenceImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getGeneratorDefinitionReference()
+		 * @generated
+		 */
+		EClass GENERATOR_DEFINITION_REFERENCE = eINSTANCE.getGeneratorDefinitionReference();
+
+		/**
+		 * The meta object literal for the '<em><b>Definition</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference GENERATOR_DEFINITION_REFERENCE__DEFINITION = eINSTANCE.getGeneratorDefinitionReference_Definition();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.generator.impl.FunctionReferenceImpl <em>Function Reference</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.FunctionReferenceImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getFunctionReference()
+		 * @generated
+		 */
+		EClass FUNCTION_REFERENCE = eINSTANCE.getFunctionReference();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.generator.impl.FunctionDefReferenceImpl <em>Function Def Reference</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.FunctionDefReferenceImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getFunctionDefReference()
+		 * @generated
+		 */
+		EClass FUNCTION_DEF_REFERENCE = eINSTANCE.getFunctionDefReference();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.generator.impl.LoopVariableImpl <em>Loop Variable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.LoopVariableImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getLoopVariable()
+		 * @generated
+		 */
+		EClass LOOP_VARIABLE = eINSTANCE.getLoopVariable();
+
+		/**
+		 * The meta object literal for the '<em><b>Definition</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference LOOP_VARIABLE__DEFINITION = eINSTANCE.getLoopVariable_Definition();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.generator.impl.FunctionDefinitionReferenceImpl <em>Function Definition Reference</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.FunctionDefinitionReferenceImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getFunctionDefinitionReference()
+		 * @generated
+		 */
+		EClass FUNCTION_DEFINITION_REFERENCE = eINSTANCE.getFunctionDefinitionReference();
+
+		/**
+		 * The meta object literal for the '<em><b>Definition</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference FUNCTION_DEFINITION_REFERENCE__DEFINITION = eINSTANCE.getFunctionDefinitionReference_Definition();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.generator.impl.ParametrizedFunctionDefinitionReferenceImpl <em>Parametrized Function Definition Reference</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.generator.impl.ParametrizedFunctionDefinitionReferenceImpl
+		 * @see de.evoal.languages.model.generator.impl.GeneratorPackageImpl#getParametrizedFunctionDefinitionReference()
+		 * @generated
+		 */
+		EClass PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE = eINSTANCE.getParametrizedFunctionDefinitionReference();
+
+		/**
+		 * The meta object literal for the '<em><b>Definition</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION = eINSTANCE.getParametrizedFunctionDefinitionReference_Definition();
+
+	}
+
+} //GeneratorPackage
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/GeneratorReference.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/GeneratorReference.java
new file mode 100644
index 0000000000000000000000000000000000000000..66e6e551a385e1354509d78aa8a81502d08338bb
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/GeneratorReference.java
@@ -0,0 +1,19 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getGeneratorReference()
+ * @model
+ * @generated
+ */
+public interface GeneratorReference extends EObject {
+} // GeneratorReference
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/GeneratorReferences.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/GeneratorReferences.java
new file mode 100644
index 0000000000000000000000000000000000000000..17c230d15f5917286446261672fd2d5cbdd2953f
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/GeneratorReferences.java
@@ -0,0 +1,39 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>References</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.GeneratorReferences#getGenerators <em>Generators</em>}</li>
+ * </ul>
+ *
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getGeneratorReferences()
+ * @model
+ * @generated
+ */
+public interface GeneratorReferences extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Generators</b></em>' reference list.
+	 * The list contents are of type {@link de.evoal.languages.model.generator.GeneratorDefinition}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Generators</em>' reference list.
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getGeneratorReferences_Generators()
+	 * @model
+	 * @generated
+	 */
+	EList<GeneratorDefinition> getGenerators();
+
+} // GeneratorReferences
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/Generators.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/Generators.java
new file mode 100644
index 0000000000000000000000000000000000000000..fa55e39e6d94b8c01b245f0d3dcc378febfd490e
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/Generators.java
@@ -0,0 +1,46 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Generators</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.Generators#getGeneratorReferences <em>Generator References</em>}</li>
+ * </ul>
+ *
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getGenerators()
+ * @model
+ * @generated
+ */
+public interface Generators extends Range {
+	/**
+	 * Returns the value of the '<em><b>Generator References</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Generator References</em>' containment reference.
+	 * @see #setGeneratorReferences(GeneratorReferences)
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getGenerators_GeneratorReferences()
+	 * @model containment="true"
+	 * @generated
+	 */
+	GeneratorReferences getGeneratorReferences();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.generator.Generators#getGeneratorReferences <em>Generator References</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Generator References</em>' containment reference.
+	 * @see #getGeneratorReferences()
+	 * @generated
+	 */
+	void setGeneratorReferences(GeneratorReferences value);
+
+} // Generators
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/LoopVariable.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/LoopVariable.java
new file mode 100644
index 0000000000000000000000000000000000000000..bf0e33cdd7ed64890fe09dc60b0dedbe247b737e
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/LoopVariable.java
@@ -0,0 +1,46 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Loop Variable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.LoopVariable#getDefinition <em>Definition</em>}</li>
+ * </ul>
+ *
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getLoopVariable()
+ * @model
+ * @generated
+ */
+public interface LoopVariable extends GeneratorReference, FunctionReference {
+	/**
+	 * Returns the value of the '<em><b>Definition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Definition</em>' reference.
+	 * @see #setDefinition(ForStatement)
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getLoopVariable_Definition()
+	 * @model
+	 * @generated
+	 */
+	ForStatement getDefinition();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.generator.LoopVariable#getDefinition <em>Definition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Definition</em>' reference.
+	 * @see #getDefinition()
+	 * @generated
+	 */
+	void setDefinition(ForStatement value);
+
+} // LoopVariable
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/ParametrizedFunctionDefinition.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/ParametrizedFunctionDefinition.java
new file mode 100644
index 0000000000000000000000000000000000000000..23e074903c6f31b748f1b43c2917182a26e759ae
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/ParametrizedFunctionDefinition.java
@@ -0,0 +1,72 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator;
+
+import de.evoal.languages.model.instance.Instance;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Parametrized Function Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.ParametrizedFunctionDefinition#getName <em>Name</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.ParametrizedFunctionDefinition#getDefinition <em>Definition</em>}</li>
+ * </ul>
+ *
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getParametrizedFunctionDefinition()
+ * @model
+ * @generated
+ */
+public interface ParametrizedFunctionDefinition extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getParametrizedFunctionDefinition_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.generator.ParametrizedFunctionDefinition#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>Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Definition</em>' containment reference.
+	 * @see #setDefinition(Instance)
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getParametrizedFunctionDefinition_Definition()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Instance getDefinition();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.generator.ParametrizedFunctionDefinition#getDefinition <em>Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Definition</em>' containment reference.
+	 * @see #getDefinition()
+	 * @generated
+	 */
+	void setDefinition(Instance value);
+
+} // ParametrizedFunctionDefinition
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/ParametrizedFunctionDefinitionReference.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/ParametrizedFunctionDefinitionReference.java
new file mode 100644
index 0000000000000000000000000000000000000000..03eef573694e1e0d4d7a27652c186416297c716f
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/ParametrizedFunctionDefinitionReference.java
@@ -0,0 +1,46 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Parametrized Function Definition Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.ParametrizedFunctionDefinitionReference#getDefinition <em>Definition</em>}</li>
+ * </ul>
+ *
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getParametrizedFunctionDefinitionReference()
+ * @model
+ * @generated
+ */
+public interface ParametrizedFunctionDefinitionReference extends FunctionDefReference {
+	/**
+	 * Returns the value of the '<em><b>Definition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Definition</em>' reference.
+	 * @see #setDefinition(FunctionDefinitionReference)
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getParametrizedFunctionDefinitionReference_Definition()
+	 * @model
+	 * @generated
+	 */
+	FunctionDefinitionReference getDefinition();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.generator.ParametrizedFunctionDefinitionReference#getDefinition <em>Definition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Definition</em>' reference.
+	 * @see #getDefinition()
+	 * @generated
+	 */
+	void setDefinition(FunctionDefinitionReference value);
+
+} // ParametrizedFunctionDefinitionReference
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/Range.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/Range.java
similarity index 55%
rename from src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/Range.java
rename to src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/Range.java
index 84f548f9707b19638a468352c7c05394fabad2dd..f86fb26d3a9572b5752d7da6cdba662e30de2f44 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/Range.java
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/Range.java
@@ -1,7 +1,7 @@
 /**
  * generated by Xtext 2.25.0
  */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
+package de.evoal.languages.model.generator;
 
 import org.eclipse.emf.ecore.EObject;
 
@@ -11,10 +11,9 @@ import org.eclipse.emf.ecore.EObject;
  * <!-- end-user-doc -->
  *
  *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getRange()
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getRange()
  * @model
  * @generated
  */
-public interface Range extends EObject
-{
+public interface Range extends EObject {
 } // Range
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/Statement.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/Statement.java
similarity index 55%
rename from src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/Statement.java
rename to src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/Statement.java
index 52af2e571150d7515778b754118020299d33caae..a28cea2b4d93620fa2bfa69a6fbe3af8a2af9ab2 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/generatorDSL/Statement.java
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/Statement.java
@@ -1,7 +1,7 @@
 /**
  * generated by Xtext 2.25.0
  */
-package de.evoal.languages.model.generator.dsl.generatorDSL;
+package de.evoal.languages.model.generator;
 
 import org.eclipse.emf.ecore.EObject;
 
@@ -11,10 +11,9 @@ import org.eclipse.emf.ecore.EObject;
  * <!-- end-user-doc -->
  *
  *
- * @see de.evoal.languages.model.generator.dsl.generatorDSL.GeneratorDSLPackage#getStatement()
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getStatement()
  * @model
  * @generated
  */
-public interface Statement extends EObject
-{
+public interface Statement extends EObject {
 } // Statement
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/Use.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/Use.java
new file mode 100644
index 0000000000000000000000000000000000000000..abe5be7ae6663e222ff0527c8919bc11020c7002
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/Use.java
@@ -0,0 +1,47 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Use</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.Use#getImportURI <em>Import URI</em>}</li>
+ * </ul>
+ *
+ * @see de.evoal.languages.model.generator.GeneratorPackage#getUse()
+ * @model
+ * @generated
+ */
+public interface Use extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Import URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Import URI</em>' attribute.
+	 * @see #setImportURI(String)
+	 * @see de.evoal.languages.model.generator.GeneratorPackage#getUse_ImportURI()
+	 * @model
+	 * @generated
+	 */
+	String getImportURI();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.generator.Use#getImportURI <em>Import URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Import URI</em>' attribute.
+	 * @see #getImportURI()
+	 * @generated
+	 */
+	void setImportURI(String value);
+
+} // Use
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/ApplyStatementImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/ApplyStatementImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..3ec196d1e1b263b6da3966b804ab625f222a573a
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/ApplyStatementImpl.java
@@ -0,0 +1,373 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.ApplyStatement;
+import de.evoal.languages.model.generator.FunctionReference;
+import de.evoal.languages.model.generator.GeneratorPackage;
+import de.evoal.languages.model.generator.GeneratorReference;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Apply Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.impl.ApplyStatementImpl#getFile <em>File</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.impl.ApplyStatementImpl#getCount <em>Count</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.impl.ApplyStatementImpl#getFunction <em>Function</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.impl.ApplyStatementImpl#getGenerator <em>Generator</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ApplyStatementImpl extends StatementImpl implements ApplyStatement {
+	/**
+	 * The default value of the '{@link #getFile() <em>File</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFile()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String FILE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getFile() <em>File</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFile()
+	 * @generated
+	 * @ordered
+	 */
+	protected String file = FILE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCount() <em>Count</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCount()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int COUNT_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getCount() <em>Count</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCount()
+	 * @generated
+	 * @ordered
+	 */
+	protected int count = COUNT_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getFunction() <em>Function</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFunction()
+	 * @generated
+	 * @ordered
+	 */
+	protected FunctionReference function;
+
+	/**
+	 * The cached value of the '{@link #getGenerator() <em>Generator</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGenerator()
+	 * @generated
+	 * @ordered
+	 */
+	protected GeneratorReference generator;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ApplyStatementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.APPLY_STATEMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getFile() {
+		return file;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setFile(String newFile) {
+		String oldFile = file;
+		file = newFile;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, GeneratorPackage.APPLY_STATEMENT__FILE, oldFile, file));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int getCount() {
+		return count;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setCount(int newCount) {
+		int oldCount = count;
+		count = newCount;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, GeneratorPackage.APPLY_STATEMENT__COUNT, oldCount, count));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public FunctionReference getFunction() {
+		return function;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetFunction(FunctionReference newFunction, NotificationChain msgs) {
+		FunctionReference oldFunction = function;
+		function = newFunction;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, GeneratorPackage.APPLY_STATEMENT__FUNCTION, oldFunction, newFunction);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setFunction(FunctionReference newFunction) {
+		if (newFunction != function) {
+			NotificationChain msgs = null;
+			if (function != null)
+				msgs = ((InternalEObject)function).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - GeneratorPackage.APPLY_STATEMENT__FUNCTION, null, msgs);
+			if (newFunction != null)
+				msgs = ((InternalEObject)newFunction).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - GeneratorPackage.APPLY_STATEMENT__FUNCTION, null, msgs);
+			msgs = basicSetFunction(newFunction, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, GeneratorPackage.APPLY_STATEMENT__FUNCTION, newFunction, newFunction));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public GeneratorReference getGenerator() {
+		return generator;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetGenerator(GeneratorReference newGenerator, NotificationChain msgs) {
+		GeneratorReference oldGenerator = generator;
+		generator = newGenerator;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, GeneratorPackage.APPLY_STATEMENT__GENERATOR, oldGenerator, newGenerator);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setGenerator(GeneratorReference newGenerator) {
+		if (newGenerator != generator) {
+			NotificationChain msgs = null;
+			if (generator != null)
+				msgs = ((InternalEObject)generator).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - GeneratorPackage.APPLY_STATEMENT__GENERATOR, null, msgs);
+			if (newGenerator != null)
+				msgs = ((InternalEObject)newGenerator).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - GeneratorPackage.APPLY_STATEMENT__GENERATOR, null, msgs);
+			msgs = basicSetGenerator(newGenerator, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, GeneratorPackage.APPLY_STATEMENT__GENERATOR, newGenerator, newGenerator));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case GeneratorPackage.APPLY_STATEMENT__FUNCTION:
+				return basicSetFunction(null, msgs);
+			case GeneratorPackage.APPLY_STATEMENT__GENERATOR:
+				return basicSetGenerator(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 GeneratorPackage.APPLY_STATEMENT__FILE:
+				return getFile();
+			case GeneratorPackage.APPLY_STATEMENT__COUNT:
+				return getCount();
+			case GeneratorPackage.APPLY_STATEMENT__FUNCTION:
+				return getFunction();
+			case GeneratorPackage.APPLY_STATEMENT__GENERATOR:
+				return getGenerator();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case GeneratorPackage.APPLY_STATEMENT__FILE:
+				setFile((String)newValue);
+				return;
+			case GeneratorPackage.APPLY_STATEMENT__COUNT:
+				setCount((Integer)newValue);
+				return;
+			case GeneratorPackage.APPLY_STATEMENT__FUNCTION:
+				setFunction((FunctionReference)newValue);
+				return;
+			case GeneratorPackage.APPLY_STATEMENT__GENERATOR:
+				setGenerator((GeneratorReference)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.APPLY_STATEMENT__FILE:
+				setFile(FILE_EDEFAULT);
+				return;
+			case GeneratorPackage.APPLY_STATEMENT__COUNT:
+				setCount(COUNT_EDEFAULT);
+				return;
+			case GeneratorPackage.APPLY_STATEMENT__FUNCTION:
+				setFunction((FunctionReference)null);
+				return;
+			case GeneratorPackage.APPLY_STATEMENT__GENERATOR:
+				setGenerator((GeneratorReference)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.APPLY_STATEMENT__FILE:
+				return FILE_EDEFAULT == null ? file != null : !FILE_EDEFAULT.equals(file);
+			case GeneratorPackage.APPLY_STATEMENT__COUNT:
+				return count != COUNT_EDEFAULT;
+			case GeneratorPackage.APPLY_STATEMENT__FUNCTION:
+				return function != null;
+			case GeneratorPackage.APPLY_STATEMENT__GENERATOR:
+				return generator != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (file: ");
+		result.append(file);
+		result.append(", count: ");
+		result.append(count);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ApplyStatementImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/ConfigurationImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/ConfigurationImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..562de337f445e3c95ded757af67f169889ba6acf
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/ConfigurationImpl.java
@@ -0,0 +1,268 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.Configuration;
+import de.evoal.languages.model.generator.GeneratorDefinition;
+import de.evoal.languages.model.generator.GeneratorPackage;
+import de.evoal.languages.model.generator.ParametrizedFunctionDefinition;
+import de.evoal.languages.model.generator.Statement;
+import de.evoal.languages.model.generator.Use;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.impl.ConfigurationImpl#getUses <em>Uses</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.impl.ConfigurationImpl#getGenerators <em>Generators</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.impl.ConfigurationImpl#getFunctions <em>Functions</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.impl.ConfigurationImpl#getStatements <em>Statements</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ConfigurationImpl extends MinimalEObjectImpl.Container implements Configuration {
+	/**
+	 * The cached value of the '{@link #getUses() <em>Uses</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUses()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Use> uses;
+
+	/**
+	 * The cached value of the '{@link #getGenerators() <em>Generators</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGenerators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<GeneratorDefinition> generators;
+
+	/**
+	 * The cached value of the '{@link #getFunctions() <em>Functions</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFunctions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<ParametrizedFunctionDefinition> functions;
+
+	/**
+	 * 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<Statement> statements;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ConfigurationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.CONFIGURATION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<Use> getUses() {
+		if (uses == null) {
+			uses = new EObjectContainmentEList<Use>(Use.class, this, GeneratorPackage.CONFIGURATION__USES);
+		}
+		return uses;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<GeneratorDefinition> getGenerators() {
+		if (generators == null) {
+			generators = new EObjectContainmentEList<GeneratorDefinition>(GeneratorDefinition.class, this, GeneratorPackage.CONFIGURATION__GENERATORS);
+		}
+		return generators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<ParametrizedFunctionDefinition> getFunctions() {
+		if (functions == null) {
+			functions = new EObjectContainmentEList<ParametrizedFunctionDefinition>(ParametrizedFunctionDefinition.class, this, GeneratorPackage.CONFIGURATION__FUNCTIONS);
+		}
+		return functions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<Statement> getStatements() {
+		if (statements == null) {
+			statements = new EObjectContainmentEList<Statement>(Statement.class, this, GeneratorPackage.CONFIGURATION__STATEMENTS);
+		}
+		return statements;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case GeneratorPackage.CONFIGURATION__USES:
+				return ((InternalEList<?>)getUses()).basicRemove(otherEnd, msgs);
+			case GeneratorPackage.CONFIGURATION__GENERATORS:
+				return ((InternalEList<?>)getGenerators()).basicRemove(otherEnd, msgs);
+			case GeneratorPackage.CONFIGURATION__FUNCTIONS:
+				return ((InternalEList<?>)getFunctions()).basicRemove(otherEnd, msgs);
+			case GeneratorPackage.CONFIGURATION__STATEMENTS:
+				return ((InternalEList<?>)getStatements()).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 GeneratorPackage.CONFIGURATION__USES:
+				return getUses();
+			case GeneratorPackage.CONFIGURATION__GENERATORS:
+				return getGenerators();
+			case GeneratorPackage.CONFIGURATION__FUNCTIONS:
+				return getFunctions();
+			case GeneratorPackage.CONFIGURATION__STATEMENTS:
+				return getStatements();
+		}
+		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 GeneratorPackage.CONFIGURATION__USES:
+				getUses().clear();
+				getUses().addAll((Collection<? extends Use>)newValue);
+				return;
+			case GeneratorPackage.CONFIGURATION__GENERATORS:
+				getGenerators().clear();
+				getGenerators().addAll((Collection<? extends GeneratorDefinition>)newValue);
+				return;
+			case GeneratorPackage.CONFIGURATION__FUNCTIONS:
+				getFunctions().clear();
+				getFunctions().addAll((Collection<? extends ParametrizedFunctionDefinition>)newValue);
+				return;
+			case GeneratorPackage.CONFIGURATION__STATEMENTS:
+				getStatements().clear();
+				getStatements().addAll((Collection<? extends Statement>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.CONFIGURATION__USES:
+				getUses().clear();
+				return;
+			case GeneratorPackage.CONFIGURATION__GENERATORS:
+				getGenerators().clear();
+				return;
+			case GeneratorPackage.CONFIGURATION__FUNCTIONS:
+				getFunctions().clear();
+				return;
+			case GeneratorPackage.CONFIGURATION__STATEMENTS:
+				getStatements().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.CONFIGURATION__USES:
+				return uses != null && !uses.isEmpty();
+			case GeneratorPackage.CONFIGURATION__GENERATORS:
+				return generators != null && !generators.isEmpty();
+			case GeneratorPackage.CONFIGURATION__FUNCTIONS:
+				return functions != null && !functions.isEmpty();
+			case GeneratorPackage.CONFIGURATION__STATEMENTS:
+				return statements != null && !statements.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //ConfigurationImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/CounterRangeImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/CounterRangeImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..3a1182fb596406342e3a2c9baabc2674a9b7b008
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/CounterRangeImpl.java
@@ -0,0 +1,221 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.CounterRange;
+import de.evoal.languages.model.generator.GeneratorPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Counter Range</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.impl.CounterRangeImpl#getStart <em>Start</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.impl.CounterRangeImpl#getEnd <em>End</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CounterRangeImpl extends RangeImpl implements CounterRange {
+	/**
+	 * The default value of the '{@link #getStart() <em>Start</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStart()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int START_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getStart() <em>Start</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStart()
+	 * @generated
+	 * @ordered
+	 */
+	protected int start = START_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getEnd() <em>End</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEnd()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int END_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getEnd() <em>End</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEnd()
+	 * @generated
+	 * @ordered
+	 */
+	protected int end = END_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CounterRangeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.COUNTER_RANGE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int getStart() {
+		return start;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setStart(int newStart) {
+		int oldStart = start;
+		start = newStart;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, GeneratorPackage.COUNTER_RANGE__START, oldStart, start));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int getEnd() {
+		return end;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setEnd(int newEnd) {
+		int oldEnd = end;
+		end = newEnd;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, GeneratorPackage.COUNTER_RANGE__END, oldEnd, end));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case GeneratorPackage.COUNTER_RANGE__START:
+				return getStart();
+			case GeneratorPackage.COUNTER_RANGE__END:
+				return getEnd();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case GeneratorPackage.COUNTER_RANGE__START:
+				setStart((Integer)newValue);
+				return;
+			case GeneratorPackage.COUNTER_RANGE__END:
+				setEnd((Integer)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.COUNTER_RANGE__START:
+				setStart(START_EDEFAULT);
+				return;
+			case GeneratorPackage.COUNTER_RANGE__END:
+				setEnd(END_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.COUNTER_RANGE__START:
+				return start != START_EDEFAULT;
+			case GeneratorPackage.COUNTER_RANGE__END:
+				return end != END_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (start: ");
+		result.append(start);
+		result.append(", end: ");
+		result.append(end);
+		result.append(')');
+		return result.toString();
+	}
+
+} //CounterRangeImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/ForStatementImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/ForStatementImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..0d2d318f653fe3c66ba133ddd21e61f0a0ea723d
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/ForStatementImpl.java
@@ -0,0 +1,294 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.ForStatement;
+import de.evoal.languages.model.generator.GeneratorPackage;
+import de.evoal.languages.model.generator.Range;
+import de.evoal.languages.model.generator.Statement;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>For Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.impl.ForStatementImpl#getName <em>Name</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.impl.ForStatementImpl#getRange <em>Range</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.impl.ForStatementImpl#getStatements <em>Statements</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ForStatementImpl extends StatementImpl implements ForStatement {
+	/**
+	 * 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 #getRange() <em>Range</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRange()
+	 * @generated
+	 * @ordered
+	 */
+	protected Range range;
+
+	/**
+	 * 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<Statement> statements;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ForStatementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.FOR_STATEMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, GeneratorPackage.FOR_STATEMENT__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Range getRange() {
+		return range;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetRange(Range newRange, NotificationChain msgs) {
+		Range oldRange = range;
+		range = newRange;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, GeneratorPackage.FOR_STATEMENT__RANGE, oldRange, newRange);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setRange(Range newRange) {
+		if (newRange != range) {
+			NotificationChain msgs = null;
+			if (range != null)
+				msgs = ((InternalEObject)range).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - GeneratorPackage.FOR_STATEMENT__RANGE, null, msgs);
+			if (newRange != null)
+				msgs = ((InternalEObject)newRange).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - GeneratorPackage.FOR_STATEMENT__RANGE, null, msgs);
+			msgs = basicSetRange(newRange, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, GeneratorPackage.FOR_STATEMENT__RANGE, newRange, newRange));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<Statement> getStatements() {
+		if (statements == null) {
+			statements = new EObjectContainmentEList<Statement>(Statement.class, this, GeneratorPackage.FOR_STATEMENT__STATEMENTS);
+		}
+		return statements;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case GeneratorPackage.FOR_STATEMENT__RANGE:
+				return basicSetRange(null, msgs);
+			case GeneratorPackage.FOR_STATEMENT__STATEMENTS:
+				return ((InternalEList<?>)getStatements()).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 GeneratorPackage.FOR_STATEMENT__NAME:
+				return getName();
+			case GeneratorPackage.FOR_STATEMENT__RANGE:
+				return getRange();
+			case GeneratorPackage.FOR_STATEMENT__STATEMENTS:
+				return getStatements();
+		}
+		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 GeneratorPackage.FOR_STATEMENT__NAME:
+				setName((String)newValue);
+				return;
+			case GeneratorPackage.FOR_STATEMENT__RANGE:
+				setRange((Range)newValue);
+				return;
+			case GeneratorPackage.FOR_STATEMENT__STATEMENTS:
+				getStatements().clear();
+				getStatements().addAll((Collection<? extends Statement>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.FOR_STATEMENT__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case GeneratorPackage.FOR_STATEMENT__RANGE:
+				setRange((Range)null);
+				return;
+			case GeneratorPackage.FOR_STATEMENT__STATEMENTS:
+				getStatements().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.FOR_STATEMENT__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case GeneratorPackage.FOR_STATEMENT__RANGE:
+				return range != null;
+			case GeneratorPackage.FOR_STATEMENT__STATEMENTS:
+				return statements != null && !statements.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (name: ");
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ForStatementImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/FunctionDefReferenceImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/FunctionDefReferenceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..298c09e7773c44b6584565175d4e6f6acb814695
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/FunctionDefReferenceImpl.java
@@ -0,0 +1,38 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.FunctionDefReference;
+import de.evoal.languages.model.generator.GeneratorPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Function Def Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class FunctionDefReferenceImpl extends FunctionReferenceImpl implements FunctionDefReference {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FunctionDefReferenceImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.FUNCTION_DEF_REFERENCE;
+	}
+
+} //FunctionDefReferenceImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/FunctionDefinitionReferenceImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/FunctionDefinitionReferenceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..4ab2f63d4bcd2573110b0d5a8cc66a6215956016
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/FunctionDefinitionReferenceImpl.java
@@ -0,0 +1,160 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.dl.FunctionDefinition;
+
+import de.evoal.languages.model.generator.FunctionDefinitionReference;
+import de.evoal.languages.model.generator.GeneratorPackage;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Function Definition Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.impl.FunctionDefinitionReferenceImpl#getDefinition <em>Definition</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FunctionDefinitionReferenceImpl extends FunctionDefReferenceImpl implements FunctionDefinitionReference {
+	/**
+	 * The cached value of the '{@link #getDefinition() <em>Definition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected FunctionDefinition definition;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FunctionDefinitionReferenceImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.FUNCTION_DEFINITION_REFERENCE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public FunctionDefinition getDefinition() {
+		if (definition != null && definition.eIsProxy()) {
+			InternalEObject oldDefinition = (InternalEObject)definition;
+			definition = (FunctionDefinition)eResolveProxy(oldDefinition);
+			if (definition != oldDefinition) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, GeneratorPackage.FUNCTION_DEFINITION_REFERENCE__DEFINITION, oldDefinition, definition));
+			}
+		}
+		return definition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FunctionDefinition basicGetDefinition() {
+		return definition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setDefinition(FunctionDefinition newDefinition) {
+		FunctionDefinition oldDefinition = definition;
+		definition = newDefinition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, GeneratorPackage.FUNCTION_DEFINITION_REFERENCE__DEFINITION, oldDefinition, definition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case GeneratorPackage.FUNCTION_DEFINITION_REFERENCE__DEFINITION:
+				if (resolve) return getDefinition();
+				return basicGetDefinition();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case GeneratorPackage.FUNCTION_DEFINITION_REFERENCE__DEFINITION:
+				setDefinition((FunctionDefinition)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.FUNCTION_DEFINITION_REFERENCE__DEFINITION:
+				setDefinition((FunctionDefinition)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.FUNCTION_DEFINITION_REFERENCE__DEFINITION:
+				return definition != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //FunctionDefinitionReferenceImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/FunctionReferenceImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/FunctionReferenceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..76999990893ca7a6dfd3a35baa447f83971d97ac
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/FunctionReferenceImpl.java
@@ -0,0 +1,40 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.FunctionReference;
+import de.evoal.languages.model.generator.GeneratorPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Function Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class FunctionReferenceImpl extends MinimalEObjectImpl.Container implements FunctionReference {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FunctionReferenceImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.FUNCTION_REFERENCE;
+	}
+
+} //FunctionReferenceImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/FunctionReferencesImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/FunctionReferencesImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..a0643ae434185236cca8fe6592de39897a9d4b65
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/FunctionReferencesImpl.java
@@ -0,0 +1,154 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.FunctionDefReference;
+import de.evoal.languages.model.generator.FunctionReferences;
+import de.evoal.languages.model.generator.GeneratorPackage;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Function References</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.impl.FunctionReferencesImpl#getFunctions <em>Functions</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FunctionReferencesImpl extends MinimalEObjectImpl.Container implements FunctionReferences {
+	/**
+	 * The cached value of the '{@link #getFunctions() <em>Functions</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFunctions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<FunctionDefReference> functions;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FunctionReferencesImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.FUNCTION_REFERENCES;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<FunctionDefReference> getFunctions() {
+		if (functions == null) {
+			functions = new EObjectContainmentEList<FunctionDefReference>(FunctionDefReference.class, this, GeneratorPackage.FUNCTION_REFERENCES__FUNCTIONS);
+		}
+		return functions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case GeneratorPackage.FUNCTION_REFERENCES__FUNCTIONS:
+				return ((InternalEList<?>)getFunctions()).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 GeneratorPackage.FUNCTION_REFERENCES__FUNCTIONS:
+				return getFunctions();
+		}
+		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 GeneratorPackage.FUNCTION_REFERENCES__FUNCTIONS:
+				getFunctions().clear();
+				getFunctions().addAll((Collection<? extends FunctionDefReference>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.FUNCTION_REFERENCES__FUNCTIONS:
+				getFunctions().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.FUNCTION_REFERENCES__FUNCTIONS:
+				return functions != null && !functions.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //FunctionReferencesImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/FunctionsImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/FunctionsImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..0d07e6919a9bdefcd3b32a384746673ce2b3118b
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/FunctionsImpl.java
@@ -0,0 +1,178 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.FunctionReferences;
+import de.evoal.languages.model.generator.Functions;
+import de.evoal.languages.model.generator.GeneratorPackage;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Functions</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.impl.FunctionsImpl#getFunctionReferences <em>Function References</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FunctionsImpl extends RangeImpl implements Functions {
+	/**
+	 * The cached value of the '{@link #getFunctionReferences() <em>Function References</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFunctionReferences()
+	 * @generated
+	 * @ordered
+	 */
+	protected FunctionReferences functionReferences;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FunctionsImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.FUNCTIONS;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public FunctionReferences getFunctionReferences() {
+		return functionReferences;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetFunctionReferences(FunctionReferences newFunctionReferences, NotificationChain msgs) {
+		FunctionReferences oldFunctionReferences = functionReferences;
+		functionReferences = newFunctionReferences;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, GeneratorPackage.FUNCTIONS__FUNCTION_REFERENCES, oldFunctionReferences, newFunctionReferences);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setFunctionReferences(FunctionReferences newFunctionReferences) {
+		if (newFunctionReferences != functionReferences) {
+			NotificationChain msgs = null;
+			if (functionReferences != null)
+				msgs = ((InternalEObject)functionReferences).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - GeneratorPackage.FUNCTIONS__FUNCTION_REFERENCES, null, msgs);
+			if (newFunctionReferences != null)
+				msgs = ((InternalEObject)newFunctionReferences).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - GeneratorPackage.FUNCTIONS__FUNCTION_REFERENCES, null, msgs);
+			msgs = basicSetFunctionReferences(newFunctionReferences, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, GeneratorPackage.FUNCTIONS__FUNCTION_REFERENCES, newFunctionReferences, newFunctionReferences));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case GeneratorPackage.FUNCTIONS__FUNCTION_REFERENCES:
+				return basicSetFunctionReferences(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 GeneratorPackage.FUNCTIONS__FUNCTION_REFERENCES:
+				return getFunctionReferences();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case GeneratorPackage.FUNCTIONS__FUNCTION_REFERENCES:
+				setFunctionReferences((FunctionReferences)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.FUNCTIONS__FUNCTION_REFERENCES:
+				setFunctionReferences((FunctionReferences)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.FUNCTIONS__FUNCTION_REFERENCES:
+				return functionReferences != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //FunctionsImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorDefinitionImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorDefinitionImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..25ab5731c2ef8b8245fe317a94a2e951f56d5179
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorDefinitionImpl.java
@@ -0,0 +1,250 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.GeneratorDefinition;
+import de.evoal.languages.model.generator.GeneratorPackage;
+
+import de.evoal.languages.model.instance.Instance;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.impl.GeneratorDefinitionImpl#getName <em>Name</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.impl.GeneratorDefinitionImpl#getDefinition <em>Definition</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class GeneratorDefinitionImpl extends MinimalEObjectImpl.Container implements GeneratorDefinition {
+	/**
+	 * 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 #getDefinition() <em>Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected Instance definition;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected GeneratorDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.GENERATOR_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, GeneratorPackage.GENERATOR_DEFINITION__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Instance getDefinition() {
+		return definition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetDefinition(Instance newDefinition, NotificationChain msgs) {
+		Instance oldDefinition = definition;
+		definition = newDefinition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, GeneratorPackage.GENERATOR_DEFINITION__DEFINITION, oldDefinition, newDefinition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setDefinition(Instance newDefinition) {
+		if (newDefinition != definition) {
+			NotificationChain msgs = null;
+			if (definition != null)
+				msgs = ((InternalEObject)definition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - GeneratorPackage.GENERATOR_DEFINITION__DEFINITION, null, msgs);
+			if (newDefinition != null)
+				msgs = ((InternalEObject)newDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - GeneratorPackage.GENERATOR_DEFINITION__DEFINITION, null, msgs);
+			msgs = basicSetDefinition(newDefinition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, GeneratorPackage.GENERATOR_DEFINITION__DEFINITION, newDefinition, newDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case GeneratorPackage.GENERATOR_DEFINITION__DEFINITION:
+				return basicSetDefinition(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 GeneratorPackage.GENERATOR_DEFINITION__NAME:
+				return getName();
+			case GeneratorPackage.GENERATOR_DEFINITION__DEFINITION:
+				return getDefinition();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case GeneratorPackage.GENERATOR_DEFINITION__NAME:
+				setName((String)newValue);
+				return;
+			case GeneratorPackage.GENERATOR_DEFINITION__DEFINITION:
+				setDefinition((Instance)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.GENERATOR_DEFINITION__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case GeneratorPackage.GENERATOR_DEFINITION__DEFINITION:
+				setDefinition((Instance)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.GENERATOR_DEFINITION__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case GeneratorPackage.GENERATOR_DEFINITION__DEFINITION:
+				return definition != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (name: ");
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+} //GeneratorDefinitionImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorDefinitionReferenceImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorDefinitionReferenceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..7c48f18c401ed17940e0a44440a101866ff6202d
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorDefinitionReferenceImpl.java
@@ -0,0 +1,159 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.GeneratorDefinition;
+import de.evoal.languages.model.generator.GeneratorDefinitionReference;
+import de.evoal.languages.model.generator.GeneratorPackage;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Definition Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.impl.GeneratorDefinitionReferenceImpl#getDefinition <em>Definition</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class GeneratorDefinitionReferenceImpl extends GeneratorReferenceImpl implements GeneratorDefinitionReference {
+	/**
+	 * The cached value of the '{@link #getDefinition() <em>Definition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected GeneratorDefinition definition;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected GeneratorDefinitionReferenceImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.GENERATOR_DEFINITION_REFERENCE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public GeneratorDefinition getDefinition() {
+		if (definition != null && definition.eIsProxy()) {
+			InternalEObject oldDefinition = (InternalEObject)definition;
+			definition = (GeneratorDefinition)eResolveProxy(oldDefinition);
+			if (definition != oldDefinition) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, GeneratorPackage.GENERATOR_DEFINITION_REFERENCE__DEFINITION, oldDefinition, definition));
+			}
+		}
+		return definition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public GeneratorDefinition basicGetDefinition() {
+		return definition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setDefinition(GeneratorDefinition newDefinition) {
+		GeneratorDefinition oldDefinition = definition;
+		definition = newDefinition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, GeneratorPackage.GENERATOR_DEFINITION_REFERENCE__DEFINITION, oldDefinition, definition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case GeneratorPackage.GENERATOR_DEFINITION_REFERENCE__DEFINITION:
+				if (resolve) return getDefinition();
+				return basicGetDefinition();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case GeneratorPackage.GENERATOR_DEFINITION_REFERENCE__DEFINITION:
+				setDefinition((GeneratorDefinition)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.GENERATOR_DEFINITION_REFERENCE__DEFINITION:
+				setDefinition((GeneratorDefinition)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.GENERATOR_DEFINITION_REFERENCE__DEFINITION:
+				return definition != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //GeneratorDefinitionReferenceImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorFactoryImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorFactoryImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..5893f3c7863b791af5917eb7b7b274391102e16a
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorFactoryImpl.java
@@ -0,0 +1,326 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.*;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GeneratorFactoryImpl extends EFactoryImpl implements GeneratorFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static GeneratorFactory init() {
+		try {
+			GeneratorFactory theGeneratorFactory = (GeneratorFactory)EPackage.Registry.INSTANCE.getEFactory(GeneratorPackage.eNS_URI);
+			if (theGeneratorFactory != null) {
+				return theGeneratorFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new GeneratorFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public GeneratorFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case GeneratorPackage.CONFIGURATION: return createConfiguration();
+			case GeneratorPackage.USE: return createUse();
+			case GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION: return createParametrizedFunctionDefinition();
+			case GeneratorPackage.GENERATOR_DEFINITION: return createGeneratorDefinition();
+			case GeneratorPackage.STATEMENT: return createStatement();
+			case GeneratorPackage.FOR_STATEMENT: return createForStatement();
+			case GeneratorPackage.RANGE: return createRange();
+			case GeneratorPackage.COUNTER_RANGE: return createCounterRange();
+			case GeneratorPackage.FUNCTIONS: return createFunctions();
+			case GeneratorPackage.FUNCTION_REFERENCES: return createFunctionReferences();
+			case GeneratorPackage.GENERATORS: return createGenerators();
+			case GeneratorPackage.GENERATOR_REFERENCES: return createGeneratorReferences();
+			case GeneratorPackage.APPLY_STATEMENT: return createApplyStatement();
+			case GeneratorPackage.GENERATOR_REFERENCE: return createGeneratorReference();
+			case GeneratorPackage.GENERATOR_DEFINITION_REFERENCE: return createGeneratorDefinitionReference();
+			case GeneratorPackage.FUNCTION_REFERENCE: return createFunctionReference();
+			case GeneratorPackage.FUNCTION_DEF_REFERENCE: return createFunctionDefReference();
+			case GeneratorPackage.LOOP_VARIABLE: return createLoopVariable();
+			case GeneratorPackage.FUNCTION_DEFINITION_REFERENCE: return createFunctionDefinitionReference();
+			case GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE: return createParametrizedFunctionDefinitionReference();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Configuration createConfiguration() {
+		ConfigurationImpl configuration = new ConfigurationImpl();
+		return configuration;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Use createUse() {
+		UseImpl use = new UseImpl();
+		return use;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ParametrizedFunctionDefinition createParametrizedFunctionDefinition() {
+		ParametrizedFunctionDefinitionImpl parametrizedFunctionDefinition = new ParametrizedFunctionDefinitionImpl();
+		return parametrizedFunctionDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public GeneratorDefinition createGeneratorDefinition() {
+		GeneratorDefinitionImpl generatorDefinition = new GeneratorDefinitionImpl();
+		return generatorDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Statement createStatement() {
+		StatementImpl statement = new StatementImpl();
+		return statement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ForStatement createForStatement() {
+		ForStatementImpl forStatement = new ForStatementImpl();
+		return forStatement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Range createRange() {
+		RangeImpl range = new RangeImpl();
+		return range;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public CounterRange createCounterRange() {
+		CounterRangeImpl counterRange = new CounterRangeImpl();
+		return counterRange;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Functions createFunctions() {
+		FunctionsImpl functions = new FunctionsImpl();
+		return functions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public FunctionReferences createFunctionReferences() {
+		FunctionReferencesImpl functionReferences = new FunctionReferencesImpl();
+		return functionReferences;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Generators createGenerators() {
+		GeneratorsImpl generators = new GeneratorsImpl();
+		return generators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public GeneratorReferences createGeneratorReferences() {
+		GeneratorReferencesImpl generatorReferences = new GeneratorReferencesImpl();
+		return generatorReferences;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ApplyStatement createApplyStatement() {
+		ApplyStatementImpl applyStatement = new ApplyStatementImpl();
+		return applyStatement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public GeneratorReference createGeneratorReference() {
+		GeneratorReferenceImpl generatorReference = new GeneratorReferenceImpl();
+		return generatorReference;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public GeneratorDefinitionReference createGeneratorDefinitionReference() {
+		GeneratorDefinitionReferenceImpl generatorDefinitionReference = new GeneratorDefinitionReferenceImpl();
+		return generatorDefinitionReference;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public FunctionReference createFunctionReference() {
+		FunctionReferenceImpl functionReference = new FunctionReferenceImpl();
+		return functionReference;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public FunctionDefReference createFunctionDefReference() {
+		FunctionDefReferenceImpl functionDefReference = new FunctionDefReferenceImpl();
+		return functionDefReference;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public LoopVariable createLoopVariable() {
+		LoopVariableImpl loopVariable = new LoopVariableImpl();
+		return loopVariable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public FunctionDefinitionReference createFunctionDefinitionReference() {
+		FunctionDefinitionReferenceImpl functionDefinitionReference = new FunctionDefinitionReferenceImpl();
+		return functionDefinitionReference;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ParametrizedFunctionDefinitionReference createParametrizedFunctionDefinitionReference() {
+		ParametrizedFunctionDefinitionReferenceImpl parametrizedFunctionDefinitionReference = new ParametrizedFunctionDefinitionReferenceImpl();
+		return parametrizedFunctionDefinitionReference;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public GeneratorPackage getGeneratorPackage() {
+		return (GeneratorPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static GeneratorPackage getPackage() {
+		return GeneratorPackage.eINSTANCE;
+	}
+
+} //GeneratorFactoryImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorPackageImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorPackageImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..dec95d3da10c3ace3bf04dd6832b1148bd1f8699
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorPackageImpl.java
@@ -0,0 +1,951 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.ddl.DdlPackage;
+
+import de.evoal.languages.model.dl.DlPackage;
+
+import de.evoal.languages.model.el.ELPackage;
+
+import de.evoal.languages.model.generator.ApplyStatement;
+import de.evoal.languages.model.generator.Configuration;
+import de.evoal.languages.model.generator.CounterRange;
+import de.evoal.languages.model.generator.ForStatement;
+import de.evoal.languages.model.generator.FunctionDefReference;
+import de.evoal.languages.model.generator.FunctionDefinitionReference;
+import de.evoal.languages.model.generator.FunctionReference;
+import de.evoal.languages.model.generator.FunctionReferences;
+import de.evoal.languages.model.generator.Functions;
+import de.evoal.languages.model.generator.GeneratorDefinition;
+import de.evoal.languages.model.generator.GeneratorDefinitionReference;
+import de.evoal.languages.model.generator.GeneratorFactory;
+import de.evoal.languages.model.generator.GeneratorPackage;
+import de.evoal.languages.model.generator.GeneratorReference;
+import de.evoal.languages.model.generator.GeneratorReferences;
+import de.evoal.languages.model.generator.Generators;
+import de.evoal.languages.model.generator.LoopVariable;
+import de.evoal.languages.model.generator.ParametrizedFunctionDefinition;
+import de.evoal.languages.model.generator.ParametrizedFunctionDefinitionReference;
+import de.evoal.languages.model.generator.Range;
+import de.evoal.languages.model.generator.Statement;
+import de.evoal.languages.model.generator.Use;
+
+import de.evoal.languages.model.instance.InstancePackage;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GeneratorPackageImpl extends EPackageImpl implements GeneratorPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass configurationEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass useEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass parametrizedFunctionDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass generatorDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass statementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass forStatementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass rangeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass counterRangeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass functionsEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass functionReferencesEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass generatorsEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass generatorReferencesEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass applyStatementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass generatorReferenceEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass generatorDefinitionReferenceEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass functionReferenceEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass functionDefReferenceEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass loopVariableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass functionDefinitionReferenceEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass parametrizedFunctionDefinitionReferenceEClass = 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 de.evoal.languages.model.generator.GeneratorPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private GeneratorPackageImpl() {
+		super(eNS_URI, GeneratorFactory.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 GeneratorPackage#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 GeneratorPackage init() {
+		if (isInited) return (GeneratorPackage)EPackage.Registry.INSTANCE.getEPackage(GeneratorPackage.eNS_URI);
+
+		// Obtain or create and register package
+		Object registeredGeneratorPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+		GeneratorPackageImpl theGeneratorPackage = registeredGeneratorPackage instanceof GeneratorPackageImpl ? (GeneratorPackageImpl)registeredGeneratorPackage : new GeneratorPackageImpl();
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		DdlPackage.eINSTANCE.eClass();
+		DlPackage.eINSTANCE.eClass();
+		ELPackage.eINSTANCE.eClass();
+		InstancePackage.eINSTANCE.eClass();
+
+		// Create package meta-data objects
+		theGeneratorPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theGeneratorPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theGeneratorPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(GeneratorPackage.eNS_URI, theGeneratorPackage);
+		return theGeneratorPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getConfiguration() {
+		return configurationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getConfiguration_Uses() {
+		return (EReference)configurationEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getConfiguration_Generators() {
+		return (EReference)configurationEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getConfiguration_Functions() {
+		return (EReference)configurationEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getConfiguration_Statements() {
+		return (EReference)configurationEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getUse() {
+		return useEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getUse_ImportURI() {
+		return (EAttribute)useEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getParametrizedFunctionDefinition() {
+		return parametrizedFunctionDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getParametrizedFunctionDefinition_Name() {
+		return (EAttribute)parametrizedFunctionDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getParametrizedFunctionDefinition_Definition() {
+		return (EReference)parametrizedFunctionDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getGeneratorDefinition() {
+		return generatorDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getGeneratorDefinition_Name() {
+		return (EAttribute)generatorDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getGeneratorDefinition_Definition() {
+		return (EReference)generatorDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getStatement() {
+		return statementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getForStatement() {
+		return forStatementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getForStatement_Name() {
+		return (EAttribute)forStatementEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getForStatement_Range() {
+		return (EReference)forStatementEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getForStatement_Statements() {
+		return (EReference)forStatementEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getRange() {
+		return rangeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getCounterRange() {
+		return counterRangeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getCounterRange_Start() {
+		return (EAttribute)counterRangeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getCounterRange_End() {
+		return (EAttribute)counterRangeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getFunctions() {
+		return functionsEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getFunctions_FunctionReferences() {
+		return (EReference)functionsEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getFunctionReferences() {
+		return functionReferencesEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getFunctionReferences_Functions() {
+		return (EReference)functionReferencesEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getGenerators() {
+		return generatorsEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getGenerators_GeneratorReferences() {
+		return (EReference)generatorsEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getGeneratorReferences() {
+		return generatorReferencesEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getGeneratorReferences_Generators() {
+		return (EReference)generatorReferencesEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getApplyStatement() {
+		return applyStatementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getApplyStatement_File() {
+		return (EAttribute)applyStatementEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getApplyStatement_Count() {
+		return (EAttribute)applyStatementEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getApplyStatement_Function() {
+		return (EReference)applyStatementEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getApplyStatement_Generator() {
+		return (EReference)applyStatementEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getGeneratorReference() {
+		return generatorReferenceEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getGeneratorDefinitionReference() {
+		return generatorDefinitionReferenceEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getGeneratorDefinitionReference_Definition() {
+		return (EReference)generatorDefinitionReferenceEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getFunctionReference() {
+		return functionReferenceEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getFunctionDefReference() {
+		return functionDefReferenceEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getLoopVariable() {
+		return loopVariableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getLoopVariable_Definition() {
+		return (EReference)loopVariableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getFunctionDefinitionReference() {
+		return functionDefinitionReferenceEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getFunctionDefinitionReference_Definition() {
+		return (EReference)functionDefinitionReferenceEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getParametrizedFunctionDefinitionReference() {
+		return parametrizedFunctionDefinitionReferenceEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getParametrizedFunctionDefinitionReference_Definition() {
+		return (EReference)parametrizedFunctionDefinitionReferenceEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public GeneratorFactory getGeneratorFactory() {
+		return (GeneratorFactory)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
+		configurationEClass = createEClass(CONFIGURATION);
+		createEReference(configurationEClass, CONFIGURATION__USES);
+		createEReference(configurationEClass, CONFIGURATION__GENERATORS);
+		createEReference(configurationEClass, CONFIGURATION__FUNCTIONS);
+		createEReference(configurationEClass, CONFIGURATION__STATEMENTS);
+
+		useEClass = createEClass(USE);
+		createEAttribute(useEClass, USE__IMPORT_URI);
+
+		parametrizedFunctionDefinitionEClass = createEClass(PARAMETRIZED_FUNCTION_DEFINITION);
+		createEAttribute(parametrizedFunctionDefinitionEClass, PARAMETRIZED_FUNCTION_DEFINITION__NAME);
+		createEReference(parametrizedFunctionDefinitionEClass, PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION);
+
+		generatorDefinitionEClass = createEClass(GENERATOR_DEFINITION);
+		createEAttribute(generatorDefinitionEClass, GENERATOR_DEFINITION__NAME);
+		createEReference(generatorDefinitionEClass, GENERATOR_DEFINITION__DEFINITION);
+
+		statementEClass = createEClass(STATEMENT);
+
+		forStatementEClass = createEClass(FOR_STATEMENT);
+		createEAttribute(forStatementEClass, FOR_STATEMENT__NAME);
+		createEReference(forStatementEClass, FOR_STATEMENT__RANGE);
+		createEReference(forStatementEClass, FOR_STATEMENT__STATEMENTS);
+
+		rangeEClass = createEClass(RANGE);
+
+		counterRangeEClass = createEClass(COUNTER_RANGE);
+		createEAttribute(counterRangeEClass, COUNTER_RANGE__START);
+		createEAttribute(counterRangeEClass, COUNTER_RANGE__END);
+
+		functionsEClass = createEClass(FUNCTIONS);
+		createEReference(functionsEClass, FUNCTIONS__FUNCTION_REFERENCES);
+
+		functionReferencesEClass = createEClass(FUNCTION_REFERENCES);
+		createEReference(functionReferencesEClass, FUNCTION_REFERENCES__FUNCTIONS);
+
+		generatorsEClass = createEClass(GENERATORS);
+		createEReference(generatorsEClass, GENERATORS__GENERATOR_REFERENCES);
+
+		generatorReferencesEClass = createEClass(GENERATOR_REFERENCES);
+		createEReference(generatorReferencesEClass, GENERATOR_REFERENCES__GENERATORS);
+
+		applyStatementEClass = createEClass(APPLY_STATEMENT);
+		createEAttribute(applyStatementEClass, APPLY_STATEMENT__FILE);
+		createEAttribute(applyStatementEClass, APPLY_STATEMENT__COUNT);
+		createEReference(applyStatementEClass, APPLY_STATEMENT__FUNCTION);
+		createEReference(applyStatementEClass, APPLY_STATEMENT__GENERATOR);
+
+		generatorReferenceEClass = createEClass(GENERATOR_REFERENCE);
+
+		generatorDefinitionReferenceEClass = createEClass(GENERATOR_DEFINITION_REFERENCE);
+		createEReference(generatorDefinitionReferenceEClass, GENERATOR_DEFINITION_REFERENCE__DEFINITION);
+
+		functionReferenceEClass = createEClass(FUNCTION_REFERENCE);
+
+		functionDefReferenceEClass = createEClass(FUNCTION_DEF_REFERENCE);
+
+		loopVariableEClass = createEClass(LOOP_VARIABLE);
+		createEReference(loopVariableEClass, LOOP_VARIABLE__DEFINITION);
+
+		functionDefinitionReferenceEClass = createEClass(FUNCTION_DEFINITION_REFERENCE);
+		createEReference(functionDefinitionReferenceEClass, FUNCTION_DEFINITION_REFERENCE__DEFINITION);
+
+		parametrizedFunctionDefinitionReferenceEClass = createEClass(PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE);
+		createEReference(parametrizedFunctionDefinitionReferenceEClass, PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION);
+	}
+
+	/**
+	 * <!-- 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
+		InstancePackage theInstancePackage = (InstancePackage)EPackage.Registry.INSTANCE.getEPackage(InstancePackage.eNS_URI);
+		DlPackage theDlPackage = (DlPackage)EPackage.Registry.INSTANCE.getEPackage(DlPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		forStatementEClass.getESuperTypes().add(this.getStatement());
+		counterRangeEClass.getESuperTypes().add(this.getRange());
+		functionsEClass.getESuperTypes().add(this.getRange());
+		generatorsEClass.getESuperTypes().add(this.getRange());
+		applyStatementEClass.getESuperTypes().add(this.getStatement());
+		generatorDefinitionReferenceEClass.getESuperTypes().add(this.getGeneratorReference());
+		functionDefReferenceEClass.getESuperTypes().add(this.getFunctionReference());
+		loopVariableEClass.getESuperTypes().add(this.getGeneratorReference());
+		loopVariableEClass.getESuperTypes().add(this.getFunctionReference());
+		functionDefinitionReferenceEClass.getESuperTypes().add(this.getFunctionDefReference());
+		parametrizedFunctionDefinitionReferenceEClass.getESuperTypes().add(this.getFunctionDefReference());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(configurationEClass, Configuration.class, "Configuration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getConfiguration_Uses(), this.getUse(), null, "uses", null, 0, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getConfiguration_Generators(), this.getGeneratorDefinition(), null, "generators", null, 0, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getConfiguration_Functions(), this.getParametrizedFunctionDefinition(), null, "functions", null, 0, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getConfiguration_Statements(), this.getStatement(), null, "statements", null, 0, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(useEClass, Use.class, "Use", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getUse_ImportURI(), ecorePackage.getEString(), "importURI", null, 0, 1, Use.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(parametrizedFunctionDefinitionEClass, ParametrizedFunctionDefinition.class, "ParametrizedFunctionDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getParametrizedFunctionDefinition_Name(), ecorePackage.getEString(), "name", null, 0, 1, ParametrizedFunctionDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getParametrizedFunctionDefinition_Definition(), theInstancePackage.getInstance(), null, "definition", null, 0, 1, ParametrizedFunctionDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(generatorDefinitionEClass, GeneratorDefinition.class, "GeneratorDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getGeneratorDefinition_Name(), ecorePackage.getEString(), "name", null, 0, 1, GeneratorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getGeneratorDefinition_Definition(), theInstancePackage.getInstance(), null, "definition", null, 0, 1, GeneratorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(statementEClass, Statement.class, "Statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(forStatementEClass, ForStatement.class, "ForStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getForStatement_Name(), ecorePackage.getEString(), "name", null, 0, 1, ForStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getForStatement_Range(), this.getRange(), null, "range", null, 0, 1, ForStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getForStatement_Statements(), this.getStatement(), null, "statements", null, 0, -1, ForStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(rangeEClass, Range.class, "Range", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(counterRangeEClass, CounterRange.class, "CounterRange", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getCounterRange_Start(), ecorePackage.getEInt(), "start", null, 1, 1, CounterRange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getCounterRange_End(), ecorePackage.getEInt(), "end", null, 1, 1, CounterRange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(functionsEClass, Functions.class, "Functions", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getFunctions_FunctionReferences(), this.getFunctionReferences(), null, "functionReferences", null, 0, 1, Functions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(functionReferencesEClass, FunctionReferences.class, "FunctionReferences", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getFunctionReferences_Functions(), this.getFunctionDefReference(), null, "functions", null, 0, -1, FunctionReferences.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(generatorsEClass, Generators.class, "Generators", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getGenerators_GeneratorReferences(), this.getGeneratorReferences(), null, "generatorReferences", null, 0, 1, Generators.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(generatorReferencesEClass, GeneratorReferences.class, "GeneratorReferences", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getGeneratorReferences_Generators(), this.getGeneratorDefinition(), null, "generators", null, 0, -1, GeneratorReferences.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(applyStatementEClass, ApplyStatement.class, "ApplyStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getApplyStatement_File(), ecorePackage.getEString(), "file", null, 0, 1, ApplyStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getApplyStatement_Count(), ecorePackage.getEInt(), "count", null, 1, 1, ApplyStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getApplyStatement_Function(), this.getFunctionReference(), null, "function", null, 0, 1, ApplyStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getApplyStatement_Generator(), this.getGeneratorReference(), null, "generator", null, 0, 1, ApplyStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(generatorReferenceEClass, GeneratorReference.class, "GeneratorReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(generatorDefinitionReferenceEClass, GeneratorDefinitionReference.class, "GeneratorDefinitionReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getGeneratorDefinitionReference_Definition(), this.getGeneratorDefinition(), null, "definition", null, 0, 1, GeneratorDefinitionReference.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);
+
+		initEClass(functionDefReferenceEClass, FunctionDefReference.class, "FunctionDefReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(loopVariableEClass, LoopVariable.class, "LoopVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getLoopVariable_Definition(), this.getForStatement(), null, "definition", null, 0, 1, LoopVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(functionDefinitionReferenceEClass, FunctionDefinitionReference.class, "FunctionDefinitionReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getFunctionDefinitionReference_Definition(), theDlPackage.getFunctionDefinition(), null, "definition", null, 0, 1, FunctionDefinitionReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(parametrizedFunctionDefinitionReferenceEClass, ParametrizedFunctionDefinitionReference.class, "ParametrizedFunctionDefinitionReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getParametrizedFunctionDefinitionReference_Definition(), this.getFunctionDefinitionReference(), null, "definition", null, 0, 1, ParametrizedFunctionDefinitionReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+
+		// Create annotations
+		// http://www.eclipse.org/OCL/Import
+		createImportAnnotations();
+	}
+
+	/**
+	 * Initializes the annotations for <b>http://www.eclipse.org/OCL/Import</b>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void createImportAnnotations() {
+		String source = "http://www.eclipse.org/OCL/Import";
+		addAnnotation
+		  (this,
+		   source,
+		   new String[] {
+			   "dl", "platform:/resource/de.evoal.languages.model.dl/model/model.ecore#/",
+			   "ecore", "http://www.eclipse.org/emf/2002/Ecore",
+			   "ins", "platform:/resource/de.evoal.languages.model.instance/model/model.ecore#/"
+		   });
+	}
+
+} //GeneratorPackageImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorReferenceImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorReferenceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..2b9be4e94381410345c6c97db93c89a1d86e9095
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorReferenceImpl.java
@@ -0,0 +1,40 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.GeneratorPackage;
+import de.evoal.languages.model.generator.GeneratorReference;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class GeneratorReferenceImpl extends MinimalEObjectImpl.Container implements GeneratorReference {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected GeneratorReferenceImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.GENERATOR_REFERENCE;
+	}
+
+} //GeneratorReferenceImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorReferencesImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorReferencesImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..820acf8815efce015a556a056fcfc9b0710206b6
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorReferencesImpl.java
@@ -0,0 +1,136 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.GeneratorDefinition;
+import de.evoal.languages.model.generator.GeneratorPackage;
+import de.evoal.languages.model.generator.GeneratorReferences;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>References</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.impl.GeneratorReferencesImpl#getGenerators <em>Generators</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class GeneratorReferencesImpl extends MinimalEObjectImpl.Container implements GeneratorReferences {
+	/**
+	 * The cached value of the '{@link #getGenerators() <em>Generators</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGenerators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<GeneratorDefinition> generators;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected GeneratorReferencesImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.GENERATOR_REFERENCES;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<GeneratorDefinition> getGenerators() {
+		if (generators == null) {
+			generators = new EObjectResolvingEList<GeneratorDefinition>(GeneratorDefinition.class, this, GeneratorPackage.GENERATOR_REFERENCES__GENERATORS);
+		}
+		return generators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case GeneratorPackage.GENERATOR_REFERENCES__GENERATORS:
+				return getGenerators();
+		}
+		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 GeneratorPackage.GENERATOR_REFERENCES__GENERATORS:
+				getGenerators().clear();
+				getGenerators().addAll((Collection<? extends GeneratorDefinition>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.GENERATOR_REFERENCES__GENERATORS:
+				getGenerators().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.GENERATOR_REFERENCES__GENERATORS:
+				return generators != null && !generators.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //GeneratorReferencesImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorsImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorsImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..add1573e4e8346dd7483920f4995cac9db462f4a
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/GeneratorsImpl.java
@@ -0,0 +1,178 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.GeneratorPackage;
+import de.evoal.languages.model.generator.GeneratorReferences;
+import de.evoal.languages.model.generator.Generators;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Generators</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.impl.GeneratorsImpl#getGeneratorReferences <em>Generator References</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class GeneratorsImpl extends RangeImpl implements Generators {
+	/**
+	 * The cached value of the '{@link #getGeneratorReferences() <em>Generator References</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGeneratorReferences()
+	 * @generated
+	 * @ordered
+	 */
+	protected GeneratorReferences generatorReferences;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected GeneratorsImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.GENERATORS;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public GeneratorReferences getGeneratorReferences() {
+		return generatorReferences;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetGeneratorReferences(GeneratorReferences newGeneratorReferences, NotificationChain msgs) {
+		GeneratorReferences oldGeneratorReferences = generatorReferences;
+		generatorReferences = newGeneratorReferences;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, GeneratorPackage.GENERATORS__GENERATOR_REFERENCES, oldGeneratorReferences, newGeneratorReferences);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setGeneratorReferences(GeneratorReferences newGeneratorReferences) {
+		if (newGeneratorReferences != generatorReferences) {
+			NotificationChain msgs = null;
+			if (generatorReferences != null)
+				msgs = ((InternalEObject)generatorReferences).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - GeneratorPackage.GENERATORS__GENERATOR_REFERENCES, null, msgs);
+			if (newGeneratorReferences != null)
+				msgs = ((InternalEObject)newGeneratorReferences).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - GeneratorPackage.GENERATORS__GENERATOR_REFERENCES, null, msgs);
+			msgs = basicSetGeneratorReferences(newGeneratorReferences, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, GeneratorPackage.GENERATORS__GENERATOR_REFERENCES, newGeneratorReferences, newGeneratorReferences));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case GeneratorPackage.GENERATORS__GENERATOR_REFERENCES:
+				return basicSetGeneratorReferences(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 GeneratorPackage.GENERATORS__GENERATOR_REFERENCES:
+				return getGeneratorReferences();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case GeneratorPackage.GENERATORS__GENERATOR_REFERENCES:
+				setGeneratorReferences((GeneratorReferences)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.GENERATORS__GENERATOR_REFERENCES:
+				setGeneratorReferences((GeneratorReferences)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.GENERATORS__GENERATOR_REFERENCES:
+				return generatorReferences != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //GeneratorsImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/LoopVariableImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/LoopVariableImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..06cbb83751645e5f3857058126d00f3492c3a6ae
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/LoopVariableImpl.java
@@ -0,0 +1,159 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.ForStatement;
+import de.evoal.languages.model.generator.GeneratorPackage;
+import de.evoal.languages.model.generator.LoopVariable;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Loop Variable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.impl.LoopVariableImpl#getDefinition <em>Definition</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LoopVariableImpl extends GeneratorReferenceImpl implements LoopVariable {
+	/**
+	 * The cached value of the '{@link #getDefinition() <em>Definition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected ForStatement definition;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected LoopVariableImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.LOOP_VARIABLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ForStatement getDefinition() {
+		if (definition != null && definition.eIsProxy()) {
+			InternalEObject oldDefinition = (InternalEObject)definition;
+			definition = (ForStatement)eResolveProxy(oldDefinition);
+			if (definition != oldDefinition) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, GeneratorPackage.LOOP_VARIABLE__DEFINITION, oldDefinition, definition));
+			}
+		}
+		return definition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ForStatement basicGetDefinition() {
+		return definition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setDefinition(ForStatement newDefinition) {
+		ForStatement oldDefinition = definition;
+		definition = newDefinition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, GeneratorPackage.LOOP_VARIABLE__DEFINITION, oldDefinition, definition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case GeneratorPackage.LOOP_VARIABLE__DEFINITION:
+				if (resolve) return getDefinition();
+				return basicGetDefinition();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case GeneratorPackage.LOOP_VARIABLE__DEFINITION:
+				setDefinition((ForStatement)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.LOOP_VARIABLE__DEFINITION:
+				setDefinition((ForStatement)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.LOOP_VARIABLE__DEFINITION:
+				return definition != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //LoopVariableImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/ParametrizedFunctionDefinitionImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/ParametrizedFunctionDefinitionImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..8dd8935d49331d239363117ca02eb2fe89fdae85
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/ParametrizedFunctionDefinitionImpl.java
@@ -0,0 +1,250 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.GeneratorPackage;
+import de.evoal.languages.model.generator.ParametrizedFunctionDefinition;
+
+import de.evoal.languages.model.instance.Instance;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Parametrized Function Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.impl.ParametrizedFunctionDefinitionImpl#getName <em>Name</em>}</li>
+ *   <li>{@link de.evoal.languages.model.generator.impl.ParametrizedFunctionDefinitionImpl#getDefinition <em>Definition</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ParametrizedFunctionDefinitionImpl extends MinimalEObjectImpl.Container implements ParametrizedFunctionDefinition {
+	/**
+	 * 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 #getDefinition() <em>Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected Instance definition;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ParametrizedFunctionDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.PARAMETRIZED_FUNCTION_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Instance getDefinition() {
+		return definition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetDefinition(Instance newDefinition, NotificationChain msgs) {
+		Instance oldDefinition = definition;
+		definition = newDefinition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION, oldDefinition, newDefinition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setDefinition(Instance newDefinition) {
+		if (newDefinition != definition) {
+			NotificationChain msgs = null;
+			if (definition != null)
+				msgs = ((InternalEObject)definition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION, null, msgs);
+			if (newDefinition != null)
+				msgs = ((InternalEObject)newDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION, null, msgs);
+			msgs = basicSetDefinition(newDefinition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION, newDefinition, newDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION:
+				return basicSetDefinition(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 GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION__NAME:
+				return getName();
+			case GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION:
+				return getDefinition();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION__NAME:
+				setName((String)newValue);
+				return;
+			case GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION:
+				setDefinition((Instance)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION:
+				setDefinition((Instance)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION__DEFINITION:
+				return definition != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (name: ");
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ParametrizedFunctionDefinitionImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/ParametrizedFunctionDefinitionReferenceImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/ParametrizedFunctionDefinitionReferenceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..e8353223244b12807692b6d644d35fc64a60189a
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/ParametrizedFunctionDefinitionReferenceImpl.java
@@ -0,0 +1,159 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.FunctionDefinitionReference;
+import de.evoal.languages.model.generator.GeneratorPackage;
+import de.evoal.languages.model.generator.ParametrizedFunctionDefinitionReference;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Parametrized Function Definition Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.impl.ParametrizedFunctionDefinitionReferenceImpl#getDefinition <em>Definition</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ParametrizedFunctionDefinitionReferenceImpl extends FunctionDefReferenceImpl implements ParametrizedFunctionDefinitionReference {
+	/**
+	 * The cached value of the '{@link #getDefinition() <em>Definition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected FunctionDefinitionReference definition;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ParametrizedFunctionDefinitionReferenceImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public FunctionDefinitionReference getDefinition() {
+		if (definition != null && definition.eIsProxy()) {
+			InternalEObject oldDefinition = (InternalEObject)definition;
+			definition = (FunctionDefinitionReference)eResolveProxy(oldDefinition);
+			if (definition != oldDefinition) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION, oldDefinition, definition));
+			}
+		}
+		return definition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FunctionDefinitionReference basicGetDefinition() {
+		return definition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setDefinition(FunctionDefinitionReference newDefinition) {
+		FunctionDefinitionReference oldDefinition = definition;
+		definition = newDefinition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION, oldDefinition, definition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION:
+				if (resolve) return getDefinition();
+				return basicGetDefinition();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION:
+				setDefinition((FunctionDefinitionReference)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION:
+				setDefinition((FunctionDefinitionReference)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE__DEFINITION:
+				return definition != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //ParametrizedFunctionDefinitionReferenceImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/RangeImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/RangeImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..7ec797216ddf01af6ac257b847e78974abdbaf10
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/RangeImpl.java
@@ -0,0 +1,40 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.GeneratorPackage;
+import de.evoal.languages.model.generator.Range;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Range</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class RangeImpl extends MinimalEObjectImpl.Container implements Range {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected RangeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.RANGE;
+	}
+
+} //RangeImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/StatementImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/StatementImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..523920f887e570c921ee1ca514dbe6cc82cba79d
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/StatementImpl.java
@@ -0,0 +1,40 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.GeneratorPackage;
+import de.evoal.languages.model.generator.Statement;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class StatementImpl extends MinimalEObjectImpl.Container implements Statement {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected StatementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.STATEMENT;
+	}
+
+} //StatementImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/UseImpl.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/UseImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..4afd80e3f9ab8ab37ac572296b93ff2c92b0a1cd
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/impl/UseImpl.java
@@ -0,0 +1,166 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.impl;
+
+import de.evoal.languages.model.generator.GeneratorPackage;
+import de.evoal.languages.model.generator.Use;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Use</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.generator.impl.UseImpl#getImportURI <em>Import URI</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class UseImpl extends MinimalEObjectImpl.Container implements Use {
+	/**
+	 * The default value of the '{@link #getImportURI() <em>Import URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getImportURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String IMPORT_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getImportURI() <em>Import URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getImportURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String importURI = IMPORT_URI_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected UseImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return GeneratorPackage.Literals.USE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getImportURI() {
+		return importURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setImportURI(String newImportURI) {
+		String oldImportURI = importURI;
+		importURI = newImportURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, GeneratorPackage.USE__IMPORT_URI, oldImportURI, importURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case GeneratorPackage.USE__IMPORT_URI:
+				return getImportURI();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case GeneratorPackage.USE__IMPORT_URI:
+				setImportURI((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.USE__IMPORT_URI:
+				setImportURI(IMPORT_URI_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case GeneratorPackage.USE__IMPORT_URI:
+				return IMPORT_URI_EDEFAULT == null ? importURI != null : !IMPORT_URI_EDEFAULT.equals(importURI);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (importURI: ");
+		result.append(importURI);
+		result.append(')');
+		return result.toString();
+	}
+
+} //UseImpl
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/util/GeneratorAdapterFactory.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/util/GeneratorAdapterFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..8f2be817588058e4876f297bc0d56b177e868c36
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/util/GeneratorAdapterFactory.java
@@ -0,0 +1,463 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.util;
+
+import de.evoal.languages.model.generator.*;
+
+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;
+
+/**
+ * <!-- 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 de.evoal.languages.model.generator.GeneratorPackage
+ * @generated
+ */
+public class GeneratorAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static GeneratorPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public GeneratorAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = GeneratorPackage.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 GeneratorSwitch<Adapter> modelSwitch =
+		new GeneratorSwitch<Adapter>() {
+			@Override
+			public Adapter caseConfiguration(Configuration object) {
+				return createConfigurationAdapter();
+			}
+			@Override
+			public Adapter caseUse(Use object) {
+				return createUseAdapter();
+			}
+			@Override
+			public Adapter caseParametrizedFunctionDefinition(ParametrizedFunctionDefinition object) {
+				return createParametrizedFunctionDefinitionAdapter();
+			}
+			@Override
+			public Adapter caseGeneratorDefinition(GeneratorDefinition object) {
+				return createGeneratorDefinitionAdapter();
+			}
+			@Override
+			public Adapter caseStatement(Statement object) {
+				return createStatementAdapter();
+			}
+			@Override
+			public Adapter caseForStatement(ForStatement object) {
+				return createForStatementAdapter();
+			}
+			@Override
+			public Adapter caseRange(Range object) {
+				return createRangeAdapter();
+			}
+			@Override
+			public Adapter caseCounterRange(CounterRange object) {
+				return createCounterRangeAdapter();
+			}
+			@Override
+			public Adapter caseFunctions(Functions object) {
+				return createFunctionsAdapter();
+			}
+			@Override
+			public Adapter caseFunctionReferences(FunctionReferences object) {
+				return createFunctionReferencesAdapter();
+			}
+			@Override
+			public Adapter caseGenerators(Generators object) {
+				return createGeneratorsAdapter();
+			}
+			@Override
+			public Adapter caseGeneratorReferences(GeneratorReferences object) {
+				return createGeneratorReferencesAdapter();
+			}
+			@Override
+			public Adapter caseApplyStatement(ApplyStatement object) {
+				return createApplyStatementAdapter();
+			}
+			@Override
+			public Adapter caseGeneratorReference(GeneratorReference object) {
+				return createGeneratorReferenceAdapter();
+			}
+			@Override
+			public Adapter caseGeneratorDefinitionReference(GeneratorDefinitionReference object) {
+				return createGeneratorDefinitionReferenceAdapter();
+			}
+			@Override
+			public Adapter caseFunctionReference(FunctionReference object) {
+				return createFunctionReferenceAdapter();
+			}
+			@Override
+			public Adapter caseFunctionDefReference(FunctionDefReference object) {
+				return createFunctionDefReferenceAdapter();
+			}
+			@Override
+			public Adapter caseLoopVariable(LoopVariable object) {
+				return createLoopVariableAdapter();
+			}
+			@Override
+			public Adapter caseFunctionDefinitionReference(FunctionDefinitionReference object) {
+				return createFunctionDefinitionReferenceAdapter();
+			}
+			@Override
+			public Adapter caseParametrizedFunctionDefinitionReference(ParametrizedFunctionDefinitionReference object) {
+				return createParametrizedFunctionDefinitionReferenceAdapter();
+			}
+			@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 de.evoal.languages.model.generator.Configuration <em>Configuration</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 de.evoal.languages.model.generator.Configuration
+	 * @generated
+	 */
+	public Adapter createConfigurationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.Use <em>Use</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 de.evoal.languages.model.generator.Use
+	 * @generated
+	 */
+	public Adapter createUseAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.ParametrizedFunctionDefinition <em>Parametrized 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 de.evoal.languages.model.generator.ParametrizedFunctionDefinition
+	 * @generated
+	 */
+	public Adapter createParametrizedFunctionDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.GeneratorDefinition <em>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 de.evoal.languages.model.generator.GeneratorDefinition
+	 * @generated
+	 */
+	public Adapter createGeneratorDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.Statement <em>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 de.evoal.languages.model.generator.Statement
+	 * @generated
+	 */
+	public Adapter createStatementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.ForStatement <em>For 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 de.evoal.languages.model.generator.ForStatement
+	 * @generated
+	 */
+	public Adapter createForStatementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.Range <em>Range</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 de.evoal.languages.model.generator.Range
+	 * @generated
+	 */
+	public Adapter createRangeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.CounterRange <em>Counter Range</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 de.evoal.languages.model.generator.CounterRange
+	 * @generated
+	 */
+	public Adapter createCounterRangeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.Functions <em>Functions</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 de.evoal.languages.model.generator.Functions
+	 * @generated
+	 */
+	public Adapter createFunctionsAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.FunctionReferences <em>Function References</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 de.evoal.languages.model.generator.FunctionReferences
+	 * @generated
+	 */
+	public Adapter createFunctionReferencesAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.Generators <em>Generators</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 de.evoal.languages.model.generator.Generators
+	 * @generated
+	 */
+	public Adapter createGeneratorsAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.GeneratorReferences <em>References</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 de.evoal.languages.model.generator.GeneratorReferences
+	 * @generated
+	 */
+	public Adapter createGeneratorReferencesAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.ApplyStatement <em>Apply 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 de.evoal.languages.model.generator.ApplyStatement
+	 * @generated
+	 */
+	public Adapter createApplyStatementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.GeneratorReference <em>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 de.evoal.languages.model.generator.GeneratorReference
+	 * @generated
+	 */
+	public Adapter createGeneratorReferenceAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.GeneratorDefinitionReference <em>Definition 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 de.evoal.languages.model.generator.GeneratorDefinitionReference
+	 * @generated
+	 */
+	public Adapter createGeneratorDefinitionReferenceAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.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 de.evoal.languages.model.generator.FunctionReference
+	 * @generated
+	 */
+	public Adapter createFunctionReferenceAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.FunctionDefReference <em>Function Def 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 de.evoal.languages.model.generator.FunctionDefReference
+	 * @generated
+	 */
+	public Adapter createFunctionDefReferenceAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.LoopVariable <em>Loop 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 de.evoal.languages.model.generator.LoopVariable
+	 * @generated
+	 */
+	public Adapter createLoopVariableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.FunctionDefinitionReference <em>Function Definition 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 de.evoal.languages.model.generator.FunctionDefinitionReference
+	 * @generated
+	 */
+	public Adapter createFunctionDefinitionReferenceAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.generator.ParametrizedFunctionDefinitionReference <em>Parametrized Function Definition 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 de.evoal.languages.model.generator.ParametrizedFunctionDefinitionReference
+	 * @generated
+	 */
+	public Adapter createParametrizedFunctionDefinitionReferenceAdapter() {
+		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;
+	}
+
+} //GeneratorAdapterFactory
diff --git a/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/util/GeneratorSwitch.java b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/util/GeneratorSwitch.java
new file mode 100644
index 0000000000000000000000000000000000000000..fcc8239709b5ff763fdca026e24611e2da31ebed
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.generator/src-gen/de/evoal/languages/model/generator/util/GeneratorSwitch.java
@@ -0,0 +1,523 @@
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.evoal.languages.model.generator.util;
+
+import de.evoal.languages.model.generator.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- 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 de.evoal.languages.model.generator.GeneratorPackage
+ * @generated
+ */
+public class GeneratorSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static GeneratorPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public GeneratorSwitch() {
+		if (modelPackage == null) {
+			modelPackage = GeneratorPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <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 GeneratorPackage.CONFIGURATION: {
+				Configuration configuration = (Configuration)theEObject;
+				T result = caseConfiguration(configuration);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GeneratorPackage.USE: {
+				Use use = (Use)theEObject;
+				T result = caseUse(use);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION: {
+				ParametrizedFunctionDefinition parametrizedFunctionDefinition = (ParametrizedFunctionDefinition)theEObject;
+				T result = caseParametrizedFunctionDefinition(parametrizedFunctionDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GeneratorPackage.GENERATOR_DEFINITION: {
+				GeneratorDefinition generatorDefinition = (GeneratorDefinition)theEObject;
+				T result = caseGeneratorDefinition(generatorDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GeneratorPackage.STATEMENT: {
+				Statement statement = (Statement)theEObject;
+				T result = caseStatement(statement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GeneratorPackage.FOR_STATEMENT: {
+				ForStatement forStatement = (ForStatement)theEObject;
+				T result = caseForStatement(forStatement);
+				if (result == null) result = caseStatement(forStatement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GeneratorPackage.RANGE: {
+				Range range = (Range)theEObject;
+				T result = caseRange(range);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GeneratorPackage.COUNTER_RANGE: {
+				CounterRange counterRange = (CounterRange)theEObject;
+				T result = caseCounterRange(counterRange);
+				if (result == null) result = caseRange(counterRange);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GeneratorPackage.FUNCTIONS: {
+				Functions functions = (Functions)theEObject;
+				T result = caseFunctions(functions);
+				if (result == null) result = caseRange(functions);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GeneratorPackage.FUNCTION_REFERENCES: {
+				FunctionReferences functionReferences = (FunctionReferences)theEObject;
+				T result = caseFunctionReferences(functionReferences);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GeneratorPackage.GENERATORS: {
+				Generators generators = (Generators)theEObject;
+				T result = caseGenerators(generators);
+				if (result == null) result = caseRange(generators);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GeneratorPackage.GENERATOR_REFERENCES: {
+				GeneratorReferences generatorReferences = (GeneratorReferences)theEObject;
+				T result = caseGeneratorReferences(generatorReferences);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GeneratorPackage.APPLY_STATEMENT: {
+				ApplyStatement applyStatement = (ApplyStatement)theEObject;
+				T result = caseApplyStatement(applyStatement);
+				if (result == null) result = caseStatement(applyStatement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GeneratorPackage.GENERATOR_REFERENCE: {
+				GeneratorReference generatorReference = (GeneratorReference)theEObject;
+				T result = caseGeneratorReference(generatorReference);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GeneratorPackage.GENERATOR_DEFINITION_REFERENCE: {
+				GeneratorDefinitionReference generatorDefinitionReference = (GeneratorDefinitionReference)theEObject;
+				T result = caseGeneratorDefinitionReference(generatorDefinitionReference);
+				if (result == null) result = caseGeneratorReference(generatorDefinitionReference);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GeneratorPackage.FUNCTION_REFERENCE: {
+				FunctionReference functionReference = (FunctionReference)theEObject;
+				T result = caseFunctionReference(functionReference);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GeneratorPackage.FUNCTION_DEF_REFERENCE: {
+				FunctionDefReference functionDefReference = (FunctionDefReference)theEObject;
+				T result = caseFunctionDefReference(functionDefReference);
+				if (result == null) result = caseFunctionReference(functionDefReference);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GeneratorPackage.LOOP_VARIABLE: {
+				LoopVariable loopVariable = (LoopVariable)theEObject;
+				T result = caseLoopVariable(loopVariable);
+				if (result == null) result = caseGeneratorReference(loopVariable);
+				if (result == null) result = caseFunctionReference(loopVariable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GeneratorPackage.FUNCTION_DEFINITION_REFERENCE: {
+				FunctionDefinitionReference functionDefinitionReference = (FunctionDefinitionReference)theEObject;
+				T result = caseFunctionDefinitionReference(functionDefinitionReference);
+				if (result == null) result = caseFunctionDefReference(functionDefinitionReference);
+				if (result == null) result = caseFunctionReference(functionDefinitionReference);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GeneratorPackage.PARAMETRIZED_FUNCTION_DEFINITION_REFERENCE: {
+				ParametrizedFunctionDefinitionReference parametrizedFunctionDefinitionReference = (ParametrizedFunctionDefinitionReference)theEObject;
+				T result = caseParametrizedFunctionDefinitionReference(parametrizedFunctionDefinitionReference);
+				if (result == null) result = caseFunctionDefReference(parametrizedFunctionDefinitionReference);
+				if (result == null) result = caseFunctionReference(parametrizedFunctionDefinitionReference);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Configuration</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>Configuration</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseConfiguration(Configuration object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Use</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>Use</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseUse(Use object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Parametrized 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>Parametrized Function Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseParametrizedFunctionDefinition(ParametrizedFunctionDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>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>Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseGeneratorDefinition(GeneratorDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>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>Statement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseStatement(Statement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>For 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>For Statement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseForStatement(ForStatement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Range</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>Range</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseRange(Range object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Counter Range</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>Counter Range</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseCounterRange(CounterRange object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Functions</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>Functions</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseFunctions(Functions object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Function References</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 References</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseFunctionReferences(FunctionReferences object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Generators</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>Generators</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseGenerators(Generators object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>References</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>References</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseGeneratorReferences(GeneratorReferences object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Apply 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>Apply Statement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseApplyStatement(ApplyStatement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>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>Reference</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseGeneratorReference(GeneratorReference object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Definition 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>Definition Reference</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseGeneratorDefinitionReference(GeneratorDefinitionReference 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>Function Def 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 Def Reference</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseFunctionDefReference(FunctionDefReference object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Loop 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>Loop Variable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLoopVariable(LoopVariable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Function Definition 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 Definition Reference</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseFunctionDefinitionReference(FunctionDefinitionReference object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Parametrized Function Definition 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>Parametrized Function Definition Reference</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseParametrizedFunctionDefinitionReference(ParametrizedFunctionDefinitionReference 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;
+	}
+
+} //GeneratorSwitch
diff --git a/src/languages/de.evoal.languages.model.instance.dsl/xtend-gen/de/evoal/languages/model/instance/dsl/generator/.InstanceLanguageGenerator.java._trace b/src/languages/de.evoal.languages.model.instance.dsl/xtend-gen/de/evoal/languages/model/instance/dsl/generator/.InstanceLanguageGenerator.java._trace
deleted file mode 100644
index ae5ccebcb989050aa89ee72f086b3c3bb9d91b62..0000000000000000000000000000000000000000
Binary files a/src/languages/de.evoal.languages.model.instance.dsl/xtend-gen/de/evoal/languages/model/instance/dsl/generator/.InstanceLanguageGenerator.java._trace and /dev/null differ
diff --git a/src/languages/de.evoal.languages.model.instance.dsl/xtend-gen/de/evoal/languages/model/instance/dsl/generator/InstanceLanguageGenerator.java b/src/languages/de.evoal.languages.model.instance.dsl/xtend-gen/de/evoal/languages/model/instance/dsl/generator/InstanceLanguageGenerator.java
deleted file mode 100644
index dc609dbe1d7e1703164fda35c6346036b108cb78..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.instance.dsl/xtend-gen/de/evoal/languages/model/instance/dsl/generator/InstanceLanguageGenerator.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- * (c) EvoAl Project
- */
-package de.evoal.languages.model.instance.dsl.generator;
-
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.xtext.generator.AbstractGenerator;
-import org.eclipse.xtext.generator.IFileSystemAccess2;
-import org.eclipse.xtext.generator.IGeneratorContext;
-
-/**
- * Generates code from your model files on save.
- * 
- * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation
- */
-@SuppressWarnings("all")
-public class InstanceLanguageGenerator extends AbstractGenerator {
-  @Override
-  public void doGenerate(final Resource resource, final IFileSystemAccess2 fsa, final IGeneratorContext context) {
-  }
-}
diff --git a/src/languages/de.evoal.languages.model.mll.dsl/xtend-gen/de/evoal/languages/model/mll/dsl/formatting2/.MachineLearningLanguageFormatter.java._trace b/src/languages/de.evoal.languages.model.mll.dsl/xtend-gen/de/evoal/languages/model/mll/dsl/formatting2/.MachineLearningLanguageFormatter.java._trace
deleted file mode 100644
index b7f91c0d65fb8721e5858938ee9fd9fdf6f47694..0000000000000000000000000000000000000000
Binary files a/src/languages/de.evoal.languages.model.mll.dsl/xtend-gen/de/evoal/languages/model/mll/dsl/formatting2/.MachineLearningLanguageFormatter.java._trace and /dev/null differ
diff --git a/src/languages/de.evoal.languages.model.mll.dsl/xtend-gen/de/evoal/languages/model/mll/dsl/formatting2/MachineLearningLanguageFormatter.java b/src/languages/de.evoal.languages.model.mll.dsl/xtend-gen/de/evoal/languages/model/mll/dsl/formatting2/MachineLearningLanguageFormatter.java
deleted file mode 100644
index a02b158b8bb8acaba317cc7f1b1ce08b45606e50..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.mll.dsl/xtend-gen/de/evoal/languages/model/mll/dsl/formatting2/MachineLearningLanguageFormatter.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- * (c) EvoAl Project
- */
-package de.evoal.languages.model.mll.dsl.formatting2;
-
-import de.evoal.languages.model.el.OrExpression;
-import de.evoal.languages.model.el.XorExpression;
-import de.evoal.languages.model.el.dsl.formatting2.ExpressionLanguageFormatter;
-import de.evoal.languages.model.mll.BlockStatement;
-import de.evoal.languages.model.mll.Statement;
-import java.util.Arrays;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.xtext.formatting2.IFormattableDocument;
-import org.eclipse.xtext.resource.XtextResource;
-import org.eclipse.xtext.xbase.lib.Extension;
-
-@SuppressWarnings("all")
-public class MachineLearningLanguageFormatter extends ExpressionLanguageFormatter {
-  /**
-   * def dispatch void format(MachineLearningConfiguration machineLearningConfiguration, extension IFormattableDocument document) {
-   * // TODO: format HiddenRegions around keywords, attributes, cross references, etc.
-   * machineLearningConfiguration.qualityEstimation.format
-   * }
-   */
-  protected void _format(final BlockStatement blockStatement, @Extension final IFormattableDocument document) {
-    EList<Statement> _statements = blockStatement.getStatements();
-    for (final Statement statement : _statements) {
-      document.<Statement>format(statement);
-    }
-  }
-  
-  public void format(final Object blockStatement, final IFormattableDocument document) {
-    if (blockStatement instanceof XtextResource) {
-      _format((XtextResource)blockStatement, document);
-      return;
-    } else if (blockStatement instanceof OrExpression) {
-      _format((OrExpression)blockStatement, document);
-      return;
-    } else if (blockStatement instanceof BlockStatement) {
-      _format((BlockStatement)blockStatement, document);
-      return;
-    } else if (blockStatement instanceof XorExpression) {
-      _format((XorExpression)blockStatement, document);
-      return;
-    } else if (blockStatement instanceof EObject) {
-      _format((EObject)blockStatement, document);
-      return;
-    } else if (blockStatement == null) {
-      _format((Void)null, document);
-      return;
-    } else if (blockStatement != null) {
-      _format(blockStatement, document);
-      return;
-    } else {
-      throw new IllegalArgumentException("Unhandled parameter types: " +
-        Arrays.<Object>asList(blockStatement, document).toString());
-    }
-  }
-}
diff --git a/src/languages/de.evoal.languages.model.mll.dsl/xtend-gen/de/evoal/languages/model/mll/dsl/generator/.MachineLearningLanguageGenerator.java._trace b/src/languages/de.evoal.languages.model.mll.dsl/xtend-gen/de/evoal/languages/model/mll/dsl/generator/.MachineLearningLanguageGenerator.java._trace
deleted file mode 100644
index 05e1484f8e00945ddf5941f65c31bc47608c536a..0000000000000000000000000000000000000000
Binary files a/src/languages/de.evoal.languages.model.mll.dsl/xtend-gen/de/evoal/languages/model/mll/dsl/generator/.MachineLearningLanguageGenerator.java._trace and /dev/null differ
diff --git a/src/languages/de.evoal.languages.model.mll.dsl/xtend-gen/de/evoal/languages/model/mll/dsl/generator/MachineLearningLanguageGenerator.java b/src/languages/de.evoal.languages.model.mll.dsl/xtend-gen/de/evoal/languages/model/mll/dsl/generator/MachineLearningLanguageGenerator.java
deleted file mode 100644
index 266f9ef8db32cbed146f4bc3f3843f0cc6af4d8f..0000000000000000000000000000000000000000
--- a/src/languages/de.evoal.languages.model.mll.dsl/xtend-gen/de/evoal/languages/model/mll/dsl/generator/MachineLearningLanguageGenerator.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * generated by Xtext 2.25.0
- * (c) EvoAl Project
- */
-package de.evoal.languages.model.mll.dsl.generator;
-
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.xtext.generator.AbstractGenerator;
-import org.eclipse.xtext.generator.IFileSystemAccess2;
-import org.eclipse.xtext.generator.IGeneratorContext;
-
-/**
- * Generates code from your model files on save.
- * 
- * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation
- */
-@SuppressWarnings("all")
-public class MachineLearningLanguageGenerator extends AbstractGenerator {
-  @Override
-  public void doGenerate(final Resource resource, final IFileSystemAccess2 fsa, final IGeneratorContext context) {
-  }
-}
diff --git a/src/languages/de.evoal.languages.releng.feature/feature.xml b/src/languages/de.evoal.languages.releng.feature/feature.xml
index 3f3bd32b7d62eb728197234581ce7303328b57c0..7352cf6ac944a9f17dbfbc9976d3ba5430cbd99e 100644
--- a/src/languages/de.evoal.languages.releng.feature/feature.xml
+++ b/src/languages/de.evoal.languages.releng.feature/feature.xml
@@ -246,4 +246,11 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="de.evoal.languages.model.generator"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
diff --git a/src/languages/de.evoal.languages.releng.parent/pom.xml b/src/languages/de.evoal.languages.releng.parent/pom.xml
index 45a30c21f8c76152d23a8850a6b1467a2464965d..d9c38be48afe88732453f22f33e0ea1a5412d138 100644
--- a/src/languages/de.evoal.languages.releng.parent/pom.xml
+++ b/src/languages/de.evoal.languages.releng.parent/pom.xml
@@ -301,6 +301,7 @@
 		<module>../de.evoal.languages.model.eal.dsl.ide</module>
 		<module>../de.evoal.languages.model.eal.dsl.ui</module>
 
+		<module>../de.evoal.languages.model.generator</module>
 		<module>../de.evoal.languages.model.generator.dsl</module>
 		<module>../de.evoal.languages.model.generator.dsl.ide</module>
 		<module>../de.evoal.languages.model.generator.dsl.ui</module>