Added containment reference between Acceleo AST and AQL AST.

Change-Id: Ifa214b8dfdcdf2977f6e256acd23704ef56ba859
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/model/acceleo.ecore b/acceleo-aql/org.eclipse.acceleo.aql/model/acceleo.ecore
index 7b9ccbf..e2fef7e 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/model/acceleo.ecore
+++ b/acceleo-aql/org.eclipse.acceleo.aql/model/acceleo.ecore
@@ -102,6 +102,9 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="TypedElement">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="#//ASTResult"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="typeAql" lowerBound="1"
+        eType="ecore:EClass http://www.eclipse.org/acceleo/query/1.0#//Expression"
+        containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="VisibilityKind">
     <eLiterals name="private"/>
@@ -181,6 +184,8 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Expression" eSuperTypes="#//ASTNode">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="ast" lowerBound="1" eType="#//ASTResult"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="aql" lowerBound="1" eType="ecore:EClass http://www.eclipse.org/acceleo/query/1.0#//Expression"
+        containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ErrorExpression" eSuperTypes="#//Error #//Expression"/>
   <eClassifiers xsi:type="ecore:EClass" name="Variable" eSuperTypes="#//TypedElement #//NamedElement #//ASTNode"/>
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/model/acceleo.genmodel b/acceleo-aql/org.eclipse.acceleo.aql/model/acceleo.genmodel
index 7940c51..c4859c3 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/model/acceleo.genmodel
+++ b/acceleo-aql/org.eclipse.acceleo.aql/model/acceleo.genmodel
@@ -1,6 +1,6 @@
 <?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="Copyright (c) 2008, 2016 Obeo.&#xD;&#xA;&#xD;&#xA;All rights reserved. This program and the accompanying materials&#xD;&#xA;are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA;which accompanies this distribution, and is available at&#xD;&#xA;http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA;Contributors:&#xD;&#xA;     Obeo - initial API and implementation"

+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2008, 2020 Obeo.&#xD;&#xA;&#xD;&#xA;All rights reserved. This program and the accompanying materials&#xD;&#xA;are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA;which accompanies this distribution, and is available at&#xD;&#xA;http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA;Contributors:&#xD;&#xA;     Obeo - initial API and implementation"

     modelDirectory="/org.eclipse.acceleo.aql/src-gen" editDirectory="/org.eclipse.acceleo.aql.edit/src-gen"

     editorDirectory="/org.eclipse.acceleo.aql.editor/src-gen" modelPluginID="org.eclipse.acceleo.aql"

     modelName="Acceleo" editPluginClass="org.eclipse.acceleo.provider.AcceleoEditPlugin"

@@ -98,6 +98,7 @@
     </genClasses>

     <genClasses ecoreClass="acceleo.ecore#//TypedElement">

       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EAttribute acceleo.ecore#//TypedElement/type"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference acceleo.ecore#//TypedElement/typeAql"/>

     </genClasses>

     <genClasses ecoreClass="acceleo.ecore#//Template">

       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference acceleo.ecore#//Template/parameters"/>

@@ -137,6 +138,7 @@
     </genClasses>

     <genClasses ecoreClass="acceleo.ecore#//Expression">

       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute acceleo.ecore#//Expression/ast"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference acceleo.ecore#//Expression/aql"/>

     </genClasses>

     <genClasses ecoreClass="acceleo.ecore#//ErrorExpression"/>

     <genClasses ecoreClass="acceleo.ecore#//Variable"/>

@@ -223,4 +225,97 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute acceleo.ecore#//TextStatement/value"/>

     </genClasses>

   </genPackages>

+  <genPackages prefix="Ast" ecorePackage="http://www.eclipse.org/acceleo/query/1.0#/">

+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="http://www.eclipse.org/acceleo/query/1.0#//CallType">

+      <genEnumLiterals ecoreEnumLiteral="http://www.eclipse.org/acceleo/query/1.0#//CallType/CALLSERVICE"/>

+      <genEnumLiterals ecoreEnumLiteral="http://www.eclipse.org/acceleo/query/1.0#//CallType/CALLORAPPLY"/>

+      <genEnumLiterals ecoreEnumLiteral="http://www.eclipse.org/acceleo/query/1.0#//CallType/COLLECTIONCALL"/>

+    </genEnums>

+    <genDataTypes ecoreDataType="http://www.eclipse.org/acceleo/query/1.0#//ObjectType"/>

+    <genClasses image="false" ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//Expression"/>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//VarRef">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute http://www.eclipse.org/acceleo/query/1.0#//VarRef/variableName"/>

+    </genClasses>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//Call">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute http://www.eclipse.org/acceleo/query/1.0#//Call/serviceName"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute http://www.eclipse.org/acceleo/query/1.0#//Call/type"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference http://www.eclipse.org/acceleo/query/1.0#//Call/arguments"/>

+    </genClasses>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//Literal"/>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//IntegerLiteral">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute http://www.eclipse.org/acceleo/query/1.0#//IntegerLiteral/value"/>

+    </genClasses>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//RealLiteral">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute http://www.eclipse.org/acceleo/query/1.0#//RealLiteral/value"/>

+    </genClasses>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//StringLiteral">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute http://www.eclipse.org/acceleo/query/1.0#//StringLiteral/value"/>

+    </genClasses>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//BooleanLiteral">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute http://www.eclipse.org/acceleo/query/1.0#//BooleanLiteral/value"/>

+    </genClasses>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//EnumLiteral">

+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference http://www.eclipse.org/acceleo/query/1.0#//EnumLiteral/literal"/>

+    </genClasses>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//TypeLiteral">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute http://www.eclipse.org/acceleo/query/1.0#//TypeLiteral/value"/>

+    </genClasses>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//TypeSetLiteral">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference http://www.eclipse.org/acceleo/query/1.0#//TypeSetLiteral/types"/>

+    </genClasses>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//CollectionTypeLiteral">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference http://www.eclipse.org/acceleo/query/1.0#//CollectionTypeLiteral/elementType"/>

+    </genClasses>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//Lambda">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference http://www.eclipse.org/acceleo/query/1.0#//Lambda/parameters"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference http://www.eclipse.org/acceleo/query/1.0#//Lambda/expression"/>

+    </genClasses>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//NullLiteral"/>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//SetInExtensionLiteral">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference http://www.eclipse.org/acceleo/query/1.0#//SetInExtensionLiteral/values"/>

+    </genClasses>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//SequenceInExtensionLiteral">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference http://www.eclipse.org/acceleo/query/1.0#//SequenceInExtensionLiteral/values"/>

+    </genClasses>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//VariableDeclaration">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute http://www.eclipse.org/acceleo/query/1.0#//VariableDeclaration/name"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference http://www.eclipse.org/acceleo/query/1.0#//VariableDeclaration/type"/>

+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference http://www.eclipse.org/acceleo/query/1.0#//VariableDeclaration/expression"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//Error"/>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//ErrorExpression"/>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//ErrorTypeLiteral">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute http://www.eclipse.org/acceleo/query/1.0#//ErrorTypeLiteral/segments"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute http://www.eclipse.org/acceleo/query/1.0#//ErrorTypeLiteral/missingColon"/>

+    </genClasses>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//ErrorEClassifierTypeLiteral"/>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//ErrorEnumLiteral">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute http://www.eclipse.org/acceleo/query/1.0#//ErrorEnumLiteral/segments"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute http://www.eclipse.org/acceleo/query/1.0#//ErrorEnumLiteral/missingColon"/>

+    </genClasses>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//ErrorCall">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute http://www.eclipse.org/acceleo/query/1.0#//ErrorCall/missingEndParenthesis"/>

+    </genClasses>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//ErrorVariableDeclaration"/>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//ErrorStringLiteral"/>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//ErrorConditional"/>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//Binding">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute http://www.eclipse.org/acceleo/query/1.0#//Binding/name"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference http://www.eclipse.org/acceleo/query/1.0#//Binding/type"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference http://www.eclipse.org/acceleo/query/1.0#//Binding/value"/>

+    </genClasses>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//ErrorBinding"/>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//Let">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference http://www.eclipse.org/acceleo/query/1.0#//Let/bindings"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference http://www.eclipse.org/acceleo/query/1.0#//Let/body"/>

+    </genClasses>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//Conditional">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference http://www.eclipse.org/acceleo/query/1.0#//Conditional/predicate"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference http://www.eclipse.org/acceleo/query/1.0#//Conditional/trueBranch"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference http://www.eclipse.org/acceleo/query/1.0#//Conditional/falseBranch"/>

+    </genClasses>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//Or"/>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//And"/>

+    <genClasses ecoreClass="http://www.eclipse.org/acceleo/query/1.0#//Implies"/>

+  </genPackages>

 </genmodel:GenModel>

diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ASTNode.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ASTNode.java
index b5d90d3..936de62 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ASTNode.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ASTNode.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/AcceleoFactory.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/AcceleoFactory.java
index eae75eb..930316b 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/AcceleoFactory.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/AcceleoFactory.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/AcceleoPackage.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/AcceleoPackage.java
index 7b20b31..c59c089 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/AcceleoPackage.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/AcceleoPackage.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -1271,13 +1271,22 @@
 	int TYPED_ELEMENT__TYPE = 0;
 
 	/**
+	 * The feature id for the '<em><b>Type Aql</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__TYPE_AQL = 1;
+
+	/**
 	 * The number of structural features of the '<em>Typed Element</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TYPED_ELEMENT_FEATURE_COUNT = 1;
+	int TYPED_ELEMENT_FEATURE_COUNT = 2;
 
 	/**
 	 * The number of operations of the '<em>Typed Element</em>' class.
@@ -1643,13 +1652,22 @@
 	int QUERY__TYPE = MODULE_ELEMENT_FEATURE_COUNT + 3;
 
 	/**
+	 * The feature id for the '<em><b>Type Aql</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY__TYPE_AQL = MODULE_ELEMENT_FEATURE_COUNT + 4;
+
+	/**
 	 * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int QUERY__PARAMETERS = MODULE_ELEMENT_FEATURE_COUNT + 4;
+	int QUERY__PARAMETERS = MODULE_ELEMENT_FEATURE_COUNT + 5;
 
 	/**
 	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
@@ -1658,7 +1676,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int QUERY__VISIBILITY = MODULE_ELEMENT_FEATURE_COUNT + 5;
+	int QUERY__VISIBILITY = MODULE_ELEMENT_FEATURE_COUNT + 6;
 
 	/**
 	 * The feature id for the '<em><b>Body</b></em>' containment reference.
@@ -1667,7 +1685,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int QUERY__BODY = MODULE_ELEMENT_FEATURE_COUNT + 6;
+	int QUERY__BODY = MODULE_ELEMENT_FEATURE_COUNT + 7;
 
 	/**
 	 * The number of structural features of the '<em>Query</em>' class.
@@ -1676,7 +1694,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int QUERY_FEATURE_COUNT = MODULE_ELEMENT_FEATURE_COUNT + 7;
+	int QUERY_FEATURE_COUNT = MODULE_ELEMENT_FEATURE_COUNT + 8;
 
 	/**
 	 * The number of operations of the '<em>Query</em>' class.
@@ -1734,13 +1752,22 @@
 	int ERROR_QUERY__TYPE = ERROR_FEATURE_COUNT + 3;
 
 	/**
+	 * The feature id for the '<em><b>Type Aql</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ERROR_QUERY__TYPE_AQL = ERROR_FEATURE_COUNT + 4;
+
+	/**
 	 * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_QUERY__PARAMETERS = ERROR_FEATURE_COUNT + 4;
+	int ERROR_QUERY__PARAMETERS = ERROR_FEATURE_COUNT + 5;
 
 	/**
 	 * The feature id for the '<em><b>Visibility</b></em>' attribute.
@@ -1749,7 +1776,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_QUERY__VISIBILITY = ERROR_FEATURE_COUNT + 5;
+	int ERROR_QUERY__VISIBILITY = ERROR_FEATURE_COUNT + 6;
 
 	/**
 	 * The feature id for the '<em><b>Body</b></em>' containment reference.
@@ -1758,7 +1785,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_QUERY__BODY = ERROR_FEATURE_COUNT + 6;
+	int ERROR_QUERY__BODY = ERROR_FEATURE_COUNT + 7;
 
 	/**
 	 * The feature id for the '<em><b>Missing Visibility</b></em>' attribute.
@@ -1767,7 +1794,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_QUERY__MISSING_VISIBILITY = ERROR_FEATURE_COUNT + 7;
+	int ERROR_QUERY__MISSING_VISIBILITY = ERROR_FEATURE_COUNT + 8;
 
 	/**
 	 * The feature id for the '<em><b>Missing Name</b></em>' attribute.
@@ -1776,7 +1803,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_QUERY__MISSING_NAME = ERROR_FEATURE_COUNT + 8;
+	int ERROR_QUERY__MISSING_NAME = ERROR_FEATURE_COUNT + 9;
 
 	/**
 	 * The feature id for the '<em><b>Missing Open Parenthesis</b></em>' attribute.
@@ -1785,7 +1812,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_QUERY__MISSING_OPEN_PARENTHESIS = ERROR_FEATURE_COUNT + 9;
+	int ERROR_QUERY__MISSING_OPEN_PARENTHESIS = ERROR_FEATURE_COUNT + 10;
 
 	/**
 	 * The feature id for the '<em><b>Missing Parameters</b></em>' attribute.
@@ -1794,7 +1821,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_QUERY__MISSING_PARAMETERS = ERROR_FEATURE_COUNT + 10;
+	int ERROR_QUERY__MISSING_PARAMETERS = ERROR_FEATURE_COUNT + 11;
 
 	/**
 	 * The feature id for the '<em><b>Missing Close Parenthesis</b></em>' attribute.
@@ -1803,7 +1830,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_QUERY__MISSING_CLOSE_PARENTHESIS = ERROR_FEATURE_COUNT + 11;
+	int ERROR_QUERY__MISSING_CLOSE_PARENTHESIS = ERROR_FEATURE_COUNT + 12;
 
 	/**
 	 * The feature id for the '<em><b>Missing Colon</b></em>' attribute.
@@ -1812,7 +1839,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_QUERY__MISSING_COLON = ERROR_FEATURE_COUNT + 12;
+	int ERROR_QUERY__MISSING_COLON = ERROR_FEATURE_COUNT + 13;
 
 	/**
 	 * The feature id for the '<em><b>Missing Type</b></em>' attribute.
@@ -1821,7 +1848,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_QUERY__MISSING_TYPE = ERROR_FEATURE_COUNT + 13;
+	int ERROR_QUERY__MISSING_TYPE = ERROR_FEATURE_COUNT + 14;
 
 	/**
 	 * The feature id for the '<em><b>Missing Equal</b></em>' attribute.
@@ -1830,7 +1857,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_QUERY__MISSING_EQUAL = ERROR_FEATURE_COUNT + 14;
+	int ERROR_QUERY__MISSING_EQUAL = ERROR_FEATURE_COUNT + 15;
 
 	/**
 	 * The feature id for the '<em><b>Missing End</b></em>' attribute.
@@ -1839,7 +1866,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_QUERY__MISSING_END = ERROR_FEATURE_COUNT + 15;
+	int ERROR_QUERY__MISSING_END = ERROR_FEATURE_COUNT + 16;
 
 	/**
 	 * The number of structural features of the '<em>Error Query</em>' class.
@@ -1848,7 +1875,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_QUERY_FEATURE_COUNT = ERROR_FEATURE_COUNT + 16;
+	int ERROR_QUERY_FEATURE_COUNT = ERROR_FEATURE_COUNT + 17;
 
 	/**
 	 * The number of operations of the '<em>Error Query</em>' class.
@@ -1879,13 +1906,22 @@
 	int EXPRESSION__AST = AST_NODE_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Aql</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXPRESSION__AQL = AST_NODE_FEATURE_COUNT + 1;
+
+	/**
 	 * The number of structural features of the '<em>Expression</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXPRESSION_FEATURE_COUNT = AST_NODE_FEATURE_COUNT + 1;
+	int EXPRESSION_FEATURE_COUNT = AST_NODE_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Expression</em>' class.
@@ -1916,13 +1952,22 @@
 	int ERROR_EXPRESSION__AST = ERROR_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Aql</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ERROR_EXPRESSION__AQL = ERROR_FEATURE_COUNT + 1;
+
+	/**
 	 * The number of structural features of the '<em>Error Expression</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_EXPRESSION_FEATURE_COUNT = ERROR_FEATURE_COUNT + 1;
+	int ERROR_EXPRESSION_FEATURE_COUNT = ERROR_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Error Expression</em>' class.
@@ -1953,6 +1998,15 @@
 	int VARIABLE__TYPE = TYPED_ELEMENT__TYPE;
 
 	/**
+	 * The feature id for the '<em><b>Type Aql</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VARIABLE__TYPE_AQL = TYPED_ELEMENT__TYPE_AQL;
+
+	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1999,13 +2053,22 @@
 	int ERROR_VARIABLE__TYPE = ERROR_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Type Aql</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ERROR_VARIABLE__TYPE_AQL = ERROR_FEATURE_COUNT + 1;
+
+	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_VARIABLE__NAME = ERROR_FEATURE_COUNT + 1;
+	int ERROR_VARIABLE__NAME = ERROR_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Missing Name</b></em>' attribute.
@@ -2014,7 +2077,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_VARIABLE__MISSING_NAME = ERROR_FEATURE_COUNT + 2;
+	int ERROR_VARIABLE__MISSING_NAME = ERROR_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Missing Colon</b></em>' attribute.
@@ -2023,7 +2086,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_VARIABLE__MISSING_COLON = ERROR_FEATURE_COUNT + 3;
+	int ERROR_VARIABLE__MISSING_COLON = ERROR_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Missing Type</b></em>' attribute.
@@ -2032,7 +2095,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_VARIABLE__MISSING_TYPE = ERROR_FEATURE_COUNT + 4;
+	int ERROR_VARIABLE__MISSING_TYPE = ERROR_FEATURE_COUNT + 5;
 
 	/**
 	 * The number of structural features of the '<em>Error Variable</em>' class.
@@ -2041,7 +2104,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_VARIABLE_FEATURE_COUNT = ERROR_FEATURE_COUNT + 5;
+	int ERROR_VARIABLE_FEATURE_COUNT = ERROR_FEATURE_COUNT + 6;
 
 	/**
 	 * The number of operations of the '<em>Error Variable</em>' class.
@@ -2072,6 +2135,15 @@
 	int BINDING__TYPE = VARIABLE__TYPE;
 
 	/**
+	 * The feature id for the '<em><b>Type Aql</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BINDING__TYPE_AQL = VARIABLE__TYPE_AQL;
+
+	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2127,13 +2199,22 @@
 	int ERROR_BINDING__TYPE = ERROR_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Type Aql</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ERROR_BINDING__TYPE_AQL = ERROR_FEATURE_COUNT + 1;
+
+	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_BINDING__NAME = ERROR_FEATURE_COUNT + 1;
+	int ERROR_BINDING__NAME = ERROR_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Init Expression</b></em>' containment reference.
@@ -2142,7 +2223,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_BINDING__INIT_EXPRESSION = ERROR_FEATURE_COUNT + 2;
+	int ERROR_BINDING__INIT_EXPRESSION = ERROR_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Missing Name</b></em>' attribute.
@@ -2151,7 +2232,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_BINDING__MISSING_NAME = ERROR_FEATURE_COUNT + 3;
+	int ERROR_BINDING__MISSING_NAME = ERROR_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Missing Colon</b></em>' attribute.
@@ -2160,7 +2241,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_BINDING__MISSING_COLON = ERROR_FEATURE_COUNT + 4;
+	int ERROR_BINDING__MISSING_COLON = ERROR_FEATURE_COUNT + 5;
 
 	/**
 	 * The feature id for the '<em><b>Missing Type</b></em>' attribute.
@@ -2169,7 +2250,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_BINDING__MISSING_TYPE = ERROR_FEATURE_COUNT + 5;
+	int ERROR_BINDING__MISSING_TYPE = ERROR_FEATURE_COUNT + 6;
 
 	/**
 	 * The feature id for the '<em><b>Missing Affectation Symbole</b></em>' attribute.
@@ -2178,7 +2259,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_BINDING__MISSING_AFFECTATION_SYMBOLE = ERROR_FEATURE_COUNT + 6;
+	int ERROR_BINDING__MISSING_AFFECTATION_SYMBOLE = ERROR_FEATURE_COUNT + 7;
 
 	/**
 	 * The feature id for the '<em><b>Missing Affectation Symbole Position</b></em>' attribute.
@@ -2187,7 +2268,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_BINDING__MISSING_AFFECTATION_SYMBOLE_POSITION = ERROR_FEATURE_COUNT + 7;
+	int ERROR_BINDING__MISSING_AFFECTATION_SYMBOLE_POSITION = ERROR_FEATURE_COUNT + 8;
 
 	/**
 	 * The number of structural features of the '<em>Error Binding</em>' class.
@@ -2196,7 +2277,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_BINDING_FEATURE_COUNT = ERROR_FEATURE_COUNT + 8;
+	int ERROR_BINDING_FEATURE_COUNT = ERROR_FEATURE_COUNT + 9;
 
 	/**
 	 * The number of operations of the '<em>Error Binding</em>' class.
@@ -3716,6 +3797,17 @@
 	EAttribute getTypedElement_Type();
 
 	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.acceleo.TypedElement#getTypeAql <em>Type Aql</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Type Aql</em>'.
+	 * @see org.eclipse.acceleo.TypedElement#getTypeAql()
+	 * @see #getTypedElement()
+	 * @generated
+	 */
+	EReference getTypedElement_TypeAql();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.acceleo.Template <em>Template</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -4085,6 +4177,17 @@
 	EAttribute getExpression_Ast();
 
 	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.acceleo.Expression#getAql <em>Aql</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Aql</em>'.
+	 * @see org.eclipse.acceleo.Expression#getAql()
+	 * @see #getExpression()
+	 * @generated
+	 */
+	EReference getExpression_Aql();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.acceleo.ErrorExpression <em>Error Expression</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -5371,6 +5474,14 @@
 		EAttribute TYPED_ELEMENT__TYPE = eINSTANCE.getTypedElement_Type();
 
 		/**
+		 * The meta object literal for the '<em><b>Type Aql</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TYPED_ELEMENT__TYPE_AQL = eINSTANCE.getTypedElement_TypeAql();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.acceleo.impl.TemplateImpl <em>Template</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -5658,6 +5769,14 @@
 		EAttribute EXPRESSION__AST = eINSTANCE.getExpression_Ast();
 
 		/**
+		 * The meta object literal for the '<em><b>Aql</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference EXPRESSION__AQL = eINSTANCE.getExpression_Aql();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.acceleo.impl.ErrorExpressionImpl <em>Error Expression</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Binding.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Binding.java
index 9eecc1d..81fc935 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Binding.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Binding.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Block.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Block.java
index e4d1aee..ae2404b 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Block.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Block.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Comment.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Comment.java
index a301691..86d4913 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Comment.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Comment.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/CommentBody.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/CommentBody.java
index 927eafa..b210d8d 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/CommentBody.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/CommentBody.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Documentation.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Documentation.java
index dc29a38..ddabe9e 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Documentation.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Documentation.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/DocumentedElement.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/DocumentedElement.java
index a144665..19a51cc 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/DocumentedElement.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/DocumentedElement.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Error.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Error.java
index 1525880..a731097 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Error.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Error.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorBinding.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorBinding.java
index 0a5e450..cd42b2f 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorBinding.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorBinding.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorComment.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorComment.java
index 08bca34..e439295 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorComment.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorComment.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorExpression.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorExpression.java
index e9b4bdb..d5a06ef 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorExpression.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorExpression.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorExpressionStatement.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorExpressionStatement.java
index 9e65c78..caec7d1 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorExpressionStatement.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorExpressionStatement.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorFileStatement.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorFileStatement.java
index f1ed9d7..857afa4 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorFileStatement.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorFileStatement.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorForStatement.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorForStatement.java
index a91f5bf..9bd10b8 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorForStatement.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorForStatement.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorIfStatement.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorIfStatement.java
index 3df71d4..98b0bcf 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorIfStatement.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorIfStatement.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorImport.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorImport.java
index 90ad6bf..0c24898 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorImport.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorImport.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorLetStatement.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorLetStatement.java
index 4616db7..b7b4eed 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorLetStatement.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorLetStatement.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorMetamodel.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorMetamodel.java
index 2d1c068..e3e4286 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorMetamodel.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorMetamodel.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorModule.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorModule.java
index 01f9146..8be4e0d 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorModule.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorModule.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorModuleDocumentation.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorModuleDocumentation.java
index b127ae8..6c644ec 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorModuleDocumentation.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorModuleDocumentation.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorModuleElementDocumentation.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorModuleElementDocumentation.java
index 7c1db69..79f8430 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorModuleElementDocumentation.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorModuleElementDocumentation.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorModuleReference.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorModuleReference.java
index 2dfc903..85247a5 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorModuleReference.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorModuleReference.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorProtectedArea.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorProtectedArea.java
index 71d3575..722c595 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorProtectedArea.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorProtectedArea.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorQuery.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorQuery.java
index b61261b..9f03ef9 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorQuery.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorQuery.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorTemplate.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorTemplate.java
index 240600d..4fd4560 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorTemplate.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorTemplate.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorVariable.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorVariable.java
index 01ee3e7..2b9e903 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorVariable.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ErrorVariable.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Expression.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Expression.java
index cd354c8..51ebbc5 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Expression.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Expression.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -22,6 +22,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.acceleo.Expression#getAst <em>Ast</em>}</li>
+ *   <li>{@link org.eclipse.acceleo.Expression#getAql <em>Aql</em>}</li>
  * </ul>
  *
  * @see org.eclipse.acceleo.AcceleoPackage#getExpression()
@@ -55,4 +56,26 @@
 	 */
 	void setAst(AstResult value);
 
+	/**
+	 * Returns the value of the '<em><b>Aql</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Aql</em>' containment reference.
+	 * @see #setAql(org.eclipse.acceleo.query.ast.Expression)
+	 * @see org.eclipse.acceleo.AcceleoPackage#getExpression_Aql()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	org.eclipse.acceleo.query.ast.Expression getAql();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.acceleo.Expression#getAql <em>Aql</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Aql</em>' containment reference.
+	 * @see #getAql()
+	 * @generated
+	 */
+	void setAql(org.eclipse.acceleo.query.ast.Expression value);
+
 } // Expression
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ExpressionStatement.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ExpressionStatement.java
index 08bd837..b0ceebc 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ExpressionStatement.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ExpressionStatement.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/FileStatement.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/FileStatement.java
index c811eba..4838607 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/FileStatement.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/FileStatement.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ForStatement.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ForStatement.java
index f04fabc..de149c2 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ForStatement.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ForStatement.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/IfStatement.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/IfStatement.java
index dc0f510..1cffe15 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/IfStatement.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/IfStatement.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Import.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Import.java
index eb920e0..455b47c 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Import.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Import.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/LetStatement.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/LetStatement.java
index 6a08d7d..ca6be1d 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/LetStatement.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/LetStatement.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Metamodel.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Metamodel.java
index 1d7afbf..0545a27 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Metamodel.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Metamodel.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Module.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Module.java
index a2dfc70..87de7d0 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Module.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Module.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ModuleDocumentation.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ModuleDocumentation.java
index 330a776..1a97f92 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ModuleDocumentation.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ModuleDocumentation.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ModuleElement.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ModuleElement.java
index fd47a4b..5cde0b4 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ModuleElement.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ModuleElement.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ModuleElementDocumentation.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ModuleElementDocumentation.java
index 51eb60b..ffdff87 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ModuleElementDocumentation.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ModuleElementDocumentation.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ModuleReference.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ModuleReference.java
index 90dc247..0ea8a72 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ModuleReference.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ModuleReference.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/NamedElement.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/NamedElement.java
index f10cc29..3ea10fe 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/NamedElement.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/NamedElement.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/OpenModeKind.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/OpenModeKind.java
index d937f94..a91f7e6 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/OpenModeKind.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/OpenModeKind.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ParameterDocumentation.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ParameterDocumentation.java
index 4a9b227..cb8ffe6 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ParameterDocumentation.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ParameterDocumentation.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ProtectedArea.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ProtectedArea.java
index c614243..b48638f 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ProtectedArea.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/ProtectedArea.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Query.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Query.java
index f1ab458..1a226d6 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Query.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Query.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Statement.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Statement.java
index 9db42dd..601a4b6 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Statement.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Statement.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Template.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Template.java
index f015e80..cd126f3 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Template.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Template.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/TextStatement.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/TextStatement.java
index 41c3739..ef23e95 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/TextStatement.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/TextStatement.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/TypedElement.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/TypedElement.java
index 7c56232..10769b3 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/TypedElement.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/TypedElement.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -11,6 +11,7 @@
  */
 package org.eclipse.acceleo;
 
+import org.eclipse.acceleo.query.ast.Expression;
 import org.eclipse.acceleo.query.parser.AstResult;
 import org.eclipse.emf.ecore.EObject;
 
@@ -24,6 +25,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.acceleo.TypedElement#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.acceleo.TypedElement#getTypeAql <em>Type Aql</em>}</li>
  * </ul>
  *
  * @see org.eclipse.acceleo.AcceleoPackage#getTypedElement()
@@ -57,4 +59,26 @@
 	 */
 	void setType(AstResult value);
 
+	/**
+	 * Returns the value of the '<em><b>Type Aql</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Aql</em>' containment reference.
+	 * @see #setTypeAql(Expression)
+	 * @see org.eclipse.acceleo.AcceleoPackage#getTypedElement_TypeAql()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	Expression getTypeAql();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.acceleo.TypedElement#getTypeAql <em>Type Aql</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Aql</em>' containment reference.
+	 * @see #getTypeAql()
+	 * @generated
+	 */
+	void setTypeAql(Expression value);
+
 } // TypedElement
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Variable.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Variable.java
index a88d095..ea77d19 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Variable.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/Variable.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/VisibilityKind.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/VisibilityKind.java
index a4b48c4..2a6781d 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/VisibilityKind.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/VisibilityKind.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/AcceleoFactoryImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/AcceleoFactoryImpl.java
index bca9baa..55a94f0 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/AcceleoFactoryImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/AcceleoFactoryImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/AcceleoPackageImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/AcceleoPackageImpl.java
index a0ef626..a956159 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/AcceleoPackageImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/AcceleoPackageImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -61,6 +61,7 @@
 import org.eclipse.acceleo.TypedElement;
 import org.eclipse.acceleo.Variable;
 import org.eclipse.acceleo.VisibilityKind;
+import org.eclipse.acceleo.query.ast.AstPackage;
 import org.eclipse.acceleo.query.parser.AstResult;
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EClass;
@@ -71,386 +72,383 @@
 import org.eclipse.emf.ecore.impl.EPackageImpl;
 
 /**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
+ * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!-- end-user-doc -->
+ * 
  * @generated
  */
 public class AcceleoPackageImpl extends EPackageImpl implements AcceleoPackage {
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass moduleEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass errorModuleEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass metamodelEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass errorMetamodelEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass importEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass errorImportEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass moduleReferenceEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass errorModuleReferenceEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass moduleElementEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass commentEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass errorCommentEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass commentBodyEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass documentationEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass moduleDocumentationEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass errorModuleDocumentationEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass moduleElementDocumentationEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass errorModuleElementDocumentationEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass parameterDocumentationEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass documentedElementEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass namedElementEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass astNodeEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass errorEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass blockEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass typedElementEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass templateEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass errorTemplateEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass queryEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass errorQueryEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass expressionEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass errorExpressionEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass variableEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass errorVariableEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass bindingEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass errorBindingEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass statementEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass expressionStatementEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass errorExpressionStatementEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass protectedAreaEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass errorProtectedAreaEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass forStatementEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass errorForStatementEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass ifStatementEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass errorIfStatementEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass letStatementEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass errorLetStatementEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass fileStatementEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass errorFileStatementEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EClass textStatementEClass = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EEnum visibilityKindEEnum = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EEnum openModeKindEEnum = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EDataType astResultEDataType = null;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	private EDataType moduleQualifiedNameEDataType = 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 -->
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package package URI value.
+	 * <p>
+	 * Note: the correct way to create the package is via the static factory method {@link #init init()},
+	 * which also performs initialization of the package, or returns the registered package, if one already
+	 * exists. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @see org.eclipse.emf.ecore.EPackage.Registry
 	 * @see org.eclipse.acceleo.AcceleoPackage#eNS_URI
 	 * @see #init()
@@ -461,19 +459,20 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- 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 AcceleoPackage#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 -->
+	 * 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 AcceleoPackage#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()
@@ -506,8 +505,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -516,8 +515,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -526,8 +525,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -536,8 +535,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -546,8 +545,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -556,8 +555,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -566,8 +565,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -576,8 +575,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -586,8 +585,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -596,8 +595,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -606,8 +605,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -616,8 +615,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -626,8 +625,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -636,8 +635,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -646,8 +645,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -656,8 +655,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -666,8 +665,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -676,8 +675,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -686,8 +685,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -696,8 +695,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -706,8 +705,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -716,8 +715,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -726,8 +725,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -736,8 +735,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -746,8 +745,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -756,8 +755,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -766,8 +765,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -776,8 +775,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -786,8 +785,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -796,8 +795,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -806,8 +805,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -816,8 +815,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -826,8 +825,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -836,8 +835,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -846,8 +845,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -856,8 +855,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -866,8 +865,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -876,8 +875,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -886,8 +885,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -896,8 +895,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -906,8 +905,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -916,8 +915,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -926,8 +925,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -936,8 +935,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -946,8 +945,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -956,8 +955,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -966,8 +965,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -976,8 +975,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -986,8 +985,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -996,8 +995,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1006,8 +1005,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1016,8 +1015,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1026,8 +1025,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1036,8 +1035,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1046,8 +1045,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1056,8 +1055,18 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EReference getTypedElement_TypeAql() {
+		return (EReference)typedElementEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1066,8 +1075,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1076,8 +1085,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1086,8 +1095,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1096,8 +1105,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1106,8 +1115,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1116,8 +1125,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1126,8 +1135,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1136,8 +1145,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1146,8 +1155,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1156,8 +1165,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1166,8 +1175,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1176,8 +1185,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1186,8 +1195,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1196,8 +1205,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1206,8 +1215,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1216,8 +1225,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1226,8 +1235,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1236,8 +1245,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1246,8 +1255,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1256,8 +1265,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1266,8 +1275,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1276,8 +1285,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1286,8 +1295,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1296,8 +1305,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1306,8 +1315,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1316,8 +1325,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1326,8 +1335,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1336,8 +1345,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1346,8 +1355,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1356,8 +1365,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1366,8 +1375,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1376,8 +1385,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1386,8 +1395,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1396,8 +1405,18 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EReference getExpression_Aql() {
+		return (EReference)expressionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1406,8 +1425,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1416,8 +1435,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1426,8 +1445,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1436,8 +1455,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1446,8 +1465,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1456,8 +1475,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1466,8 +1485,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1476,8 +1495,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1486,8 +1505,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1496,8 +1515,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1506,8 +1525,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1516,8 +1535,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1526,8 +1545,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1536,8 +1555,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1546,8 +1565,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1556,8 +1575,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1566,8 +1585,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1576,8 +1595,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1586,8 +1605,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1596,8 +1615,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1606,8 +1625,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1616,8 +1635,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1626,8 +1645,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1636,8 +1655,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1646,8 +1665,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1656,8 +1675,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1666,8 +1685,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1676,8 +1695,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1686,8 +1705,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1696,8 +1715,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1706,8 +1725,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1716,8 +1735,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1726,8 +1745,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1736,8 +1755,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1746,8 +1765,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1756,8 +1775,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1766,8 +1785,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1776,8 +1795,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1786,8 +1805,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1796,8 +1815,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1806,8 +1825,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1816,8 +1835,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1826,8 +1845,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1836,8 +1855,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1846,8 +1865,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1856,8 +1875,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1866,8 +1885,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1876,8 +1895,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1886,8 +1905,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1896,8 +1915,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1906,8 +1925,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1916,8 +1935,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1926,8 +1945,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1936,8 +1955,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1946,8 +1965,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1956,8 +1975,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1966,8 +1985,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1976,8 +1995,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1986,8 +2005,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -1996,8 +2015,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -2006,8 +2025,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -2016,8 +2035,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -2026,8 +2045,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -2036,8 +2055,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -2046,8 +2065,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -2056,8 +2075,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -2066,8 +2085,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -2076,8 +2095,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -2086,8 +2105,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -2096,8 +2115,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -2106,8 +2125,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -2116,8 +2135,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -2126,17 +2145,16 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- 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 -->
+	 * 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() {
@@ -2225,6 +2243,7 @@
 
 		typedElementEClass = createEClass(TYPED_ELEMENT);
 		createEAttribute(typedElementEClass, TYPED_ELEMENT__TYPE);
+		createEReference(typedElementEClass, TYPED_ELEMENT__TYPE_AQL);
 
 		templateEClass = createEClass(TEMPLATE);
 		createEReference(templateEClass, TEMPLATE__PARAMETERS);
@@ -2264,6 +2283,7 @@
 
 		expressionEClass = createEClass(EXPRESSION);
 		createEAttribute(expressionEClass, EXPRESSION__AST);
+		createEReference(expressionEClass, EXPRESSION__AQL);
 
 		errorExpressionEClass = createEClass(ERROR_EXPRESSION);
 
@@ -2362,17 +2382,16 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- 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 -->
+	 * 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() {
@@ -2632,6 +2651,9 @@
 		initEAttribute(getTypedElement_Type(), this.getASTResult(), "type", null, 1, 1, TypedElement.class, //$NON-NLS-1$
 				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
 				IS_ORDERED);
+		initEReference(getTypedElement_TypeAql(), AstPackage.eINSTANCE.getExpression(), null, "typeAql", null, //$NON-NLS-1$
+				1, 1, TypedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+				!IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(templateEClass, Template.class, "Template", !IS_ABSTRACT, !IS_INTERFACE, //$NON-NLS-1$
 				IS_GENERATED_INSTANCE_CLASS);
@@ -2734,6 +2756,9 @@
 		initEAttribute(getExpression_Ast(), this.getASTResult(), "ast", null, 1, 1, Expression.class, //$NON-NLS-1$
 				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
 				IS_ORDERED);
+		initEReference(getExpression_Aql(), AstPackage.eINSTANCE.getExpression(), null, "aql", null, 1, 1, //$NON-NLS-1$
+				Expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+				!IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(errorExpressionEClass, ErrorExpression.class, "ErrorExpression", !IS_ABSTRACT, //$NON-NLS-1$
 				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -2960,4 +2985,4 @@
 		createResource(eNS_URI);
 	}
 
-} //AcceleoPackageImpl
+} // AcceleoPackageImpl
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/BindingImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/BindingImpl.java
index 915011b..fcdaae1 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/BindingImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/BindingImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/BlockImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/BlockImpl.java
index 3be3c3e..d589848 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/BlockImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/BlockImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/CommentBodyImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/CommentBodyImpl.java
index d1ffb9e..6123eba 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/CommentBodyImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/CommentBodyImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/CommentImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/CommentImpl.java
index dd0882d..c404c4b 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/CommentImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/CommentImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorBindingImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorBindingImpl.java
index d319176..a055af7 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorBindingImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorBindingImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -35,6 +35,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.acceleo.impl.ErrorBindingImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.acceleo.impl.ErrorBindingImpl#getTypeAql <em>Type Aql</em>}</li>
  *   <li>{@link org.eclipse.acceleo.impl.ErrorBindingImpl#getName <em>Name</em>}</li>
  *   <li>{@link org.eclipse.acceleo.impl.ErrorBindingImpl#getInitExpression <em>Init Expression</em>}</li>
  *   <li>{@link org.eclipse.acceleo.impl.ErrorBindingImpl#getMissingName <em>Missing Name</em>}</li>
@@ -68,6 +69,16 @@
 	protected AstResult type = TYPE_EDEFAULT;
 
 	/**
+	 * The cached value of the '{@link #getTypeAql() <em>Type Aql</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeAql()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.acceleo.query.ast.Expression typeAql;
+
+	/**
 	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -246,6 +257,59 @@
 	 * @generated
 	 */
 	@Override
+	public org.eclipse.acceleo.query.ast.Expression getTypeAql() {
+		return typeAql;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetTypeAql(org.eclipse.acceleo.query.ast.Expression newTypeAql,
+			NotificationChain msgs) {
+		org.eclipse.acceleo.query.ast.Expression oldTypeAql = typeAql;
+		typeAql = newTypeAql;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+					AcceleoPackage.ERROR_BINDING__TYPE_AQL, oldTypeAql, newTypeAql);
+			if (msgs == null)
+				msgs = notification;
+			else
+				msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setTypeAql(org.eclipse.acceleo.query.ast.Expression newTypeAql) {
+		if (newTypeAql != typeAql) {
+			NotificationChain msgs = null;
+			if (typeAql != null)
+				msgs = ((InternalEObject)typeAql).eInverseRemove(this, EOPPOSITE_FEATURE_BASE
+						- AcceleoPackage.ERROR_BINDING__TYPE_AQL, null, msgs);
+			if (newTypeAql != null)
+				msgs = ((InternalEObject)newTypeAql).eInverseAdd(this, EOPPOSITE_FEATURE_BASE
+						- AcceleoPackage.ERROR_BINDING__TYPE_AQL, null, msgs);
+			msgs = basicSetTypeAql(newTypeAql, msgs);
+			if (msgs != null)
+				msgs.dispatch();
+		} else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AcceleoPackage.ERROR_BINDING__TYPE_AQL,
+					newTypeAql, newTypeAql));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public String getName() {
 		return name;
 	}
@@ -446,6 +510,8 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
+			case AcceleoPackage.ERROR_BINDING__TYPE_AQL:
+				return basicSetTypeAql(null, msgs);
 			case AcceleoPackage.ERROR_BINDING__INIT_EXPRESSION:
 				return basicSetInitExpression(null, msgs);
 		}
@@ -462,6 +528,8 @@
 		switch (featureID) {
 			case AcceleoPackage.ERROR_BINDING__TYPE:
 				return getType();
+			case AcceleoPackage.ERROR_BINDING__TYPE_AQL:
+				return getTypeAql();
 			case AcceleoPackage.ERROR_BINDING__NAME:
 				return getName();
 			case AcceleoPackage.ERROR_BINDING__INIT_EXPRESSION:
@@ -491,6 +559,9 @@
 			case AcceleoPackage.ERROR_BINDING__TYPE:
 				setType((AstResult)newValue);
 				return;
+			case AcceleoPackage.ERROR_BINDING__TYPE_AQL:
+				setTypeAql((org.eclipse.acceleo.query.ast.Expression)newValue);
+				return;
 			case AcceleoPackage.ERROR_BINDING__NAME:
 				setName((String)newValue);
 				return;
@@ -527,6 +598,9 @@
 			case AcceleoPackage.ERROR_BINDING__TYPE:
 				setType(TYPE_EDEFAULT);
 				return;
+			case AcceleoPackage.ERROR_BINDING__TYPE_AQL:
+				setTypeAql((org.eclipse.acceleo.query.ast.Expression)null);
+				return;
 			case AcceleoPackage.ERROR_BINDING__NAME:
 				setName(NAME_EDEFAULT);
 				return;
@@ -562,6 +636,8 @@
 		switch (featureID) {
 			case AcceleoPackage.ERROR_BINDING__TYPE:
 				return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+			case AcceleoPackage.ERROR_BINDING__TYPE_AQL:
+				return typeAql != null;
 			case AcceleoPackage.ERROR_BINDING__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
 			case AcceleoPackage.ERROR_BINDING__INIT_EXPRESSION:
@@ -592,6 +668,8 @@
 			switch (derivedFeatureID) {
 				case AcceleoPackage.ERROR_BINDING__TYPE:
 					return AcceleoPackage.TYPED_ELEMENT__TYPE;
+				case AcceleoPackage.ERROR_BINDING__TYPE_AQL:
+					return AcceleoPackage.TYPED_ELEMENT__TYPE_AQL;
 				default:
 					return -1;
 			}
@@ -632,6 +710,8 @@
 			switch (baseFeatureID) {
 				case AcceleoPackage.TYPED_ELEMENT__TYPE:
 					return AcceleoPackage.ERROR_BINDING__TYPE;
+				case AcceleoPackage.TYPED_ELEMENT__TYPE_AQL:
+					return AcceleoPackage.ERROR_BINDING__TYPE_AQL;
 				default:
 					return -1;
 			}
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorCommentImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorCommentImpl.java
index d6d0fff..37d416c 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorCommentImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorCommentImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorExpressionImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorExpressionImpl.java
index 3e83df2..1c8b716 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorExpressionImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorExpressionImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -17,8 +17,10 @@
 import org.eclipse.acceleo.query.parser.AstResult;
 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;
 
@@ -31,6 +33,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.acceleo.impl.ErrorExpressionImpl#getAst <em>Ast</em>}</li>
+ *   <li>{@link org.eclipse.acceleo.impl.ErrorExpressionImpl#getAql <em>Aql</em>}</li>
  * </ul>
  *
  * @generated
@@ -57,6 +60,16 @@
 	protected AstResult ast = AST_EDEFAULT;
 
 	/**
+	 * The cached value of the '{@link #getAql() <em>Aql</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAql()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.acceleo.query.ast.Expression aql;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -105,10 +118,79 @@
 	 * @generated
 	 */
 	@Override
+	public org.eclipse.acceleo.query.ast.Expression getAql() {
+		return aql;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetAql(org.eclipse.acceleo.query.ast.Expression newAql,
+			NotificationChain msgs) {
+		org.eclipse.acceleo.query.ast.Expression oldAql = aql;
+		aql = newAql;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+					AcceleoPackage.ERROR_EXPRESSION__AQL, oldAql, newAql);
+			if (msgs == null)
+				msgs = notification;
+			else
+				msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setAql(org.eclipse.acceleo.query.ast.Expression newAql) {
+		if (newAql != aql) {
+			NotificationChain msgs = null;
+			if (aql != null)
+				msgs = ((InternalEObject)aql).eInverseRemove(this, EOPPOSITE_FEATURE_BASE
+						- AcceleoPackage.ERROR_EXPRESSION__AQL, null, msgs);
+			if (newAql != null)
+				msgs = ((InternalEObject)newAql).eInverseAdd(this, EOPPOSITE_FEATURE_BASE
+						- AcceleoPackage.ERROR_EXPRESSION__AQL, null, msgs);
+			msgs = basicSetAql(newAql, msgs);
+			if (msgs != null)
+				msgs.dispatch();
+		} else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AcceleoPackage.ERROR_EXPRESSION__AQL,
+					newAql, newAql));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AcceleoPackage.ERROR_EXPRESSION__AQL:
+				return basicSetAql(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 AcceleoPackage.ERROR_EXPRESSION__AST:
 				return getAst();
+			case AcceleoPackage.ERROR_EXPRESSION__AQL:
+				return getAql();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -124,6 +206,9 @@
 			case AcceleoPackage.ERROR_EXPRESSION__AST:
 				setAst((AstResult)newValue);
 				return;
+			case AcceleoPackage.ERROR_EXPRESSION__AQL:
+				setAql((org.eclipse.acceleo.query.ast.Expression)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -139,6 +224,9 @@
 			case AcceleoPackage.ERROR_EXPRESSION__AST:
 				setAst(AST_EDEFAULT);
 				return;
+			case AcceleoPackage.ERROR_EXPRESSION__AQL:
+				setAql((org.eclipse.acceleo.query.ast.Expression)null);
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -153,6 +241,8 @@
 		switch (featureID) {
 			case AcceleoPackage.ERROR_EXPRESSION__AST:
 				return AST_EDEFAULT == null ? ast != null : !AST_EDEFAULT.equals(ast);
+			case AcceleoPackage.ERROR_EXPRESSION__AQL:
+				return aql != null;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -168,6 +258,8 @@
 			switch (derivedFeatureID) {
 				case AcceleoPackage.ERROR_EXPRESSION__AST:
 					return AcceleoPackage.EXPRESSION__AST;
+				case AcceleoPackage.ERROR_EXPRESSION__AQL:
+					return AcceleoPackage.EXPRESSION__AQL;
 				default:
 					return -1;
 			}
@@ -186,6 +278,8 @@
 			switch (baseFeatureID) {
 				case AcceleoPackage.EXPRESSION__AST:
 					return AcceleoPackage.ERROR_EXPRESSION__AST;
+				case AcceleoPackage.EXPRESSION__AQL:
+					return AcceleoPackage.ERROR_EXPRESSION__AQL;
 				default:
 					return -1;
 			}
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorExpressionStatementImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorExpressionStatementImpl.java
index a22f7f1..234aaea 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorExpressionStatementImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorExpressionStatementImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorFileStatementImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorFileStatementImpl.java
index d1c7f20..d9a20c5 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorFileStatementImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorFileStatementImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorForStatementImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorForStatementImpl.java
index b23bc47..6269f6f 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorForStatementImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorForStatementImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorIfStatementImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorIfStatementImpl.java
index f9ffdd9..9b8553d 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorIfStatementImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorIfStatementImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorImportImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorImportImpl.java
index 5226fd6..4e30037 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorImportImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorImportImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorLetStatementImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorLetStatementImpl.java
index 4e705dc..2e5a126 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorLetStatementImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorLetStatementImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorMetamodelImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorMetamodelImpl.java
index 608030a..e057a63 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorMetamodelImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorMetamodelImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorModuleDocumentationImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorModuleDocumentationImpl.java
index 02b1928..3d237d8 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorModuleDocumentationImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorModuleDocumentationImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorModuleElementDocumentationImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorModuleElementDocumentationImpl.java
index aa5ba8a..a29d53b 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorModuleElementDocumentationImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorModuleElementDocumentationImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorModuleImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorModuleImpl.java
index 11f5eca..fcab51d 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorModuleImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorModuleImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorModuleReferenceImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorModuleReferenceImpl.java
index e266a0c..0e49329 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorModuleReferenceImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorModuleReferenceImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorProtectedAreaImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorProtectedAreaImpl.java
index 98386b2..6545d18 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorProtectedAreaImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorProtectedAreaImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorQueryImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorQueryImpl.java
index 2d1e89d..0bc275e 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorQueryImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorQueryImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -46,6 +46,7 @@
  *   <li>{@link org.eclipse.acceleo.impl.ErrorQueryImpl#isDeprecated <em>Deprecated</em>}</li>
  *   <li>{@link org.eclipse.acceleo.impl.ErrorQueryImpl#getName <em>Name</em>}</li>
  *   <li>{@link org.eclipse.acceleo.impl.ErrorQueryImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.acceleo.impl.ErrorQueryImpl#getTypeAql <em>Type Aql</em>}</li>
  *   <li>{@link org.eclipse.acceleo.impl.ErrorQueryImpl#getParameters <em>Parameters</em>}</li>
  *   <li>{@link org.eclipse.acceleo.impl.ErrorQueryImpl#getVisibility <em>Visibility</em>}</li>
  *   <li>{@link org.eclipse.acceleo.impl.ErrorQueryImpl#getBody <em>Body</em>}</li>
@@ -134,6 +135,16 @@
 	protected AstResult type = TYPE_EDEFAULT;
 
 	/**
+	 * The cached value of the '{@link #getTypeAql() <em>Type Aql</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeAql()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.acceleo.query.ast.Expression typeAql;
+
+	/**
 	 * The cached value of the '{@link #getParameters() <em>Parameters</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -502,6 +513,59 @@
 	 * @generated
 	 */
 	@Override
+	public org.eclipse.acceleo.query.ast.Expression getTypeAql() {
+		return typeAql;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetTypeAql(org.eclipse.acceleo.query.ast.Expression newTypeAql,
+			NotificationChain msgs) {
+		org.eclipse.acceleo.query.ast.Expression oldTypeAql = typeAql;
+		typeAql = newTypeAql;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+					AcceleoPackage.ERROR_QUERY__TYPE_AQL, oldTypeAql, newTypeAql);
+			if (msgs == null)
+				msgs = notification;
+			else
+				msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setTypeAql(org.eclipse.acceleo.query.ast.Expression newTypeAql) {
+		if (newTypeAql != typeAql) {
+			NotificationChain msgs = null;
+			if (typeAql != null)
+				msgs = ((InternalEObject)typeAql).eInverseRemove(this, EOPPOSITE_FEATURE_BASE
+						- AcceleoPackage.ERROR_QUERY__TYPE_AQL, null, msgs);
+			if (newTypeAql != null)
+				msgs = ((InternalEObject)newTypeAql).eInverseAdd(this, EOPPOSITE_FEATURE_BASE
+						- AcceleoPackage.ERROR_QUERY__TYPE_AQL, null, msgs);
+			msgs = basicSetTypeAql(newTypeAql, msgs);
+			if (msgs != null)
+				msgs.dispatch();
+		} else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AcceleoPackage.ERROR_QUERY__TYPE_AQL,
+					newTypeAql, newTypeAql));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EList<Variable> getParameters() {
 		if (parameters == null) {
 			parameters = new EObjectContainmentEList<Variable>(Variable.class, this,
@@ -831,6 +895,8 @@
 		switch (featureID) {
 			case AcceleoPackage.ERROR_QUERY__DOCUMENTATION:
 				return basicSetDocumentation(null, msgs);
+			case AcceleoPackage.ERROR_QUERY__TYPE_AQL:
+				return basicSetTypeAql(null, msgs);
 			case AcceleoPackage.ERROR_QUERY__PARAMETERS:
 				return ((InternalEList<?>)getParameters()).basicRemove(otherEnd, msgs);
 			case AcceleoPackage.ERROR_QUERY__BODY:
@@ -855,6 +921,8 @@
 				return getName();
 			case AcceleoPackage.ERROR_QUERY__TYPE:
 				return getType();
+			case AcceleoPackage.ERROR_QUERY__TYPE_AQL:
+				return getTypeAql();
 			case AcceleoPackage.ERROR_QUERY__PARAMETERS:
 				return getParameters();
 			case AcceleoPackage.ERROR_QUERY__VISIBILITY:
@@ -904,6 +972,9 @@
 			case AcceleoPackage.ERROR_QUERY__TYPE:
 				setType((AstResult)newValue);
 				return;
+			case AcceleoPackage.ERROR_QUERY__TYPE_AQL:
+				setTypeAql((org.eclipse.acceleo.query.ast.Expression)newValue);
+				return;
 			case AcceleoPackage.ERROR_QUERY__PARAMETERS:
 				getParameters().clear();
 				getParameters().addAll((Collection<? extends Variable>)newValue);
@@ -965,6 +1036,9 @@
 			case AcceleoPackage.ERROR_QUERY__TYPE:
 				setType(TYPE_EDEFAULT);
 				return;
+			case AcceleoPackage.ERROR_QUERY__TYPE_AQL:
+				setTypeAql((org.eclipse.acceleo.query.ast.Expression)null);
+				return;
 			case AcceleoPackage.ERROR_QUERY__PARAMETERS:
 				getParameters().clear();
 				return;
@@ -1021,6 +1095,8 @@
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
 			case AcceleoPackage.ERROR_QUERY__TYPE:
 				return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+			case AcceleoPackage.ERROR_QUERY__TYPE_AQL:
+				return typeAql != null;
 			case AcceleoPackage.ERROR_QUERY__PARAMETERS:
 				return parameters != null && !parameters.isEmpty();
 			case AcceleoPackage.ERROR_QUERY__VISIBILITY:
@@ -1084,6 +1160,8 @@
 			switch (derivedFeatureID) {
 				case AcceleoPackage.ERROR_QUERY__TYPE:
 					return AcceleoPackage.TYPED_ELEMENT__TYPE;
+				case AcceleoPackage.ERROR_QUERY__TYPE_AQL:
+					return AcceleoPackage.TYPED_ELEMENT__TYPE_AQL;
 				default:
 					return -1;
 			}
@@ -1138,6 +1216,8 @@
 			switch (baseFeatureID) {
 				case AcceleoPackage.TYPED_ELEMENT__TYPE:
 					return AcceleoPackage.ERROR_QUERY__TYPE;
+				case AcceleoPackage.TYPED_ELEMENT__TYPE_AQL:
+					return AcceleoPackage.ERROR_QUERY__TYPE_AQL;
 				default:
 					return -1;
 			}
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorTemplateImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorTemplateImpl.java
index efaf825..bbcb820 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorTemplateImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorTemplateImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorVariableImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorVariableImpl.java
index 4e26400..35e3f9b 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorVariableImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ErrorVariableImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -16,9 +16,12 @@
 import org.eclipse.acceleo.NamedElement;
 import org.eclipse.acceleo.TypedElement;
 import org.eclipse.acceleo.Variable;
+import org.eclipse.acceleo.query.ast.Expression;
 import org.eclipse.acceleo.query.parser.AstResult;
 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;
 
@@ -31,6 +34,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.acceleo.impl.ErrorVariableImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.acceleo.impl.ErrorVariableImpl#getTypeAql <em>Type Aql</em>}</li>
  *   <li>{@link org.eclipse.acceleo.impl.ErrorVariableImpl#getName <em>Name</em>}</li>
  *   <li>{@link org.eclipse.acceleo.impl.ErrorVariableImpl#getMissingName <em>Missing Name</em>}</li>
  *   <li>{@link org.eclipse.acceleo.impl.ErrorVariableImpl#getMissingColon <em>Missing Colon</em>}</li>
@@ -61,6 +65,16 @@
 	protected AstResult type = TYPE_EDEFAULT;
 
 	/**
+	 * The cached value of the '{@link #getTypeAql() <em>Type Aql</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeAql()
+	 * @generated
+	 * @ordered
+	 */
+	protected Expression typeAql;
+
+	/**
 	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -189,6 +203,58 @@
 	 * @generated
 	 */
 	@Override
+	public Expression getTypeAql() {
+		return typeAql;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetTypeAql(Expression newTypeAql, NotificationChain msgs) {
+		Expression oldTypeAql = typeAql;
+		typeAql = newTypeAql;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+					AcceleoPackage.ERROR_VARIABLE__TYPE_AQL, oldTypeAql, newTypeAql);
+			if (msgs == null)
+				msgs = notification;
+			else
+				msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setTypeAql(Expression newTypeAql) {
+		if (newTypeAql != typeAql) {
+			NotificationChain msgs = null;
+			if (typeAql != null)
+				msgs = ((InternalEObject)typeAql).eInverseRemove(this, EOPPOSITE_FEATURE_BASE
+						- AcceleoPackage.ERROR_VARIABLE__TYPE_AQL, null, msgs);
+			if (newTypeAql != null)
+				msgs = ((InternalEObject)newTypeAql).eInverseAdd(this, EOPPOSITE_FEATURE_BASE
+						- AcceleoPackage.ERROR_VARIABLE__TYPE_AQL, null, msgs);
+			msgs = basicSetTypeAql(newTypeAql, msgs);
+			if (msgs != null)
+				msgs.dispatch();
+		} else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AcceleoPackage.ERROR_VARIABLE__TYPE_AQL,
+					newTypeAql, newTypeAql));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public String getName() {
 		return name;
 	}
@@ -285,10 +351,26 @@
 	 * @generated
 	 */
 	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AcceleoPackage.ERROR_VARIABLE__TYPE_AQL:
+				return basicSetTypeAql(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 AcceleoPackage.ERROR_VARIABLE__TYPE:
 				return getType();
+			case AcceleoPackage.ERROR_VARIABLE__TYPE_AQL:
+				return getTypeAql();
 			case AcceleoPackage.ERROR_VARIABLE__NAME:
 				return getName();
 			case AcceleoPackage.ERROR_VARIABLE__MISSING_NAME:
@@ -312,6 +394,9 @@
 			case AcceleoPackage.ERROR_VARIABLE__TYPE:
 				setType((AstResult)newValue);
 				return;
+			case AcceleoPackage.ERROR_VARIABLE__TYPE_AQL:
+				setTypeAql((Expression)newValue);
+				return;
 			case AcceleoPackage.ERROR_VARIABLE__NAME:
 				setName((String)newValue);
 				return;
@@ -339,6 +424,9 @@
 			case AcceleoPackage.ERROR_VARIABLE__TYPE:
 				setType(TYPE_EDEFAULT);
 				return;
+			case AcceleoPackage.ERROR_VARIABLE__TYPE_AQL:
+				setTypeAql((Expression)null);
+				return;
 			case AcceleoPackage.ERROR_VARIABLE__NAME:
 				setName(NAME_EDEFAULT);
 				return;
@@ -365,6 +453,8 @@
 		switch (featureID) {
 			case AcceleoPackage.ERROR_VARIABLE__TYPE:
 				return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+			case AcceleoPackage.ERROR_VARIABLE__TYPE_AQL:
+				return typeAql != null;
 			case AcceleoPackage.ERROR_VARIABLE__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
 			case AcceleoPackage.ERROR_VARIABLE__MISSING_NAME:
@@ -388,6 +478,8 @@
 			switch (derivedFeatureID) {
 				case AcceleoPackage.ERROR_VARIABLE__TYPE:
 					return AcceleoPackage.TYPED_ELEMENT__TYPE;
+				case AcceleoPackage.ERROR_VARIABLE__TYPE_AQL:
+					return AcceleoPackage.TYPED_ELEMENT__TYPE_AQL;
 				default:
 					return -1;
 			}
@@ -420,6 +512,8 @@
 			switch (baseFeatureID) {
 				case AcceleoPackage.TYPED_ELEMENT__TYPE:
 					return AcceleoPackage.ERROR_VARIABLE__TYPE;
+				case AcceleoPackage.TYPED_ELEMENT__TYPE_AQL:
+					return AcceleoPackage.ERROR_VARIABLE__TYPE_AQL;
 				default:
 					return -1;
 			}
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ExpressionImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ExpressionImpl.java
index 7a8e221..1bedb6c 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ExpressionImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ExpressionImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -16,8 +16,10 @@
 import org.eclipse.acceleo.query.parser.AstResult;
 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;
 
@@ -30,6 +32,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.acceleo.impl.ExpressionImpl#getAst <em>Ast</em>}</li>
+ *   <li>{@link org.eclipse.acceleo.impl.ExpressionImpl#getAql <em>Aql</em>}</li>
  * </ul>
  *
  * @generated
@@ -56,6 +59,16 @@
 	protected AstResult ast = AST_EDEFAULT;
 
 	/**
+	 * The cached value of the '{@link #getAql() <em>Aql</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAql()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.acceleo.query.ast.Expression aql;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -104,10 +117,79 @@
 	 * @generated
 	 */
 	@Override
+	public org.eclipse.acceleo.query.ast.Expression getAql() {
+		return aql;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetAql(org.eclipse.acceleo.query.ast.Expression newAql,
+			NotificationChain msgs) {
+		org.eclipse.acceleo.query.ast.Expression oldAql = aql;
+		aql = newAql;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+					AcceleoPackage.EXPRESSION__AQL, oldAql, newAql);
+			if (msgs == null)
+				msgs = notification;
+			else
+				msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setAql(org.eclipse.acceleo.query.ast.Expression newAql) {
+		if (newAql != aql) {
+			NotificationChain msgs = null;
+			if (aql != null)
+				msgs = ((InternalEObject)aql).eInverseRemove(this, EOPPOSITE_FEATURE_BASE
+						- AcceleoPackage.EXPRESSION__AQL, null, msgs);
+			if (newAql != null)
+				msgs = ((InternalEObject)newAql).eInverseAdd(this, EOPPOSITE_FEATURE_BASE
+						- AcceleoPackage.EXPRESSION__AQL, null, msgs);
+			msgs = basicSetAql(newAql, msgs);
+			if (msgs != null)
+				msgs.dispatch();
+		} else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AcceleoPackage.EXPRESSION__AQL, newAql,
+					newAql));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AcceleoPackage.EXPRESSION__AQL:
+				return basicSetAql(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 AcceleoPackage.EXPRESSION__AST:
 				return getAst();
+			case AcceleoPackage.EXPRESSION__AQL:
+				return getAql();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -123,6 +205,9 @@
 			case AcceleoPackage.EXPRESSION__AST:
 				setAst((AstResult)newValue);
 				return;
+			case AcceleoPackage.EXPRESSION__AQL:
+				setAql((org.eclipse.acceleo.query.ast.Expression)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -138,6 +223,9 @@
 			case AcceleoPackage.EXPRESSION__AST:
 				setAst(AST_EDEFAULT);
 				return;
+			case AcceleoPackage.EXPRESSION__AQL:
+				setAql((org.eclipse.acceleo.query.ast.Expression)null);
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -152,6 +240,8 @@
 		switch (featureID) {
 			case AcceleoPackage.EXPRESSION__AST:
 				return AST_EDEFAULT == null ? ast != null : !AST_EDEFAULT.equals(ast);
+			case AcceleoPackage.EXPRESSION__AQL:
+				return aql != null;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ExpressionStatementImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ExpressionStatementImpl.java
index 438618e..915a15c 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ExpressionStatementImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ExpressionStatementImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/FileStatementImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/FileStatementImpl.java
index 021773f..10b943e 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/FileStatementImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/FileStatementImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ForStatementImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ForStatementImpl.java
index 7db4c8b..6c42d72 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ForStatementImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ForStatementImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/IfStatementImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/IfStatementImpl.java
index 67a89d5..79e6513 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/IfStatementImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/IfStatementImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ImportImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ImportImpl.java
index 5b42615..c9bf41a 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ImportImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ImportImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/LetStatementImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/LetStatementImpl.java
index 05d1de1..6623fd0 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/LetStatementImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/LetStatementImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/MetamodelImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/MetamodelImpl.java
index e3df8e1..96a2e1f 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/MetamodelImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/MetamodelImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleDocumentationImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleDocumentationImpl.java
index 7c5beb3..ee96634 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleDocumentationImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleDocumentationImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleElementDocumentationImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleElementDocumentationImpl.java
index 96b0362..fab8f72 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleElementDocumentationImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleElementDocumentationImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleElementImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleElementImpl.java
index 2bfd904..f3ed57a 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleElementImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleElementImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleImpl.java
index 091fa04..570724b 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleReferenceImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleReferenceImpl.java
index 053a1b5..3cf3847 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleReferenceImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ModuleReferenceImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/NamedElementImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/NamedElementImpl.java
index 76e3941..6d6666a 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/NamedElementImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/NamedElementImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ParameterDocumentationImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ParameterDocumentationImpl.java
index d6c0668..236dfb7 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ParameterDocumentationImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ParameterDocumentationImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ProtectedAreaImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ProtectedAreaImpl.java
index 3779eee..3a56d6c 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ProtectedAreaImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/ProtectedAreaImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/QueryImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/QueryImpl.java
index 62cc83d..3b6689c 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/QueryImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/QueryImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -43,6 +43,7 @@
  *   <li>{@link org.eclipse.acceleo.impl.QueryImpl#isDeprecated <em>Deprecated</em>}</li>
  *   <li>{@link org.eclipse.acceleo.impl.QueryImpl#getName <em>Name</em>}</li>
  *   <li>{@link org.eclipse.acceleo.impl.QueryImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.acceleo.impl.QueryImpl#getTypeAql <em>Type Aql</em>}</li>
  *   <li>{@link org.eclipse.acceleo.impl.QueryImpl#getParameters <em>Parameters</em>}</li>
  *   <li>{@link org.eclipse.acceleo.impl.QueryImpl#getVisibility <em>Visibility</em>}</li>
  *   <li>{@link org.eclipse.acceleo.impl.QueryImpl#getBody <em>Body</em>}</li>
@@ -122,6 +123,16 @@
 	protected AstResult type = TYPE_EDEFAULT;
 
 	/**
+	 * The cached value of the '{@link #getTypeAql() <em>Type Aql</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeAql()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.acceleo.query.ast.Expression typeAql;
+
+	/**
 	 * The cached value of the '{@link #getParameters() <em>Parameters</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -308,6 +319,59 @@
 	 * @generated
 	 */
 	@Override
+	public org.eclipse.acceleo.query.ast.Expression getTypeAql() {
+		return typeAql;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetTypeAql(org.eclipse.acceleo.query.ast.Expression newTypeAql,
+			NotificationChain msgs) {
+		org.eclipse.acceleo.query.ast.Expression oldTypeAql = typeAql;
+		typeAql = newTypeAql;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+					AcceleoPackage.QUERY__TYPE_AQL, oldTypeAql, newTypeAql);
+			if (msgs == null)
+				msgs = notification;
+			else
+				msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setTypeAql(org.eclipse.acceleo.query.ast.Expression newTypeAql) {
+		if (newTypeAql != typeAql) {
+			NotificationChain msgs = null;
+			if (typeAql != null)
+				msgs = ((InternalEObject)typeAql).eInverseRemove(this, EOPPOSITE_FEATURE_BASE
+						- AcceleoPackage.QUERY__TYPE_AQL, null, msgs);
+			if (newTypeAql != null)
+				msgs = ((InternalEObject)newTypeAql).eInverseAdd(this, EOPPOSITE_FEATURE_BASE
+						- AcceleoPackage.QUERY__TYPE_AQL, null, msgs);
+			msgs = basicSetTypeAql(newTypeAql, msgs);
+			if (msgs != null)
+				msgs.dispatch();
+		} else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AcceleoPackage.QUERY__TYPE_AQL, newTypeAql,
+					newTypeAql));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EList<Variable> getParameters() {
 		if (parameters == null) {
 			parameters = new EObjectContainmentEList<Variable>(Variable.class, this,
@@ -419,6 +483,8 @@
 		switch (featureID) {
 			case AcceleoPackage.QUERY__DOCUMENTATION:
 				return basicSetDocumentation(null, msgs);
+			case AcceleoPackage.QUERY__TYPE_AQL:
+				return basicSetTypeAql(null, msgs);
 			case AcceleoPackage.QUERY__PARAMETERS:
 				return ((InternalEList<?>)getParameters()).basicRemove(otherEnd, msgs);
 			case AcceleoPackage.QUERY__BODY:
@@ -443,6 +509,8 @@
 				return getName();
 			case AcceleoPackage.QUERY__TYPE:
 				return getType();
+			case AcceleoPackage.QUERY__TYPE_AQL:
+				return getTypeAql();
 			case AcceleoPackage.QUERY__PARAMETERS:
 				return getParameters();
 			case AcceleoPackage.QUERY__VISIBILITY:
@@ -474,6 +542,9 @@
 			case AcceleoPackage.QUERY__TYPE:
 				setType((AstResult)newValue);
 				return;
+			case AcceleoPackage.QUERY__TYPE_AQL:
+				setTypeAql((org.eclipse.acceleo.query.ast.Expression)newValue);
+				return;
 			case AcceleoPackage.QUERY__PARAMETERS:
 				getParameters().clear();
 				getParameters().addAll((Collection<? extends Variable>)newValue);
@@ -508,6 +579,9 @@
 			case AcceleoPackage.QUERY__TYPE:
 				setType(TYPE_EDEFAULT);
 				return;
+			case AcceleoPackage.QUERY__TYPE_AQL:
+				setTypeAql((org.eclipse.acceleo.query.ast.Expression)null);
+				return;
 			case AcceleoPackage.QUERY__PARAMETERS:
 				getParameters().clear();
 				return;
@@ -537,6 +611,8 @@
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
 			case AcceleoPackage.QUERY__TYPE:
 				return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+			case AcceleoPackage.QUERY__TYPE_AQL:
+				return typeAql != null;
 			case AcceleoPackage.QUERY__PARAMETERS:
 				return parameters != null && !parameters.isEmpty();
 			case AcceleoPackage.QUERY__VISIBILITY:
@@ -576,6 +652,8 @@
 			switch (derivedFeatureID) {
 				case AcceleoPackage.QUERY__TYPE:
 					return AcceleoPackage.TYPED_ELEMENT__TYPE;
+				case AcceleoPackage.QUERY__TYPE_AQL:
+					return AcceleoPackage.TYPED_ELEMENT__TYPE_AQL;
 				default:
 					return -1;
 			}
@@ -612,6 +690,8 @@
 			switch (baseFeatureID) {
 				case AcceleoPackage.TYPED_ELEMENT__TYPE:
 					return AcceleoPackage.QUERY__TYPE;
+				case AcceleoPackage.TYPED_ELEMENT__TYPE_AQL:
+					return AcceleoPackage.QUERY__TYPE_AQL;
 				default:
 					return -1;
 			}
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/TemplateImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/TemplateImpl.java
index 364acbd..6765d76 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/TemplateImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/TemplateImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/TextStatementImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/TextStatementImpl.java
index c0420d0..5c9e8aa 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/TextStatementImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/TextStatementImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/TypedElementImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/TypedElementImpl.java
index 04e729e..4b0d4a8 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/TypedElementImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/TypedElementImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -13,9 +13,12 @@
 
 import org.eclipse.acceleo.AcceleoPackage;
 import org.eclipse.acceleo.TypedElement;
+import org.eclipse.acceleo.query.ast.Expression;
 import org.eclipse.acceleo.query.parser.AstResult;
 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;
 
@@ -28,6 +31,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.acceleo.impl.TypedElementImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.acceleo.impl.TypedElementImpl#getTypeAql <em>Type Aql</em>}</li>
  * </ul>
  *
  * @generated
@@ -54,6 +58,16 @@
 	protected AstResult type = TYPE_EDEFAULT;
 
 	/**
+	 * The cached value of the '{@link #getTypeAql() <em>Type Aql</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeAql()
+	 * @generated
+	 * @ordered
+	 */
+	protected Expression typeAql;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -102,10 +116,78 @@
 	 * @generated
 	 */
 	@Override
+	public Expression getTypeAql() {
+		return typeAql;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetTypeAql(Expression newTypeAql, NotificationChain msgs) {
+		Expression oldTypeAql = typeAql;
+		typeAql = newTypeAql;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+					AcceleoPackage.TYPED_ELEMENT__TYPE_AQL, oldTypeAql, newTypeAql);
+			if (msgs == null)
+				msgs = notification;
+			else
+				msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setTypeAql(Expression newTypeAql) {
+		if (newTypeAql != typeAql) {
+			NotificationChain msgs = null;
+			if (typeAql != null)
+				msgs = ((InternalEObject)typeAql).eInverseRemove(this, EOPPOSITE_FEATURE_BASE
+						- AcceleoPackage.TYPED_ELEMENT__TYPE_AQL, null, msgs);
+			if (newTypeAql != null)
+				msgs = ((InternalEObject)newTypeAql).eInverseAdd(this, EOPPOSITE_FEATURE_BASE
+						- AcceleoPackage.TYPED_ELEMENT__TYPE_AQL, null, msgs);
+			msgs = basicSetTypeAql(newTypeAql, msgs);
+			if (msgs != null)
+				msgs.dispatch();
+		} else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AcceleoPackage.TYPED_ELEMENT__TYPE_AQL,
+					newTypeAql, newTypeAql));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AcceleoPackage.TYPED_ELEMENT__TYPE_AQL:
+				return basicSetTypeAql(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 AcceleoPackage.TYPED_ELEMENT__TYPE:
 				return getType();
+			case AcceleoPackage.TYPED_ELEMENT__TYPE_AQL:
+				return getTypeAql();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -121,6 +203,9 @@
 			case AcceleoPackage.TYPED_ELEMENT__TYPE:
 				setType((AstResult)newValue);
 				return;
+			case AcceleoPackage.TYPED_ELEMENT__TYPE_AQL:
+				setTypeAql((Expression)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -136,6 +221,9 @@
 			case AcceleoPackage.TYPED_ELEMENT__TYPE:
 				setType(TYPE_EDEFAULT);
 				return;
+			case AcceleoPackage.TYPED_ELEMENT__TYPE_AQL:
+				setTypeAql((Expression)null);
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -150,6 +238,8 @@
 		switch (featureID) {
 			case AcceleoPackage.TYPED_ELEMENT__TYPE:
 				return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+			case AcceleoPackage.TYPED_ELEMENT__TYPE_AQL:
+				return typeAql != null;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/VariableImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/VariableImpl.java
index bc84060..f9d6e1b 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/VariableImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/impl/VariableImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoAdapterFactory.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoAdapterFactory.java
index c0f7aa3..3275c87 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoAdapterFactory.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoAdapterFactory.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoResourceFactoryImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoResourceFactoryImpl.java
index b390cc2..e29be7c 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoResourceFactoryImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoResourceFactoryImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoResourceImpl.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoResourceImpl.java
index ca6a81a..63d012c 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoResourceImpl.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoResourceImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoSwitch.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoSwitch.java
index cc82c41..af7c111 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoSwitch.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoSwitch.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoXMLProcessor.java b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoXMLProcessor.java
index 7ceb6f0..f7ecd14 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoXMLProcessor.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src-gen/org/eclipse/acceleo/util/AcceleoXMLProcessor.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2008, 2016 Obeo.
+ * Copyright (c) 2008, 2020 Obeo.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src/org/eclipse/acceleo/aql/parser/AcceleoParser.java b/acceleo-aql/org.eclipse.acceleo.aql/src/org/eclipse/acceleo/aql/parser/AcceleoParser.java
index f29a693..9df554f 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src/org/eclipse/acceleo/aql/parser/AcceleoParser.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src/org/eclipse/acceleo/aql/parser/AcceleoParser.java
@@ -1073,7 +1073,10 @@
 			res.setVisibility(visibility);
 			res.setName(name);
 			res.getParameters().addAll(parameters);
-			res.setType(type);
+			if (type != null) {
+				res.setType(type);
+				res.setTypeAql(type.getAst());
+			}
 			res.setBody(body);
 			setPositions(res, startPosition, currentPosition);
 		} else {
@@ -1148,7 +1151,10 @@
 				res = AcceleoPackage.eINSTANCE.getAcceleoFactory().createVariable();
 			}
 			res.setName(name);
-			res.setType(type);
+			if (type != null) {
+				res.setType(type);
+				res.setTypeAql(type.getAst());
+			}
 			setPositions(res, startPosition, currentPosition);
 		} else {
 			res = null;
@@ -1703,7 +1709,10 @@
 				res = AcceleoPackage.eINSTANCE.getAcceleoFactory().createBinding();
 			}
 			res.setName(name);
-			res.setType(type);
+			if (type != null) {
+				res.setType(type);
+				res.setTypeAql(type.getAst());
+			}
 			res.setInitExpression(expression);
 			setPositions(res, startPosition, currentPosition);
 		} else {
@@ -1863,6 +1872,7 @@
 		final AstResult astResult = parseWhileAqlExpression(text.substring(currentPosition, endLimit));
 		final int startPosition = currentPosition;
 		res.setAst(astResult);
+		res.setAql(astResult.getAst());
 		final int endPosition = currentPosition + astResult.getEndPosition(astResult.getAst());
 		setPositions(res, startPosition, endPosition);
 		currentPosition = endPosition;