From b9e56a56ccde32956ec5e8b51a3ee929a08cabd2 Mon Sep 17 00:00:00 2001
From: phuhv <van-phu.ha@inria.fr>
Date: Fri, 25 Jan 2019 11:51:45 +0100
Subject: [PATCH 01/11] Add sum expression in Computation.xcore

---
 .../model/Computation.xcore                   |   5 +
 .../computation/ComputationFactory.java       |   9 ++
 .../computation/ComputationPackage.java       |  88 +++++++++-
 .../computation/SumExpression.java            |  40 +++++
 .../impl/ComputationFactoryImpl.java          |  11 ++
 .../impl/ComputationPackageImpl.java          |  33 ++++
 .../computation/impl/SumExpressionImpl.java   | 150 ++++++++++++++++++
 .../util/ComputationAdapterFactory.java       |  18 +++
 .../computation/util/ComputationSwitch.java   |  22 +++
 9 files changed, 370 insertions(+), 6 deletions(-)
 create mode 100644 bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/SumExpression.java
 create mode 100644 bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/SumExpressionImpl.java

diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/model/Computation.xcore b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/model/Computation.xcore
index 150a68e..3f746a8 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/model/Computation.xcore
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/model/Computation.xcore
@@ -51,6 +51,11 @@ class MaxExpression extends OperandExpression {
 	contains OperandExpression[] exprs
 }
 
+// FIXME Update code: Phu
+class SumExpression extends OperandExpression {
+	contains OperandExpression[] exprs
+}
+
 class AddExpression extends OperandExpression {
 	contains OperandExpression op1
 	contains OperandExpression op2
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/ComputationFactory.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/ComputationFactory.java
index f2bfef7..67707d8 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/ComputationFactory.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/ComputationFactory.java
@@ -75,6 +75,15 @@ public interface ComputationFactory extends EFactory {
 	 */
 	MaxExpression createMaxExpression();
 
+	/**
+	 * Returns a new object of class '<em>Sum Expression</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Sum Expression</em>'.
+	 * @generated
+	 */
+	SumExpression createSumExpression();
+
 	/**
 	 * Returns a new object of class '<em>Add Expression</em>'.
 	 * <!-- begin-user-doc -->
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/ComputationPackage.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/ComputationPackage.java
index fd58e4f..dc41226 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/ComputationPackage.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/ComputationPackage.java
@@ -408,6 +408,43 @@ public interface ComputationPackage extends EPackage {
 	 */
 	int MAX_EXPRESSION_OPERATION_COUNT = OPERAND_EXPRESSION_OPERATION_COUNT + 0;
 
+	/**
+	 * The meta object id for the '{@link typeexploration.computation.impl.SumExpressionImpl <em>Sum Expression</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see typeexploration.computation.impl.SumExpressionImpl
+	 * @see typeexploration.computation.impl.ComputationPackageImpl#getSumExpression()
+	 * @generated
+	 */
+	int SUM_EXPRESSION = 7;
+
+	/**
+	 * The feature id for the '<em><b>Exprs</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUM_EXPRESSION__EXPRS = OPERAND_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Sum Expression</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUM_EXPRESSION_FEATURE_COUNT = OPERAND_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Sum Expression</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUM_EXPRESSION_OPERATION_COUNT = OPERAND_EXPRESSION_OPERATION_COUNT + 0;
+
 	/**
 	 * The meta object id for the '{@link typeexploration.computation.impl.AddExpressionImpl <em>Add Expression</em>}' class.
 	 * <!-- begin-user-doc -->
@@ -416,7 +453,7 @@ public interface ComputationPackage extends EPackage {
 	 * @see typeexploration.computation.impl.ComputationPackageImpl#getAddExpression()
 	 * @generated
 	 */
-	int ADD_EXPRESSION = 7;
+	int ADD_EXPRESSION = 8;
 
 	/**
 	 * The feature id for the '<em><b>Op1</b></em>' containment reference.
@@ -462,7 +499,7 @@ public interface ComputationPackage extends EPackage {
 	 * @see typeexploration.computation.impl.ComputationPackageImpl#getOperandTerm()
 	 * @generated
 	 */
-	int OPERAND_TERM = 8;
+	int OPERAND_TERM = 9;
 
 	/**
 	 * The feature id for the '<em><b>Coef</b></em>' attribute.
@@ -508,7 +545,7 @@ public interface ComputationPackage extends EPackage {
 	 * @see typeexploration.computation.impl.ComputationPackageImpl#getSizeExpression()
 	 * @generated
 	 */
-	int SIZE_EXPRESSION = 9;
+	int SIZE_EXPRESSION = 10;
 
 	/**
 	 * The number of structural features of the '<em>Size Expression</em>' class.
@@ -545,7 +582,7 @@ public interface ComputationPackage extends EPackage {
 	 * @see typeexploration.computation.impl.ComputationPackageImpl#getSummationExpression()
 	 * @generated
 	 */
-	int SUMMATION_EXPRESSION = 10;
+	int SUMMATION_EXPRESSION = 11;
 
 	/**
 	 * The feature id for the '<em><b>Constant</b></em>' attribute.
@@ -600,7 +637,7 @@ public interface ComputationPackage extends EPackage {
 	 * @see typeexploration.computation.impl.ComputationPackageImpl#getProductExpression()
 	 * @generated
 	 */
-	int PRODUCT_EXPRESSION = 11;
+	int PRODUCT_EXPRESSION = 12;
 
 	/**
 	 * The feature id for the '<em><b>Constant</b></em>' attribute.
@@ -655,7 +692,7 @@ public interface ComputationPackage extends EPackage {
 	 * @see typeexploration.computation.impl.ComputationPackageImpl#getHWOpType()
 	 * @generated
 	 */
-	int HW_OP_TYPE = 12;
+	int HW_OP_TYPE = 13;
 
 
 	/**
@@ -915,6 +952,27 @@ public interface ComputationPackage extends EPackage {
 	 */
 	EReference getMaxExpression_Exprs();
 
+	/**
+	 * Returns the meta object for class '{@link typeexploration.computation.SumExpression <em>Sum Expression</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Sum Expression</em>'.
+	 * @see typeexploration.computation.SumExpression
+	 * @generated
+	 */
+	EClass getSumExpression();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link typeexploration.computation.SumExpression#getExprs <em>Exprs</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Exprs</em>'.
+	 * @see typeexploration.computation.SumExpression#getExprs()
+	 * @see #getSumExpression()
+	 * @generated
+	 */
+	EReference getSumExpression_Exprs();
+
 	/**
 	 * Returns the meta object for class '{@link typeexploration.computation.AddExpression <em>Add Expression</em>}'.
 	 * <!-- begin-user-doc -->
@@ -1322,6 +1380,24 @@ public interface ComputationPackage extends EPackage {
 		 */
 		EReference MAX_EXPRESSION__EXPRS = eINSTANCE.getMaxExpression_Exprs();
 
+		/**
+		 * The meta object literal for the '{@link typeexploration.computation.impl.SumExpressionImpl <em>Sum Expression</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see typeexploration.computation.impl.SumExpressionImpl
+		 * @see typeexploration.computation.impl.ComputationPackageImpl#getSumExpression()
+		 * @generated
+		 */
+		EClass SUM_EXPRESSION = eINSTANCE.getSumExpression();
+
+		/**
+		 * The meta object literal for the '<em><b>Exprs</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SUM_EXPRESSION__EXPRS = eINSTANCE.getSumExpression_Exprs();
+
 		/**
 		 * The meta object literal for the '{@link typeexploration.computation.impl.AddExpressionImpl <em>Add Expression</em>}' class.
 		 * <!-- begin-user-doc -->
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/SumExpression.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/SumExpression.java
new file mode 100644
index 0000000..044a7eb
--- /dev/null
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/SumExpression.java
@@ -0,0 +1,40 @@
+/**
+ */
+package typeexploration.computation;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sum Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link typeexploration.computation.SumExpression#getExprs <em>Exprs</em>}</li>
+ * </ul>
+ *
+ * @see typeexploration.computation.ComputationPackage#getSumExpression()
+ * @model
+ * @generated
+ */
+public interface SumExpression extends OperandExpression {
+	/**
+	 * Returns the value of the '<em><b>Exprs</b></em>' containment reference list.
+	 * The list contents are of type {@link typeexploration.computation.OperandExpression}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Exprs</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Exprs</em>' containment reference list.
+	 * @see typeexploration.computation.ComputationPackage#getSumExpression_Exprs()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<OperandExpression> getExprs();
+
+} // SumExpression
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/ComputationFactoryImpl.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/ComputationFactoryImpl.java
index a4be979..ce530b3 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/ComputationFactoryImpl.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/ComputationFactoryImpl.java
@@ -63,6 +63,7 @@ public class ComputationFactoryImpl extends EFactoryImpl implements ComputationF
 			case ComputationPackage.COMPUTATION_BLOCK: return createComputationBlock();
 			case ComputationPackage.OPERATION: return createOperation();
 			case ComputationPackage.MAX_EXPRESSION: return createMaxExpression();
+			case ComputationPackage.SUM_EXPRESSION: return createSumExpression();
 			case ComputationPackage.ADD_EXPRESSION: return createAddExpression();
 			case ComputationPackage.OPERAND_TERM: return createOperandTerm();
 			case ComputationPackage.SUMMATION_EXPRESSION: return createSummationExpression();
@@ -162,6 +163,16 @@ public class ComputationFactoryImpl extends EFactoryImpl implements ComputationF
 		return maxExpression;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SumExpression createSumExpression() {
+		SumExpressionImpl sumExpression = new SumExpressionImpl();
+		return sumExpression;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/ComputationPackageImpl.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/ComputationPackageImpl.java
index 781fb3b..698c382 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/ComputationPackageImpl.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/ComputationPackageImpl.java
@@ -26,6 +26,7 @@ import typeexploration.computation.Operation;
 import typeexploration.computation.Parameter;
 import typeexploration.computation.ProductExpression;
 import typeexploration.computation.SizeExpression;
+import typeexploration.computation.SumExpression;
 import typeexploration.computation.SummationExpression;
 
 /**
@@ -84,6 +85,13 @@ public class ComputationPackageImpl extends EPackageImpl implements ComputationP
 	 */
 	private EClass maxExpressionEClass = null;
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sumExpressionEClass = null;
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -406,6 +414,24 @@ public class ComputationPackageImpl extends EPackageImpl implements ComputationP
 		return (EReference)maxExpressionEClass.getEStructuralFeatures().get(0);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSumExpression() {
+		return sumExpressionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSumExpression_Exprs() {
+		return (EReference)sumExpressionEClass.getEStructuralFeatures().get(0);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -618,6 +644,9 @@ public class ComputationPackageImpl extends EPackageImpl implements ComputationP
 		maxExpressionEClass = createEClass(MAX_EXPRESSION);
 		createEReference(maxExpressionEClass, MAX_EXPRESSION__EXPRS);
 
+		sumExpressionEClass = createEClass(SUM_EXPRESSION);
+		createEReference(sumExpressionEClass, SUM_EXPRESSION__EXPRS);
+
 		addExpressionEClass = createEClass(ADD_EXPRESSION);
 		createEReference(addExpressionEClass, ADD_EXPRESSION__OP1);
 		createEReference(addExpressionEClass, ADD_EXPRESSION__OP2);
@@ -675,6 +704,7 @@ public class ComputationPackageImpl extends EPackageImpl implements ComputationP
 
 		// Add supertypes to classes
 		maxExpressionEClass.getESuperTypes().add(this.getOperandExpression());
+		sumExpressionEClass.getESuperTypes().add(this.getOperandExpression());
 		addExpressionEClass.getESuperTypes().add(this.getOperandExpression());
 		operandTermEClass.getESuperTypes().add(this.getOperandExpression());
 		summationExpressionEClass.getESuperTypes().add(this.getSizeExpression());
@@ -712,6 +742,9 @@ public class ComputationPackageImpl extends EPackageImpl implements ComputationP
 		initEClass(maxExpressionEClass, MaxExpression.class, "MaxExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getMaxExpression_Exprs(), this.getOperandExpression(), null, "exprs", null, 0, -1, MaxExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
+		initEClass(sumExpressionEClass, SumExpression.class, "SumExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getSumExpression_Exprs(), this.getOperandExpression(), null, "exprs", null, 0, -1, SumExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
 		initEClass(addExpressionEClass, AddExpression.class, "AddExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getAddExpression_Op1(), this.getOperandExpression(), null, "op1", null, 0, 1, AddExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getAddExpression_Op2(), this.getOperandExpression(), null, "op2", null, 0, 1, AddExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/SumExpressionImpl.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/SumExpressionImpl.java
new file mode 100644
index 0000000..cb4ed52
--- /dev/null
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/SumExpressionImpl.java
@@ -0,0 +1,150 @@
+/**
+ */
+package typeexploration.computation.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import typeexploration.computation.ComputationPackage;
+import typeexploration.computation.OperandExpression;
+import typeexploration.computation.SumExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sum Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link typeexploration.computation.impl.SumExpressionImpl#getExprs <em>Exprs</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SumExpressionImpl extends OperandExpressionImpl implements SumExpression {
+	/**
+	 * The cached value of the '{@link #getExprs() <em>Exprs</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExprs()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<OperandExpression> exprs;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SumExpressionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ComputationPackage.Literals.SUM_EXPRESSION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<OperandExpression> getExprs() {
+		if (exprs == null) {
+			exprs = new EObjectContainmentEList<OperandExpression>(OperandExpression.class, this, ComputationPackage.SUM_EXPRESSION__EXPRS);
+		}
+		return exprs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ComputationPackage.SUM_EXPRESSION__EXPRS:
+				return ((InternalEList<?>)getExprs()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ComputationPackage.SUM_EXPRESSION__EXPRS:
+				return getExprs();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ComputationPackage.SUM_EXPRESSION__EXPRS:
+				getExprs().clear();
+				getExprs().addAll((Collection<? extends OperandExpression>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ComputationPackage.SUM_EXPRESSION__EXPRS:
+				getExprs().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ComputationPackage.SUM_EXPRESSION__EXPRS:
+				return exprs != null && !exprs.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //SumExpressionImpl
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/util/ComputationAdapterFactory.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/util/ComputationAdapterFactory.java
index 3f7c227..c157c3d 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/util/ComputationAdapterFactory.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/util/ComputationAdapterFactory.java
@@ -96,6 +96,10 @@ public class ComputationAdapterFactory extends AdapterFactoryImpl {
 				return createMaxExpressionAdapter();
 			}
 			@Override
+			public Adapter caseSumExpression(SumExpression object) {
+				return createSumExpressionAdapter();
+			}
+			@Override
 			public Adapter caseAddExpression(AddExpression object) {
 				return createAddExpressionAdapter();
 			}
@@ -233,6 +237,20 @@ public class ComputationAdapterFactory extends AdapterFactoryImpl {
 		return null;
 	}
 
+	/**
+	 * Creates a new adapter for an object of class '{@link typeexploration.computation.SumExpression <em>Sum Expression</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see typeexploration.computation.SumExpression
+	 * @generated
+	 */
+	public Adapter createSumExpressionAdapter() {
+		return null;
+	}
+
 	/**
 	 * Creates a new adapter for an object of class '{@link typeexploration.computation.AddExpression <em>Add Expression</em>}'.
 	 * <!-- begin-user-doc -->
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/util/ComputationSwitch.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/util/ComputationSwitch.java
index 3bc275f..792f005 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/util/ComputationSwitch.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/util/ComputationSwitch.java
@@ -109,6 +109,13 @@ public class ComputationSwitch<T> extends Switch<T> {
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case ComputationPackage.SUM_EXPRESSION: {
+				SumExpression sumExpression = (SumExpression)theEObject;
+				T result = caseSumExpression(sumExpression);
+				if (result == null) result = caseOperandExpression(sumExpression);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			case ComputationPackage.ADD_EXPRESSION: {
 				AddExpression addExpression = (AddExpression)theEObject;
 				T result = caseAddExpression(addExpression);
@@ -252,6 +259,21 @@ public class ComputationSwitch<T> extends Switch<T> {
 		return null;
 	}
 
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Sum Expression</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Sum Expression</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseSumExpression(SumExpression object) {
+		return null;
+	}
+
 	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Add Expression</em>'.
 	 * <!-- begin-user-doc -->
-- 
GitLab


From fe9648beb8befe1db4f285c972ee08fac9789e0a Mon Sep 17 00:00:00 2001
From: phuhv <van-phu.ha@inria.fr>
Date: Fri, 25 Jan 2019 11:54:58 +0100
Subject: [PATCH 02/11] Add sum expression to cost model DSL

---
 .../antlr/ComputationParser.java              |    4 +
 .../antlr/internal/InternalComputation.g      |  265 +-
 .../antlr/internal/InternalComputation.tokens |    4 +-
 .../internal/InternalComputationLexer.java    |  297 +-
 .../internal/InternalComputationParser.java   | 2736 +++++++++++------
 .../AbstractComputationProposalProvider.java  |    6 +
 .../typeexploration/Computation.xtextbin      |  Bin 3494 -> 3656 bytes
 .../antlr/internal/InternalComputation.g      |   96 +-
 .../antlr/internal/InternalComputation.tokens |    4 +-
 .../internal/InternalComputationLexer.java    |  283 +-
 .../internal/InternalComputationParser.java   |  621 ++--
 .../ComputationSemanticSequencer.java         |   17 +
 .../services/ComputationGrammarAccess.java    |   77 +-
 .../gecos/typeexploration/Computation.xtext   |    7 +-
 14 files changed, 2963 insertions(+), 1454 deletions(-)

diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/ComputationParser.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/ComputationParser.java
index e82aa17..3ef8df0 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/ComputationParser.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/ComputationParser.java
@@ -42,6 +42,8 @@ public class ComputationParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getOperationAccess().getGroup(), "rule__Operation__Group__0");
 			builder.put(grammarAccess.getMaxExpressionAccess().getGroup(), "rule__MaxExpression__Group__0");
 			builder.put(grammarAccess.getMaxExpressionAccess().getGroup_3(), "rule__MaxExpression__Group_3__0");
+			builder.put(grammarAccess.getSumExpressionAccess().getGroup(), "rule__SumExpression__Group__0");
+			builder.put(grammarAccess.getSumExpressionAccess().getGroup_3(), "rule__SumExpression__Group_3__0");
 			builder.put(grammarAccess.getAddExpressionAccess().getGroup(), "rule__AddExpression__Group__0");
 			builder.put(grammarAccess.getOperandTermAccess().getGroup(), "rule__OperandTerm__Group__0");
 			builder.put(grammarAccess.getSummationExpressionAccess().getGroup_0(), "rule__SummationExpression__Group_0__0");
@@ -67,6 +69,8 @@ public class ComputationParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getOperationAccess().getNumOpsAssignment_8(), "rule__Operation__NumOpsAssignment_8");
 			builder.put(grammarAccess.getMaxExpressionAccess().getExprsAssignment_2(), "rule__MaxExpression__ExprsAssignment_2");
 			builder.put(grammarAccess.getMaxExpressionAccess().getExprsAssignment_3_1(), "rule__MaxExpression__ExprsAssignment_3_1");
+			builder.put(grammarAccess.getSumExpressionAccess().getExprsAssignment_2(), "rule__SumExpression__ExprsAssignment_2");
+			builder.put(grammarAccess.getSumExpressionAccess().getExprsAssignment_3_1(), "rule__SumExpression__ExprsAssignment_3_1");
 			builder.put(grammarAccess.getAddExpressionAccess().getOp1Assignment_1(), "rule__AddExpression__Op1Assignment_1");
 			builder.put(grammarAccess.getAddExpressionAccess().getOp2Assignment_3(), "rule__AddExpression__Op2Assignment_3");
 			builder.put(grammarAccess.getOperandTermAccess().getCoefAssignment_0(), "rule__OperandTerm__CoefAssignment_0");
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputation.g b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputation.g
index 1a1d75d..27afa2b 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputation.g
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputation.g
@@ -249,6 +249,31 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+// Entry rule entryRuleSumExpression
+entryRuleSumExpression
+:
+{ before(grammarAccess.getSumExpressionRule()); }
+	 ruleSumExpression
+{ after(grammarAccess.getSumExpressionRule()); } 
+	 EOF 
+;
+
+// Rule SumExpression
+ruleSumExpression 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getSumExpressionAccess().getGroup()); }
+		(rule__SumExpression__Group__0)
+		{ after(grammarAccess.getSumExpressionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 // Entry rule entryRuleTerminalOperandExpression
 entryRuleTerminalOperandExpression
 :
@@ -401,15 +426,21 @@ rule__OperandExpression__Alternatives
 	}
 :
 	(
-		{ before(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_0()); }
+		{ before(grammarAccess.getOperandExpressionAccess().getSumExpressionParserRuleCall_0()); }
+		ruleSumExpression
+		{ after(grammarAccess.getOperandExpressionAccess().getSumExpressionParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_1()); }
 		ruleMaxExpression
-		{ after(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_0()); }
+		{ after(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_1()); }
 	)
 	|
 	(
-		{ before(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_1()); }
+		{ before(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_2()); }
 		ruleTerminalOperandExpression
-		{ after(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_1()); }
+		{ after(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_2()); }
 	)
 ;
 finally {
@@ -1613,6 +1644,202 @@ finally {
 }
 
 
+rule__SumExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SumExpression__Group__0__Impl
+	rule__SumExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SumExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSumExpressionAccess().getSumKeyword_0()); }
+	'sum'
+	{ after(grammarAccess.getSumExpressionAccess().getSumKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SumExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SumExpression__Group__1__Impl
+	rule__SumExpression__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SumExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSumExpressionAccess().getLeftParenthesisKeyword_1()); }
+	'('
+	{ after(grammarAccess.getSumExpressionAccess().getLeftParenthesisKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SumExpression__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SumExpression__Group__2__Impl
+	rule__SumExpression__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SumExpression__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSumExpressionAccess().getExprsAssignment_2()); }
+	(rule__SumExpression__ExprsAssignment_2)
+	{ after(grammarAccess.getSumExpressionAccess().getExprsAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SumExpression__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SumExpression__Group__3__Impl
+	rule__SumExpression__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SumExpression__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	(
+		{ before(grammarAccess.getSumExpressionAccess().getGroup_3()); }
+		(rule__SumExpression__Group_3__0)
+		{ after(grammarAccess.getSumExpressionAccess().getGroup_3()); }
+	)
+	(
+		{ before(grammarAccess.getSumExpressionAccess().getGroup_3()); }
+		(rule__SumExpression__Group_3__0)*
+		{ after(grammarAccess.getSumExpressionAccess().getGroup_3()); }
+	)
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SumExpression__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SumExpression__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SumExpression__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSumExpressionAccess().getRightParenthesisKeyword_4()); }
+	')'
+	{ after(grammarAccess.getSumExpressionAccess().getRightParenthesisKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SumExpression__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SumExpression__Group_3__0__Impl
+	rule__SumExpression__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SumExpression__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSumExpressionAccess().getCommaKeyword_3_0()); }
+	','
+	{ after(grammarAccess.getSumExpressionAccess().getCommaKeyword_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SumExpression__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SumExpression__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SumExpression__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSumExpressionAccess().getExprsAssignment_3_1()); }
+	(rule__SumExpression__ExprsAssignment_3_1)
+	{ after(grammarAccess.getSumExpressionAccess().getExprsAssignment_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
 rule__AddExpression__Group__0
 	@init {
 		int stackSize = keepStackSize();
@@ -2381,6 +2608,36 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+rule__SumExpression__ExprsAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_2_0()); }
+		ruleTerminalOperandExpression
+		{ after(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SumExpression__ExprsAssignment_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_3_1_0()); }
+		ruleTerminalOperandExpression
+		{ after(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__AddExpression__Op1Assignment_1
 	@init {
 		int stackSize = keepStackSize();
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputation.tokens b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputation.tokens
index cc724ad..154d386 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputation.tokens
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputation.tokens
@@ -1,6 +1,6 @@
 '('=27
 ')'=28
-'+'=30
+'+'=31
 ','=29
 ':'=23
 ';'=15
@@ -14,6 +14,7 @@
 'outputsPerCycle'=19
 'param'=13
 'problemSize'=20
+'sum'=30
 'target'=16
 'x'=25
 '{'=17
@@ -45,3 +46,4 @@ T__27=27
 T__28=28
 T__29=29
 T__30=30
+T__31=31
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputationLexer.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputationLexer.java
index 2eb7ee6..12726a2 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputationLexer.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputationLexer.java
@@ -25,6 +25,7 @@ public class InternalComputationLexer extends Lexer {
     public static final int T__14=14;
     public static final int EOF=-1;
     public static final int T__30=30;
+    public static final int T__31=31;
     public static final int RULE_ID=4;
     public static final int RULE_WS=9;
     public static final int RULE_ANY_OTHER=10;
@@ -449,10 +450,11 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = T__30;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:30:7: ( '+' )
-            // InternalComputation.g:30:9: '+'
+            // InternalComputation.g:30:7: ( 'sum' )
+            // InternalComputation.g:30:9: 'sum'
             {
-            match('+'); 
+            match("sum"); 
+
 
             }
 
@@ -464,15 +466,35 @@ public class InternalComputationLexer extends Lexer {
     }
     // $ANTLR end "T__30"
 
+    // $ANTLR start "T__31"
+    public final void mT__31() throws RecognitionException {
+        try {
+            int _type = T__31;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalComputation.g:31:7: ( '+' )
+            // InternalComputation.g:31:9: '+'
+            {
+            match('+'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__31"
+
     // $ANTLR start "RULE_ID"
     public final void mRULE_ID() throws RecognitionException {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:2557:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // InternalComputation.g:2557:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalComputation.g:2814:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalComputation.g:2814:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // InternalComputation.g:2557:11: ( '^' )?
+            // InternalComputation.g:2814:11: ( '^' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -481,7 +503,7 @@ public class InternalComputationLexer extends Lexer {
             }
             switch (alt1) {
                 case 1 :
-                    // InternalComputation.g:2557:11: '^'
+                    // InternalComputation.g:2814:11: '^'
                     {
                     match('^'); 
 
@@ -499,7 +521,7 @@ public class InternalComputationLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // InternalComputation.g:2557:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalComputation.g:2814:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop2:
             do {
                 int alt2=2;
@@ -548,10 +570,10 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:2559:10: ( ( '0' .. '9' )+ )
-            // InternalComputation.g:2559:12: ( '0' .. '9' )+
+            // InternalComputation.g:2816:10: ( ( '0' .. '9' )+ )
+            // InternalComputation.g:2816:12: ( '0' .. '9' )+
             {
-            // InternalComputation.g:2559:12: ( '0' .. '9' )+
+            // InternalComputation.g:2816:12: ( '0' .. '9' )+
             int cnt3=0;
             loop3:
             do {
@@ -565,7 +587,7 @@ public class InternalComputationLexer extends Lexer {
 
                 switch (alt3) {
             	case 1 :
-            	    // InternalComputation.g:2559:13: '0' .. '9'
+            	    // InternalComputation.g:2816:13: '0' .. '9'
             	    {
             	    matchRange('0','9'); 
 
@@ -597,10 +619,10 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:2561:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
-            // InternalComputation.g:2561:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalComputation.g:2818:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+            // InternalComputation.g:2818:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
             {
-            // InternalComputation.g:2561:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalComputation.g:2818:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
             int alt6=2;
             int LA6_0 = input.LA(1);
 
@@ -618,10 +640,10 @@ public class InternalComputationLexer extends Lexer {
             }
             switch (alt6) {
                 case 1 :
-                    // InternalComputation.g:2561:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+                    // InternalComputation.g:2818:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
                     {
                     match('\"'); 
-                    // InternalComputation.g:2561:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // InternalComputation.g:2818:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop4:
                     do {
                         int alt4=3;
@@ -637,7 +659,7 @@ public class InternalComputationLexer extends Lexer {
 
                         switch (alt4) {
                     	case 1 :
-                    	    // InternalComputation.g:2561:21: '\\\\' .
+                    	    // InternalComputation.g:2818:21: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -645,7 +667,7 @@ public class InternalComputationLexer extends Lexer {
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalComputation.g:2561:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    // InternalComputation.g:2818:28: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -670,10 +692,10 @@ public class InternalComputationLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // InternalComputation.g:2561:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+                    // InternalComputation.g:2818:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
                     {
                     match('\''); 
-                    // InternalComputation.g:2561:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // InternalComputation.g:2818:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop5:
                     do {
                         int alt5=3;
@@ -689,7 +711,7 @@ public class InternalComputationLexer extends Lexer {
 
                         switch (alt5) {
                     	case 1 :
-                    	    // InternalComputation.g:2561:54: '\\\\' .
+                    	    // InternalComputation.g:2818:54: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -697,7 +719,7 @@ public class InternalComputationLexer extends Lexer {
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalComputation.g:2561:61: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // InternalComputation.g:2818:61: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -740,12 +762,12 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:2563:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalComputation.g:2563:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalComputation.g:2820:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalComputation.g:2820:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalComputation.g:2563:24: ( options {greedy=false; } : . )*
+            // InternalComputation.g:2820:24: ( options {greedy=false; } : . )*
             loop7:
             do {
                 int alt7=2;
@@ -770,7 +792,7 @@ public class InternalComputationLexer extends Lexer {
 
                 switch (alt7) {
             	case 1 :
-            	    // InternalComputation.g:2563:52: .
+            	    // InternalComputation.g:2820:52: .
             	    {
             	    matchAny(); 
 
@@ -800,12 +822,12 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:2565:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalComputation.g:2565:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalComputation.g:2822:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalComputation.g:2822:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalComputation.g:2565:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalComputation.g:2822:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop8:
             do {
                 int alt8=2;
@@ -818,7 +840,7 @@ public class InternalComputationLexer extends Lexer {
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalComputation.g:2565:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalComputation.g:2822:24: ~ ( ( '\\n' | '\\r' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -838,7 +860,7 @@ public class InternalComputationLexer extends Lexer {
                 }
             } while (true);
 
-            // InternalComputation.g:2565:40: ( ( '\\r' )? '\\n' )?
+            // InternalComputation.g:2822:40: ( ( '\\r' )? '\\n' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -847,9 +869,9 @@ public class InternalComputationLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // InternalComputation.g:2565:41: ( '\\r' )? '\\n'
+                    // InternalComputation.g:2822:41: ( '\\r' )? '\\n'
                     {
-                    // InternalComputation.g:2565:41: ( '\\r' )?
+                    // InternalComputation.g:2822:41: ( '\\r' )?
                     int alt9=2;
                     int LA9_0 = input.LA(1);
 
@@ -858,7 +880,7 @@ public class InternalComputationLexer extends Lexer {
                     }
                     switch (alt9) {
                         case 1 :
-                            // InternalComputation.g:2565:41: '\\r'
+                            // InternalComputation.g:2822:41: '\\r'
                             {
                             match('\r'); 
 
@@ -890,10 +912,10 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:2567:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalComputation.g:2567:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalComputation.g:2824:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalComputation.g:2824:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalComputation.g:2567:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalComputation.g:2824:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt11=0;
             loop11:
             do {
@@ -947,8 +969,8 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:2569:16: ( . )
-            // InternalComputation.g:2569:18: .
+            // InternalComputation.g:2826:16: ( . )
+            // InternalComputation.g:2826:18: .
             {
             matchAny(); 
 
@@ -963,8 +985,8 @@ public class InternalComputationLexer extends Lexer {
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalComputation.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt12=27;
+        // InternalComputation.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt12=28;
         alt12 = dfa12.predict(input);
         switch (alt12) {
             case 1 :
@@ -1108,49 +1130,56 @@ public class InternalComputationLexer extends Lexer {
                 }
                 break;
             case 21 :
-                // InternalComputation.g:1:130: RULE_ID
+                // InternalComputation.g:1:130: T__31
                 {
-                mRULE_ID(); 
+                mT__31(); 
 
                 }
                 break;
             case 22 :
-                // InternalComputation.g:1:138: RULE_INT
+                // InternalComputation.g:1:136: RULE_ID
                 {
-                mRULE_INT(); 
+                mRULE_ID(); 
 
                 }
                 break;
             case 23 :
-                // InternalComputation.g:1:147: RULE_STRING
+                // InternalComputation.g:1:144: RULE_INT
                 {
-                mRULE_STRING(); 
+                mRULE_INT(); 
 
                 }
                 break;
             case 24 :
-                // InternalComputation.g:1:159: RULE_ML_COMMENT
+                // InternalComputation.g:1:153: RULE_STRING
                 {
-                mRULE_ML_COMMENT(); 
+                mRULE_STRING(); 
 
                 }
                 break;
             case 25 :
-                // InternalComputation.g:1:175: RULE_SL_COMMENT
+                // InternalComputation.g:1:165: RULE_ML_COMMENT
                 {
-                mRULE_SL_COMMENT(); 
+                mRULE_ML_COMMENT(); 
 
                 }
                 break;
             case 26 :
-                // InternalComputation.g:1:191: RULE_WS
+                // InternalComputation.g:1:181: RULE_SL_COMMENT
                 {
-                mRULE_WS(); 
+                mRULE_SL_COMMENT(); 
 
                 }
                 break;
             case 27 :
-                // InternalComputation.g:1:199: RULE_ANY_OTHER
+                // InternalComputation.g:1:197: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 28 :
+                // InternalComputation.g:1:205: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -1164,122 +1193,126 @@ public class InternalComputationLexer extends Lexer {
 
     protected DFA12 dfa12 = new DFA12(this);
     static final String DFA12_eotS =
-        "\1\uffff\3\34\2\uffff\1\34\1\uffff\2\34\1\uffff\1\34\1\uffff\1\52\1\34\4\uffff\1\32\2\uffff\3\32\2\uffff\1\34\1\uffff\3\34\2\uffff\1\34\1\uffff\2\34\1\74\1\uffff\1\34\2\uffff\1\34\11\uffff\1\77\1\100\5\34\1\uffff\1\34\1\107\2\uffff\6\34\1\uffff\1\116\4\34\1\123\1\uffff\1\34\1\125\2\34\1\uffff\1\34\1\uffff\6\34\1\137\2\34\1\uffff\1\34\1\143\1\34\1\uffff\3\34\1\150\1\uffff";
+        "\1\uffff\3\35\2\uffff\1\35\1\uffff\2\35\1\uffff\1\35\1\uffff\1\53\1\35\3\uffff\1\35\1\uffff\1\33\2\uffff\3\33\2\uffff\1\35\1\uffff\3\35\2\uffff\1\35\1\uffff\2\35\1\76\1\uffff\1\35\2\uffff\1\35\3\uffff\1\35\6\uffff\1\102\1\103\5\35\1\uffff\1\35\1\112\1\113\2\uffff\6\35\2\uffff\1\122\4\35\1\127\1\uffff\1\35\1\131\2\35\1\uffff\1\35\1\uffff\6\35\1\143\2\35\1\uffff\1\35\1\147\1\35\1\uffff\3\35\1\154\1\uffff";
     static final String DFA12_eofS =
-        "\151\uffff";
+        "\155\uffff";
     static final String DFA12_minS =
-        "\1\0\1\104\1\125\1\141\2\uffff\1\141\1\uffff\1\162\1\160\1\uffff\1\154\1\uffff\1\60\1\141\4\uffff\1\101\2\uffff\2\0\1\52\2\uffff\1\104\1\uffff\1\114\1\162\1\157\2\uffff\1\162\1\uffff\1\145\1\164\1\60\1\uffff\1\157\2\uffff\1\170\11\uffff\2\60\1\141\1\142\1\147\1\161\1\160\1\uffff\1\143\1\60\2\uffff\1\155\1\154\1\145\2\165\1\153\1\uffff\1\60\1\145\1\164\1\145\1\164\1\60\1\uffff\1\155\1\60\1\156\1\163\1\uffff\1\123\1\uffff\1\143\1\120\1\151\1\171\1\145\1\172\1\60\1\162\1\145\1\uffff\1\103\1\60\1\171\1\uffff\1\143\1\154\1\145\1\60\1\uffff";
+        "\1\0\1\104\1\125\1\141\2\uffff\1\141\1\uffff\1\162\1\160\1\uffff\1\154\1\uffff\1\60\1\141\3\uffff\1\165\1\uffff\1\101\2\uffff\2\0\1\52\2\uffff\1\104\1\uffff\1\114\1\162\1\157\2\uffff\1\162\1\uffff\1\145\1\164\1\60\1\uffff\1\157\2\uffff\1\170\3\uffff\1\155\6\uffff\2\60\1\141\1\142\1\147\1\161\1\160\1\uffff\1\143\2\60\2\uffff\1\155\1\154\1\145\2\165\1\153\2\uffff\1\60\1\145\1\164\1\145\1\164\1\60\1\uffff\1\155\1\60\1\156\1\163\1\uffff\1\123\1\uffff\1\143\1\120\1\151\1\171\1\145\1\172\1\60\1\162\1\145\1\uffff\1\103\1\60\1\171\1\uffff\1\143\1\154\1\145\1\60\1\uffff";
     static final String DFA12_maxS =
-        "\1\uffff\1\104\1\125\1\162\2\uffff\1\141\1\uffff\1\162\1\165\1\uffff\1\154\1\uffff\1\172\1\141\4\uffff\1\172\2\uffff\2\uffff\1\57\2\uffff\1\104\1\uffff\1\114\1\162\1\157\2\uffff\1\162\1\uffff\1\145\1\164\1\172\1\uffff\1\157\2\uffff\1\170\11\uffff\2\172\1\141\1\142\1\147\1\161\1\160\1\uffff\1\143\1\172\2\uffff\1\155\1\154\1\145\2\165\1\153\1\uffff\1\172\1\145\1\164\1\145\1\164\1\172\1\uffff\1\155\1\172\1\156\1\163\1\uffff\1\123\1\uffff\1\143\1\120\1\151\1\171\1\145\2\172\1\162\1\145\1\uffff\1\103\1\172\1\171\1\uffff\1\143\1\154\1\145\1\172\1\uffff";
+        "\1\uffff\1\104\1\125\1\162\2\uffff\1\141\1\uffff\1\162\1\165\1\uffff\1\154\1\uffff\1\172\1\141\3\uffff\1\165\1\uffff\1\172\2\uffff\2\uffff\1\57\2\uffff\1\104\1\uffff\1\114\1\162\1\157\2\uffff\1\162\1\uffff\1\145\1\164\1\172\1\uffff\1\157\2\uffff\1\170\3\uffff\1\155\6\uffff\2\172\1\141\1\142\1\147\1\161\1\160\1\uffff\1\143\2\172\2\uffff\1\155\1\154\1\145\2\165\1\153\2\uffff\1\172\1\145\1\164\1\145\1\164\1\172\1\uffff\1\155\1\172\1\156\1\163\1\uffff\1\123\1\uffff\1\143\1\120\1\151\1\171\1\145\2\172\1\162\1\145\1\uffff\1\103\1\172\1\171\1\uffff\1\143\1\154\1\145\1\172\1\uffff";
     static final String DFA12_acceptS =
-        "\4\uffff\1\4\1\5\1\uffff\1\7\2\uffff\1\13\1\uffff\1\15\2\uffff\1\21\1\22\1\23\1\24\1\uffff\1\25\1\26\3\uffff\1\32\1\33\1\uffff\1\25\3\uffff\1\4\1\5\1\uffff\1\7\3\uffff\1\13\1\uffff\1\15\1\17\1\uffff\1\21\1\22\1\23\1\24\1\26\1\27\1\30\1\31\1\32\7\uffff\1\16\2\uffff\1\1\1\2\6\uffff\1\20\6\uffff\1\3\4\uffff\1\14\1\uffff\1\6\11\uffff\1\10\3\uffff\1\12\4\uffff\1\11";
+        "\4\uffff\1\4\1\5\1\uffff\1\7\2\uffff\1\13\1\uffff\1\15\2\uffff\1\21\1\22\1\23\1\uffff\1\25\1\uffff\1\26\1\27\3\uffff\1\33\1\34\1\uffff\1\26\3\uffff\1\4\1\5\1\uffff\1\7\3\uffff\1\13\1\uffff\1\15\1\17\1\uffff\1\21\1\22\1\23\1\uffff\1\25\1\27\1\30\1\31\1\32\1\33\7\uffff\1\16\3\uffff\1\1\1\2\6\uffff\1\20\1\24\6\uffff\1\3\4\uffff\1\14\1\uffff\1\6\11\uffff\1\10\3\uffff\1\12\4\uffff\1\11";
     static final String DFA12_specialS =
-        "\1\2\25\uffff\1\1\1\0\121\uffff}>";
+        "\1\1\26\uffff\1\2\1\0\124\uffff}>";
     static final String[] DFA12_transitionS = {
-            "\11\32\2\31\2\32\1\31\22\32\1\31\1\32\1\26\4\32\1\27\1\17\1\20\1\32\1\22\1\21\2\32\1\30\12\25\1\14\1\5\1\32\1\4\3\32\1\1\13\24\1\2\15\24\3\32\1\23\1\24\1\32\1\24\1\13\3\24\1\10\6\24\1\16\1\24\1\11\1\3\3\24\1\6\3\24\1\15\2\24\1\7\1\32\1\12\uff82\32",
-            "\1\33",
-            "\1\35",
-            "\1\36\20\uffff\1\37",
-            "",
+            "\11\33\2\32\2\33\1\32\22\33\1\32\1\33\1\27\4\33\1\30\1\17\1\20\1\33\1\23\1\21\2\33\1\31\12\26\1\14\1\5\1\33\1\4\3\33\1\1\13\25\1\2\15\25\3\33\1\24\1\25\1\33\1\25\1\13\3\25\1\10\6\25\1\16\1\25\1\11\1\3\2\25\1\22\1\6\3\25\1\15\2\25\1\7\1\33\1\12\uff82\33",
+            "\1\34",
+            "\1\36",
+            "\1\37\20\uffff\1\40",
             "",
-            "\1\42",
             "",
-            "\1\44",
-            "\1\46\4\uffff\1\45",
+            "\1\43",
             "",
-            "\1\50",
+            "\1\45",
+            "\1\47\4\uffff\1\46",
             "",
-            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
-            "\1\53",
+            "\1\51",
             "",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\1\54",
             "",
             "",
             "",
-            "\32\34\4\uffff\1\34\1\uffff\32\34",
+            "\1\60",
             "",
+            "\32\35\4\uffff\1\35\1\uffff\32\35",
             "",
-            "\0\61",
-            "\0\61",
-            "\1\62\4\uffff\1\63",
             "",
+            "\0\63",
+            "\0\63",
+            "\1\64\4\uffff\1\65",
             "",
-            "\1\65",
             "",
-            "\1\66",
             "\1\67",
-            "\1\70",
-            "",
             "",
+            "\1\70",
             "\1\71",
-            "",
             "\1\72",
+            "",
+            "",
             "\1\73",
-            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
             "",
+            "\1\74",
             "\1\75",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
             "",
+            "\1\77",
             "",
-            "\1\76",
             "",
+            "\1\100",
             "",
             "",
             "",
+            "\1\101",
             "",
             "",
             "",
             "",
             "",
-            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
-            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
-            "\1\101",
-            "\1\102",
-            "\1\103",
+            "",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
             "\1\104",
             "\1\105",
-            "",
             "\1\106",
-            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
-            "",
-            "",
+            "\1\107",
             "\1\110",
+            "",
             "\1\111",
-            "\1\112",
-            "\1\113",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "",
+            "",
             "\1\114",
             "\1\115",
-            "",
-            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
+            "\1\116",
             "\1\117",
             "\1\120",
             "\1\121",
-            "\1\122",
-            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
             "",
+            "",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\1\123",
             "\1\124",
-            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
+            "\1\125",
             "\1\126",
-            "\1\127",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
             "",
             "\1\130",
-            "",
-            "\1\131",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
             "\1\132",
             "\1\133",
+            "",
             "\1\134",
+            "",
             "\1\135",
             "\1\136",
-            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
+            "\1\137",
             "\1\140",
             "\1\141",
-            "",
             "\1\142",
-            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
             "\1\144",
-            "",
             "\1\145",
+            "",
             "\1\146",
-            "\1\147",
-            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\1\150",
+            "",
+            "\1\151",
+            "\1\152",
+            "\1\153",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
             ""
     };
 
@@ -1313,33 +1346,23 @@ public class InternalComputationLexer extends Lexer {
             this.transition = DFA12_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA12_23 = input.LA(1);
+                        int LA12_24 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA12_23>='\u0000' && LA12_23<='\uFFFF')) ) {s = 49;}
+                        if ( ((LA12_24>='\u0000' && LA12_24<='\uFFFF')) ) {s = 51;}
 
-                        else s = 26;
+                        else s = 27;
 
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA12_22 = input.LA(1);
-
-                        s = -1;
-                        if ( ((LA12_22>='\u0000' && LA12_22<='\uFFFF')) ) {s = 49;}
-
-                        else s = 26;
-
-                        if ( s>=0 ) return s;
-                        break;
-                    case 2 : 
                         int LA12_0 = input.LA(1);
 
                         s = -1;
@@ -1377,23 +1400,35 @@ public class InternalComputationLexer extends Lexer {
 
                         else if ( (LA12_0==',') ) {s = 17;}
 
-                        else if ( (LA12_0=='+') ) {s = 18;}
+                        else if ( (LA12_0=='s') ) {s = 18;}
 
-                        else if ( (LA12_0=='^') ) {s = 19;}
+                        else if ( (LA12_0=='+') ) {s = 19;}
 
-                        else if ( ((LA12_0>='B' && LA12_0<='L')||(LA12_0>='N' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='a'||(LA12_0>='c' && LA12_0<='e')||(LA12_0>='g' && LA12_0<='l')||LA12_0=='n'||(LA12_0>='q' && LA12_0<='s')||(LA12_0>='u' && LA12_0<='w')||(LA12_0>='y' && LA12_0<='z')) ) {s = 20;}
+                        else if ( (LA12_0=='^') ) {s = 20;}
 
-                        else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 21;}
+                        else if ( ((LA12_0>='B' && LA12_0<='L')||(LA12_0>='N' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='a'||(LA12_0>='c' && LA12_0<='e')||(LA12_0>='g' && LA12_0<='l')||LA12_0=='n'||(LA12_0>='q' && LA12_0<='r')||(LA12_0>='u' && LA12_0<='w')||(LA12_0>='y' && LA12_0<='z')) ) {s = 21;}
 
-                        else if ( (LA12_0=='\"') ) {s = 22;}
+                        else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 22;}
 
-                        else if ( (LA12_0=='\'') ) {s = 23;}
+                        else if ( (LA12_0=='\"') ) {s = 23;}
 
-                        else if ( (LA12_0=='/') ) {s = 24;}
+                        else if ( (LA12_0=='\'') ) {s = 24;}
 
-                        else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 25;}
+                        else if ( (LA12_0=='/') ) {s = 25;}
+
+                        else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 26;}
+
+                        else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||LA12_0=='*'||(LA12_0>='-' && LA12_0<='.')||LA12_0=='<'||(LA12_0>='>' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 27;}
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA12_23 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_23>='\u0000' && LA12_23<='\uFFFF')) ) {s = 51;}
 
-                        else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||LA12_0=='*'||(LA12_0>='-' && LA12_0<='.')||LA12_0=='<'||(LA12_0>='>' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 26;}
+                        else s = 27;
 
                         if ( s>=0 ) return s;
                         break;
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputationParser.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputationParser.java
index 7bde495..f3a6987 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputationParser.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputationParser.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
 @SuppressWarnings("all")
 public class InternalComputationParser extends AbstractInternalContentAssistParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'ADD'", "'MUL'", "'param'", "'='", "';'", "'target'", "'{'", "'frequency'", "'outputsPerCycle'", "'problemSize'", "'}'", "'block'", "':'", "'op'", "'x'", "'max'", "'('", "')'", "','", "'+'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'ADD'", "'MUL'", "'param'", "'='", "';'", "'target'", "'{'", "'frequency'", "'outputsPerCycle'", "'problemSize'", "'}'", "'block'", "':'", "'op'", "'x'", "'max'", "'('", "')'", "','", "'sum'", "'+'"
     };
     public static final int RULE_STRING=6;
     public static final int RULE_SL_COMMENT=8;
@@ -37,6 +37,7 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
     public static final int T__14=14;
     public static final int EOF=-1;
     public static final int T__30=30;
+    public static final int T__31=31;
     public static final int RULE_ID=4;
     public static final int RULE_WS=9;
     public static final int RULE_ANY_OTHER=10;
@@ -704,12 +705,89 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
     // $ANTLR end "ruleMaxExpression"
 
 
+    // $ANTLR start "entryRuleSumExpression"
+    // InternalComputation.g:253:1: entryRuleSumExpression : ruleSumExpression EOF ;
+    public final void entryRuleSumExpression() throws RecognitionException {
+        try {
+            // InternalComputation.g:254:1: ( ruleSumExpression EOF )
+            // InternalComputation.g:255:1: ruleSumExpression EOF
+            {
+             before(grammarAccess.getSumExpressionRule()); 
+            pushFollow(FOLLOW_1);
+            ruleSumExpression();
+
+            state._fsp--;
+
+             after(grammarAccess.getSumExpressionRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleSumExpression"
+
+
+    // $ANTLR start "ruleSumExpression"
+    // InternalComputation.g:262:1: ruleSumExpression : ( ( rule__SumExpression__Group__0 ) ) ;
+    public final void ruleSumExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalComputation.g:266:2: ( ( ( rule__SumExpression__Group__0 ) ) )
+            // InternalComputation.g:267:2: ( ( rule__SumExpression__Group__0 ) )
+            {
+            // InternalComputation.g:267:2: ( ( rule__SumExpression__Group__0 ) )
+            // InternalComputation.g:268:3: ( rule__SumExpression__Group__0 )
+            {
+             before(grammarAccess.getSumExpressionAccess().getGroup()); 
+            // InternalComputation.g:269:3: ( rule__SumExpression__Group__0 )
+            // InternalComputation.g:269:4: rule__SumExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__SumExpression__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSumExpressionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleSumExpression"
+
+
     // $ANTLR start "entryRuleTerminalOperandExpression"
-    // InternalComputation.g:253:1: entryRuleTerminalOperandExpression : ruleTerminalOperandExpression EOF ;
+    // InternalComputation.g:278:1: entryRuleTerminalOperandExpression : ruleTerminalOperandExpression EOF ;
     public final void entryRuleTerminalOperandExpression() throws RecognitionException {
         try {
-            // InternalComputation.g:254:1: ( ruleTerminalOperandExpression EOF )
-            // InternalComputation.g:255:1: ruleTerminalOperandExpression EOF
+            // InternalComputation.g:279:1: ( ruleTerminalOperandExpression EOF )
+            // InternalComputation.g:280:1: ruleTerminalOperandExpression EOF
             {
              before(grammarAccess.getTerminalOperandExpressionRule()); 
             pushFollow(FOLLOW_1);
@@ -735,21 +813,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "ruleTerminalOperandExpression"
-    // InternalComputation.g:262:1: ruleTerminalOperandExpression : ( ( rule__TerminalOperandExpression__Alternatives ) ) ;
+    // InternalComputation.g:287:1: ruleTerminalOperandExpression : ( ( rule__TerminalOperandExpression__Alternatives ) ) ;
     public final void ruleTerminalOperandExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:266:2: ( ( ( rule__TerminalOperandExpression__Alternatives ) ) )
-            // InternalComputation.g:267:2: ( ( rule__TerminalOperandExpression__Alternatives ) )
+            // InternalComputation.g:291:2: ( ( ( rule__TerminalOperandExpression__Alternatives ) ) )
+            // InternalComputation.g:292:2: ( ( rule__TerminalOperandExpression__Alternatives ) )
             {
-            // InternalComputation.g:267:2: ( ( rule__TerminalOperandExpression__Alternatives ) )
-            // InternalComputation.g:268:3: ( rule__TerminalOperandExpression__Alternatives )
+            // InternalComputation.g:292:2: ( ( rule__TerminalOperandExpression__Alternatives ) )
+            // InternalComputation.g:293:3: ( rule__TerminalOperandExpression__Alternatives )
             {
              before(grammarAccess.getTerminalOperandExpressionAccess().getAlternatives()); 
-            // InternalComputation.g:269:3: ( rule__TerminalOperandExpression__Alternatives )
-            // InternalComputation.g:269:4: rule__TerminalOperandExpression__Alternatives
+            // InternalComputation.g:294:3: ( rule__TerminalOperandExpression__Alternatives )
+            // InternalComputation.g:294:4: rule__TerminalOperandExpression__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__TerminalOperandExpression__Alternatives();
@@ -782,11 +860,11 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "entryRuleAddExpression"
-    // InternalComputation.g:278:1: entryRuleAddExpression : ruleAddExpression EOF ;
+    // InternalComputation.g:303:1: entryRuleAddExpression : ruleAddExpression EOF ;
     public final void entryRuleAddExpression() throws RecognitionException {
         try {
-            // InternalComputation.g:279:1: ( ruleAddExpression EOF )
-            // InternalComputation.g:280:1: ruleAddExpression EOF
+            // InternalComputation.g:304:1: ( ruleAddExpression EOF )
+            // InternalComputation.g:305:1: ruleAddExpression EOF
             {
              before(grammarAccess.getAddExpressionRule()); 
             pushFollow(FOLLOW_1);
@@ -812,21 +890,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "ruleAddExpression"
-    // InternalComputation.g:287:1: ruleAddExpression : ( ( rule__AddExpression__Group__0 ) ) ;
+    // InternalComputation.g:312:1: ruleAddExpression : ( ( rule__AddExpression__Group__0 ) ) ;
     public final void ruleAddExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:291:2: ( ( ( rule__AddExpression__Group__0 ) ) )
-            // InternalComputation.g:292:2: ( ( rule__AddExpression__Group__0 ) )
+            // InternalComputation.g:316:2: ( ( ( rule__AddExpression__Group__0 ) ) )
+            // InternalComputation.g:317:2: ( ( rule__AddExpression__Group__0 ) )
             {
-            // InternalComputation.g:292:2: ( ( rule__AddExpression__Group__0 ) )
-            // InternalComputation.g:293:3: ( rule__AddExpression__Group__0 )
+            // InternalComputation.g:317:2: ( ( rule__AddExpression__Group__0 ) )
+            // InternalComputation.g:318:3: ( rule__AddExpression__Group__0 )
             {
              before(grammarAccess.getAddExpressionAccess().getGroup()); 
-            // InternalComputation.g:294:3: ( rule__AddExpression__Group__0 )
-            // InternalComputation.g:294:4: rule__AddExpression__Group__0
+            // InternalComputation.g:319:3: ( rule__AddExpression__Group__0 )
+            // InternalComputation.g:319:4: rule__AddExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__AddExpression__Group__0();
@@ -859,11 +937,11 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "entryRuleOperandTerm"
-    // InternalComputation.g:303:1: entryRuleOperandTerm : ruleOperandTerm EOF ;
+    // InternalComputation.g:328:1: entryRuleOperandTerm : ruleOperandTerm EOF ;
     public final void entryRuleOperandTerm() throws RecognitionException {
         try {
-            // InternalComputation.g:304:1: ( ruleOperandTerm EOF )
-            // InternalComputation.g:305:1: ruleOperandTerm EOF
+            // InternalComputation.g:329:1: ( ruleOperandTerm EOF )
+            // InternalComputation.g:330:1: ruleOperandTerm EOF
             {
              before(grammarAccess.getOperandTermRule()); 
             pushFollow(FOLLOW_1);
@@ -889,21 +967,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "ruleOperandTerm"
-    // InternalComputation.g:312:1: ruleOperandTerm : ( ( rule__OperandTerm__Group__0 ) ) ;
+    // InternalComputation.g:337:1: ruleOperandTerm : ( ( rule__OperandTerm__Group__0 ) ) ;
     public final void ruleOperandTerm() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:316:2: ( ( ( rule__OperandTerm__Group__0 ) ) )
-            // InternalComputation.g:317:2: ( ( rule__OperandTerm__Group__0 ) )
+            // InternalComputation.g:341:2: ( ( ( rule__OperandTerm__Group__0 ) ) )
+            // InternalComputation.g:342:2: ( ( rule__OperandTerm__Group__0 ) )
             {
-            // InternalComputation.g:317:2: ( ( rule__OperandTerm__Group__0 ) )
-            // InternalComputation.g:318:3: ( rule__OperandTerm__Group__0 )
+            // InternalComputation.g:342:2: ( ( rule__OperandTerm__Group__0 ) )
+            // InternalComputation.g:343:3: ( rule__OperandTerm__Group__0 )
             {
              before(grammarAccess.getOperandTermAccess().getGroup()); 
-            // InternalComputation.g:319:3: ( rule__OperandTerm__Group__0 )
-            // InternalComputation.g:319:4: rule__OperandTerm__Group__0
+            // InternalComputation.g:344:3: ( rule__OperandTerm__Group__0 )
+            // InternalComputation.g:344:4: rule__OperandTerm__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__OperandTerm__Group__0();
@@ -936,11 +1014,11 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "entryRuleSummationExpression"
-    // InternalComputation.g:328:1: entryRuleSummationExpression : ruleSummationExpression EOF ;
+    // InternalComputation.g:353:1: entryRuleSummationExpression : ruleSummationExpression EOF ;
     public final void entryRuleSummationExpression() throws RecognitionException {
         try {
-            // InternalComputation.g:329:1: ( ruleSummationExpression EOF )
-            // InternalComputation.g:330:1: ruleSummationExpression EOF
+            // InternalComputation.g:354:1: ( ruleSummationExpression EOF )
+            // InternalComputation.g:355:1: ruleSummationExpression EOF
             {
              before(grammarAccess.getSummationExpressionRule()); 
             pushFollow(FOLLOW_1);
@@ -966,21 +1044,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "ruleSummationExpression"
-    // InternalComputation.g:337:1: ruleSummationExpression : ( ( rule__SummationExpression__Alternatives ) ) ;
+    // InternalComputation.g:362:1: ruleSummationExpression : ( ( rule__SummationExpression__Alternatives ) ) ;
     public final void ruleSummationExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:341:2: ( ( ( rule__SummationExpression__Alternatives ) ) )
-            // InternalComputation.g:342:2: ( ( rule__SummationExpression__Alternatives ) )
+            // InternalComputation.g:366:2: ( ( ( rule__SummationExpression__Alternatives ) ) )
+            // InternalComputation.g:367:2: ( ( rule__SummationExpression__Alternatives ) )
             {
-            // InternalComputation.g:342:2: ( ( rule__SummationExpression__Alternatives ) )
-            // InternalComputation.g:343:3: ( rule__SummationExpression__Alternatives )
+            // InternalComputation.g:367:2: ( ( rule__SummationExpression__Alternatives ) )
+            // InternalComputation.g:368:3: ( rule__SummationExpression__Alternatives )
             {
              before(grammarAccess.getSummationExpressionAccess().getAlternatives()); 
-            // InternalComputation.g:344:3: ( rule__SummationExpression__Alternatives )
-            // InternalComputation.g:344:4: rule__SummationExpression__Alternatives
+            // InternalComputation.g:369:3: ( rule__SummationExpression__Alternatives )
+            // InternalComputation.g:369:4: rule__SummationExpression__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__SummationExpression__Alternatives();
@@ -1013,11 +1091,11 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "entryRuleProductExpression"
-    // InternalComputation.g:353:1: entryRuleProductExpression : ruleProductExpression EOF ;
+    // InternalComputation.g:378:1: entryRuleProductExpression : ruleProductExpression EOF ;
     public final void entryRuleProductExpression() throws RecognitionException {
         try {
-            // InternalComputation.g:354:1: ( ruleProductExpression EOF )
-            // InternalComputation.g:355:1: ruleProductExpression EOF
+            // InternalComputation.g:379:1: ( ruleProductExpression EOF )
+            // InternalComputation.g:380:1: ruleProductExpression EOF
             {
              before(grammarAccess.getProductExpressionRule()); 
             pushFollow(FOLLOW_1);
@@ -1043,21 +1121,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "ruleProductExpression"
-    // InternalComputation.g:362:1: ruleProductExpression : ( ( rule__ProductExpression__Group__0 ) ) ;
+    // InternalComputation.g:387:1: ruleProductExpression : ( ( rule__ProductExpression__Group__0 ) ) ;
     public final void ruleProductExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:366:2: ( ( ( rule__ProductExpression__Group__0 ) ) )
-            // InternalComputation.g:367:2: ( ( rule__ProductExpression__Group__0 ) )
+            // InternalComputation.g:391:2: ( ( ( rule__ProductExpression__Group__0 ) ) )
+            // InternalComputation.g:392:2: ( ( rule__ProductExpression__Group__0 ) )
             {
-            // InternalComputation.g:367:2: ( ( rule__ProductExpression__Group__0 ) )
-            // InternalComputation.g:368:3: ( rule__ProductExpression__Group__0 )
+            // InternalComputation.g:392:2: ( ( rule__ProductExpression__Group__0 ) )
+            // InternalComputation.g:393:3: ( rule__ProductExpression__Group__0 )
             {
              before(grammarAccess.getProductExpressionAccess().getGroup()); 
-            // InternalComputation.g:369:3: ( rule__ProductExpression__Group__0 )
-            // InternalComputation.g:369:4: rule__ProductExpression__Group__0
+            // InternalComputation.g:394:3: ( rule__ProductExpression__Group__0 )
+            // InternalComputation.g:394:4: rule__ProductExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ProductExpression__Group__0();
@@ -1090,13 +1168,13 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__OP__Alternatives"
-    // InternalComputation.g:377:1: rule__OP__Alternatives : ( ( 'ADD' ) | ( 'MUL' ) );
+    // InternalComputation.g:402:1: rule__OP__Alternatives : ( ( 'ADD' ) | ( 'MUL' ) );
     public final void rule__OP__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:381:1: ( ( 'ADD' ) | ( 'MUL' ) )
+            // InternalComputation.g:406:1: ( ( 'ADD' ) | ( 'MUL' ) )
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -1114,10 +1192,10 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
             }
             switch (alt1) {
                 case 1 :
-                    // InternalComputation.g:382:2: ( 'ADD' )
+                    // InternalComputation.g:407:2: ( 'ADD' )
                     {
-                    // InternalComputation.g:382:2: ( 'ADD' )
-                    // InternalComputation.g:383:3: 'ADD'
+                    // InternalComputation.g:407:2: ( 'ADD' )
+                    // InternalComputation.g:408:3: 'ADD'
                     {
                      before(grammarAccess.getOPAccess().getADDKeyword_0()); 
                     match(input,11,FOLLOW_2); 
@@ -1129,10 +1207,10 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
                     }
                     break;
                 case 2 :
-                    // InternalComputation.g:388:2: ( 'MUL' )
+                    // InternalComputation.g:413:2: ( 'MUL' )
                     {
-                    // InternalComputation.g:388:2: ( 'MUL' )
-                    // InternalComputation.g:389:3: 'MUL'
+                    // InternalComputation.g:413:2: ( 'MUL' )
+                    // InternalComputation.g:414:3: 'MUL'
                     {
                      before(grammarAccess.getOPAccess().getMULKeyword_1()); 
                     match(input,12,FOLLOW_2); 
@@ -1161,42 +1239,53 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__OperandExpression__Alternatives"
-    // InternalComputation.g:398:1: rule__OperandExpression__Alternatives : ( ( ruleMaxExpression ) | ( ruleTerminalOperandExpression ) );
+    // InternalComputation.g:423:1: rule__OperandExpression__Alternatives : ( ( ruleSumExpression ) | ( ruleMaxExpression ) | ( ruleTerminalOperandExpression ) );
     public final void rule__OperandExpression__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:402:1: ( ( ruleMaxExpression ) | ( ruleTerminalOperandExpression ) )
-            int alt2=2;
-            int LA2_0 = input.LA(1);
-
-            if ( (LA2_0==26) ) {
+            // InternalComputation.g:427:1: ( ( ruleSumExpression ) | ( ruleMaxExpression ) | ( ruleTerminalOperandExpression ) )
+            int alt2=3;
+            switch ( input.LA(1) ) {
+            case 30:
+                {
                 alt2=1;
-            }
-            else if ( ((LA2_0>=RULE_ID && LA2_0<=RULE_INT)||LA2_0==27) ) {
+                }
+                break;
+            case 26:
+                {
                 alt2=2;
-            }
-            else {
+                }
+                break;
+            case RULE_ID:
+            case RULE_INT:
+            case 27:
+                {
+                alt2=3;
+                }
+                break;
+            default:
                 NoViableAltException nvae =
                     new NoViableAltException("", 2, 0, input);
 
                 throw nvae;
             }
+
             switch (alt2) {
                 case 1 :
-                    // InternalComputation.g:403:2: ( ruleMaxExpression )
+                    // InternalComputation.g:428:2: ( ruleSumExpression )
                     {
-                    // InternalComputation.g:403:2: ( ruleMaxExpression )
-                    // InternalComputation.g:404:3: ruleMaxExpression
+                    // InternalComputation.g:428:2: ( ruleSumExpression )
+                    // InternalComputation.g:429:3: ruleSumExpression
                     {
-                     before(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_0()); 
+                     before(grammarAccess.getOperandExpressionAccess().getSumExpressionParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
-                    ruleMaxExpression();
+                    ruleSumExpression();
 
                     state._fsp--;
 
-                     after(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_0()); 
+                     after(grammarAccess.getOperandExpressionAccess().getSumExpressionParserRuleCall_0()); 
 
                     }
 
@@ -1204,18 +1293,37 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
                     }
                     break;
                 case 2 :
-                    // InternalComputation.g:409:2: ( ruleTerminalOperandExpression )
+                    // InternalComputation.g:434:2: ( ruleMaxExpression )
                     {
-                    // InternalComputation.g:409:2: ( ruleTerminalOperandExpression )
-                    // InternalComputation.g:410:3: ruleTerminalOperandExpression
+                    // InternalComputation.g:434:2: ( ruleMaxExpression )
+                    // InternalComputation.g:435:3: ruleMaxExpression
                     {
-                     before(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_1()); 
+                     before(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_1()); 
+                    pushFollow(FOLLOW_2);
+                    ruleMaxExpression();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalComputation.g:440:2: ( ruleTerminalOperandExpression )
+                    {
+                    // InternalComputation.g:440:2: ( ruleTerminalOperandExpression )
+                    // InternalComputation.g:441:3: ruleTerminalOperandExpression
+                    {
+                     before(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_2()); 
                     pushFollow(FOLLOW_2);
                     ruleTerminalOperandExpression();
 
                     state._fsp--;
 
-                     after(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_1()); 
+                     after(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_2()); 
 
                     }
 
@@ -1240,13 +1348,13 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__TerminalOperandExpression__Alternatives"
-    // InternalComputation.g:419:1: rule__TerminalOperandExpression__Alternatives : ( ( ruleAddExpression ) | ( ruleOperandTerm ) );
+    // InternalComputation.g:450:1: rule__TerminalOperandExpression__Alternatives : ( ( ruleAddExpression ) | ( ruleOperandTerm ) );
     public final void rule__TerminalOperandExpression__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:423:1: ( ( ruleAddExpression ) | ( ruleOperandTerm ) )
+            // InternalComputation.g:454:1: ( ( ruleAddExpression ) | ( ruleOperandTerm ) )
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -1264,10 +1372,10 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
             }
             switch (alt3) {
                 case 1 :
-                    // InternalComputation.g:424:2: ( ruleAddExpression )
+                    // InternalComputation.g:455:2: ( ruleAddExpression )
                     {
-                    // InternalComputation.g:424:2: ( ruleAddExpression )
-                    // InternalComputation.g:425:3: ruleAddExpression
+                    // InternalComputation.g:455:2: ( ruleAddExpression )
+                    // InternalComputation.g:456:3: ruleAddExpression
                     {
                      before(grammarAccess.getTerminalOperandExpressionAccess().getAddExpressionParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -1283,10 +1391,10 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
                     }
                     break;
                 case 2 :
-                    // InternalComputation.g:430:2: ( ruleOperandTerm )
+                    // InternalComputation.g:461:2: ( ruleOperandTerm )
                     {
-                    // InternalComputation.g:430:2: ( ruleOperandTerm )
-                    // InternalComputation.g:431:3: ruleOperandTerm
+                    // InternalComputation.g:461:2: ( ruleOperandTerm )
+                    // InternalComputation.g:462:3: ruleOperandTerm
                     {
                      before(grammarAccess.getTerminalOperandExpressionAccess().getOperandTermParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -1319,25 +1427,25 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Alternatives"
-    // InternalComputation.g:440:1: rule__SummationExpression__Alternatives : ( ( ( rule__SummationExpression__Group_0__0 ) ) | ( ( rule__SummationExpression__ConstantAssignment_1 ) ) );
+    // InternalComputation.g:471:1: rule__SummationExpression__Alternatives : ( ( ( rule__SummationExpression__Group_0__0 ) ) | ( ( rule__SummationExpression__ConstantAssignment_1 ) ) );
     public final void rule__SummationExpression__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:444:1: ( ( ( rule__SummationExpression__Group_0__0 ) ) | ( ( rule__SummationExpression__ConstantAssignment_1 ) ) )
+            // InternalComputation.g:475:1: ( ( ( rule__SummationExpression__Group_0__0 ) ) | ( ( rule__SummationExpression__ConstantAssignment_1 ) ) )
             int alt4=2;
             int LA4_0 = input.LA(1);
 
             if ( (LA4_0==RULE_INT) ) {
                 int LA4_1 = input.LA(2);
 
-                if ( (LA4_1==EOF||LA4_1==15||LA4_1==21) ) {
-                    alt4=2;
-                }
-                else if ( (LA4_1==RULE_ID) ) {
+                if ( (LA4_1==RULE_ID) ) {
                     alt4=1;
                 }
+                else if ( (LA4_1==EOF||LA4_1==15||LA4_1==21) ) {
+                    alt4=2;
+                }
                 else {
                     NoViableAltException nvae =
                         new NoViableAltException("", 4, 1, input);
@@ -1356,14 +1464,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
             }
             switch (alt4) {
                 case 1 :
-                    // InternalComputation.g:445:2: ( ( rule__SummationExpression__Group_0__0 ) )
+                    // InternalComputation.g:476:2: ( ( rule__SummationExpression__Group_0__0 ) )
                     {
-                    // InternalComputation.g:445:2: ( ( rule__SummationExpression__Group_0__0 ) )
-                    // InternalComputation.g:446:3: ( rule__SummationExpression__Group_0__0 )
+                    // InternalComputation.g:476:2: ( ( rule__SummationExpression__Group_0__0 ) )
+                    // InternalComputation.g:477:3: ( rule__SummationExpression__Group_0__0 )
                     {
                      before(grammarAccess.getSummationExpressionAccess().getGroup_0()); 
-                    // InternalComputation.g:447:3: ( rule__SummationExpression__Group_0__0 )
-                    // InternalComputation.g:447:4: rule__SummationExpression__Group_0__0
+                    // InternalComputation.g:478:3: ( rule__SummationExpression__Group_0__0 )
+                    // InternalComputation.g:478:4: rule__SummationExpression__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__SummationExpression__Group_0__0();
@@ -1381,14 +1489,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
                     }
                     break;
                 case 2 :
-                    // InternalComputation.g:451:2: ( ( rule__SummationExpression__ConstantAssignment_1 ) )
+                    // InternalComputation.g:482:2: ( ( rule__SummationExpression__ConstantAssignment_1 ) )
                     {
-                    // InternalComputation.g:451:2: ( ( rule__SummationExpression__ConstantAssignment_1 ) )
-                    // InternalComputation.g:452:3: ( rule__SummationExpression__ConstantAssignment_1 )
+                    // InternalComputation.g:482:2: ( ( rule__SummationExpression__ConstantAssignment_1 ) )
+                    // InternalComputation.g:483:3: ( rule__SummationExpression__ConstantAssignment_1 )
                     {
                      before(grammarAccess.getSummationExpressionAccess().getConstantAssignment_1()); 
-                    // InternalComputation.g:453:3: ( rule__SummationExpression__ConstantAssignment_1 )
-                    // InternalComputation.g:453:4: rule__SummationExpression__ConstantAssignment_1
+                    // InternalComputation.g:484:3: ( rule__SummationExpression__ConstantAssignment_1 )
+                    // InternalComputation.g:484:4: rule__SummationExpression__ConstantAssignment_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__SummationExpression__ConstantAssignment_1();
@@ -1423,14 +1531,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationModel__Group__0"
-    // InternalComputation.g:461:1: rule__ComputationModel__Group__0 : rule__ComputationModel__Group__0__Impl rule__ComputationModel__Group__1 ;
+    // InternalComputation.g:492:1: rule__ComputationModel__Group__0 : rule__ComputationModel__Group__0__Impl rule__ComputationModel__Group__1 ;
     public final void rule__ComputationModel__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:465:1: ( rule__ComputationModel__Group__0__Impl rule__ComputationModel__Group__1 )
-            // InternalComputation.g:466:2: rule__ComputationModel__Group__0__Impl rule__ComputationModel__Group__1
+            // InternalComputation.g:496:1: ( rule__ComputationModel__Group__0__Impl rule__ComputationModel__Group__1 )
+            // InternalComputation.g:497:2: rule__ComputationModel__Group__0__Impl rule__ComputationModel__Group__1
             {
             pushFollow(FOLLOW_3);
             rule__ComputationModel__Group__0__Impl();
@@ -1461,20 +1569,20 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationModel__Group__0__Impl"
-    // InternalComputation.g:473:1: rule__ComputationModel__Group__0__Impl : ( ( rule__ComputationModel__ParametersAssignment_0 )* ) ;
+    // InternalComputation.g:504:1: rule__ComputationModel__Group__0__Impl : ( ( rule__ComputationModel__ParametersAssignment_0 )* ) ;
     public final void rule__ComputationModel__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:477:1: ( ( ( rule__ComputationModel__ParametersAssignment_0 )* ) )
-            // InternalComputation.g:478:1: ( ( rule__ComputationModel__ParametersAssignment_0 )* )
+            // InternalComputation.g:508:1: ( ( ( rule__ComputationModel__ParametersAssignment_0 )* ) )
+            // InternalComputation.g:509:1: ( ( rule__ComputationModel__ParametersAssignment_0 )* )
             {
-            // InternalComputation.g:478:1: ( ( rule__ComputationModel__ParametersAssignment_0 )* )
-            // InternalComputation.g:479:2: ( rule__ComputationModel__ParametersAssignment_0 )*
+            // InternalComputation.g:509:1: ( ( rule__ComputationModel__ParametersAssignment_0 )* )
+            // InternalComputation.g:510:2: ( rule__ComputationModel__ParametersAssignment_0 )*
             {
              before(grammarAccess.getComputationModelAccess().getParametersAssignment_0()); 
-            // InternalComputation.g:480:2: ( rule__ComputationModel__ParametersAssignment_0 )*
+            // InternalComputation.g:511:2: ( rule__ComputationModel__ParametersAssignment_0 )*
             loop5:
             do {
                 int alt5=2;
@@ -1487,7 +1595,7 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
                 switch (alt5) {
             	case 1 :
-            	    // InternalComputation.g:480:3: rule__ComputationModel__ParametersAssignment_0
+            	    // InternalComputation.g:511:3: rule__ComputationModel__ParametersAssignment_0
             	    {
             	    pushFollow(FOLLOW_4);
             	    rule__ComputationModel__ParametersAssignment_0();
@@ -1526,14 +1634,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationModel__Group__1"
-    // InternalComputation.g:488:1: rule__ComputationModel__Group__1 : rule__ComputationModel__Group__1__Impl rule__ComputationModel__Group__2 ;
+    // InternalComputation.g:519:1: rule__ComputationModel__Group__1 : rule__ComputationModel__Group__1__Impl rule__ComputationModel__Group__2 ;
     public final void rule__ComputationModel__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:492:1: ( rule__ComputationModel__Group__1__Impl rule__ComputationModel__Group__2 )
-            // InternalComputation.g:493:2: rule__ComputationModel__Group__1__Impl rule__ComputationModel__Group__2
+            // InternalComputation.g:523:1: ( rule__ComputationModel__Group__1__Impl rule__ComputationModel__Group__2 )
+            // InternalComputation.g:524:2: rule__ComputationModel__Group__1__Impl rule__ComputationModel__Group__2
             {
             pushFollow(FOLLOW_5);
             rule__ComputationModel__Group__1__Impl();
@@ -1564,21 +1672,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationModel__Group__1__Impl"
-    // InternalComputation.g:500:1: rule__ComputationModel__Group__1__Impl : ( ( rule__ComputationModel__TargetDesignAssignment_1 ) ) ;
+    // InternalComputation.g:531:1: rule__ComputationModel__Group__1__Impl : ( ( rule__ComputationModel__TargetDesignAssignment_1 ) ) ;
     public final void rule__ComputationModel__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:504:1: ( ( ( rule__ComputationModel__TargetDesignAssignment_1 ) ) )
-            // InternalComputation.g:505:1: ( ( rule__ComputationModel__TargetDesignAssignment_1 ) )
+            // InternalComputation.g:535:1: ( ( ( rule__ComputationModel__TargetDesignAssignment_1 ) ) )
+            // InternalComputation.g:536:1: ( ( rule__ComputationModel__TargetDesignAssignment_1 ) )
             {
-            // InternalComputation.g:505:1: ( ( rule__ComputationModel__TargetDesignAssignment_1 ) )
-            // InternalComputation.g:506:2: ( rule__ComputationModel__TargetDesignAssignment_1 )
+            // InternalComputation.g:536:1: ( ( rule__ComputationModel__TargetDesignAssignment_1 ) )
+            // InternalComputation.g:537:2: ( rule__ComputationModel__TargetDesignAssignment_1 )
             {
              before(grammarAccess.getComputationModelAccess().getTargetDesignAssignment_1()); 
-            // InternalComputation.g:507:2: ( rule__ComputationModel__TargetDesignAssignment_1 )
-            // InternalComputation.g:507:3: rule__ComputationModel__TargetDesignAssignment_1
+            // InternalComputation.g:538:2: ( rule__ComputationModel__TargetDesignAssignment_1 )
+            // InternalComputation.g:538:3: rule__ComputationModel__TargetDesignAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ComputationModel__TargetDesignAssignment_1();
@@ -1611,14 +1719,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationModel__Group__2"
-    // InternalComputation.g:515:1: rule__ComputationModel__Group__2 : rule__ComputationModel__Group__2__Impl ;
+    // InternalComputation.g:546:1: rule__ComputationModel__Group__2 : rule__ComputationModel__Group__2__Impl ;
     public final void rule__ComputationModel__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:519:1: ( rule__ComputationModel__Group__2__Impl )
-            // InternalComputation.g:520:2: rule__ComputationModel__Group__2__Impl
+            // InternalComputation.g:550:1: ( rule__ComputationModel__Group__2__Impl )
+            // InternalComputation.g:551:2: rule__ComputationModel__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ComputationModel__Group__2__Impl();
@@ -1644,24 +1752,24 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationModel__Group__2__Impl"
-    // InternalComputation.g:526:1: rule__ComputationModel__Group__2__Impl : ( ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* ) ) ;
+    // InternalComputation.g:557:1: rule__ComputationModel__Group__2__Impl : ( ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* ) ) ;
     public final void rule__ComputationModel__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:530:1: ( ( ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* ) ) )
-            // InternalComputation.g:531:1: ( ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* ) )
+            // InternalComputation.g:561:1: ( ( ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* ) ) )
+            // InternalComputation.g:562:1: ( ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* ) )
             {
-            // InternalComputation.g:531:1: ( ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* ) )
-            // InternalComputation.g:532:2: ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* )
+            // InternalComputation.g:562:1: ( ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* ) )
+            // InternalComputation.g:563:2: ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* )
             {
-            // InternalComputation.g:532:2: ( ( rule__ComputationModel__BlocksAssignment_2 ) )
-            // InternalComputation.g:533:3: ( rule__ComputationModel__BlocksAssignment_2 )
+            // InternalComputation.g:563:2: ( ( rule__ComputationModel__BlocksAssignment_2 ) )
+            // InternalComputation.g:564:3: ( rule__ComputationModel__BlocksAssignment_2 )
             {
              before(grammarAccess.getComputationModelAccess().getBlocksAssignment_2()); 
-            // InternalComputation.g:534:3: ( rule__ComputationModel__BlocksAssignment_2 )
-            // InternalComputation.g:534:4: rule__ComputationModel__BlocksAssignment_2
+            // InternalComputation.g:565:3: ( rule__ComputationModel__BlocksAssignment_2 )
+            // InternalComputation.g:565:4: rule__ComputationModel__BlocksAssignment_2
             {
             pushFollow(FOLLOW_6);
             rule__ComputationModel__BlocksAssignment_2();
@@ -1675,11 +1783,11 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
             }
 
-            // InternalComputation.g:537:2: ( ( rule__ComputationModel__BlocksAssignment_2 )* )
-            // InternalComputation.g:538:3: ( rule__ComputationModel__BlocksAssignment_2 )*
+            // InternalComputation.g:568:2: ( ( rule__ComputationModel__BlocksAssignment_2 )* )
+            // InternalComputation.g:569:3: ( rule__ComputationModel__BlocksAssignment_2 )*
             {
              before(grammarAccess.getComputationModelAccess().getBlocksAssignment_2()); 
-            // InternalComputation.g:539:3: ( rule__ComputationModel__BlocksAssignment_2 )*
+            // InternalComputation.g:570:3: ( rule__ComputationModel__BlocksAssignment_2 )*
             loop6:
             do {
                 int alt6=2;
@@ -1692,7 +1800,7 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
                 switch (alt6) {
             	case 1 :
-            	    // InternalComputation.g:539:4: rule__ComputationModel__BlocksAssignment_2
+            	    // InternalComputation.g:570:4: rule__ComputationModel__BlocksAssignment_2
             	    {
             	    pushFollow(FOLLOW_6);
             	    rule__ComputationModel__BlocksAssignment_2();
@@ -1734,14 +1842,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__0"
-    // InternalComputation.g:549:1: rule__Parameter__Group__0 : rule__Parameter__Group__0__Impl rule__Parameter__Group__1 ;
+    // InternalComputation.g:580:1: rule__Parameter__Group__0 : rule__Parameter__Group__0__Impl rule__Parameter__Group__1 ;
     public final void rule__Parameter__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:553:1: ( rule__Parameter__Group__0__Impl rule__Parameter__Group__1 )
-            // InternalComputation.g:554:2: rule__Parameter__Group__0__Impl rule__Parameter__Group__1
+            // InternalComputation.g:584:1: ( rule__Parameter__Group__0__Impl rule__Parameter__Group__1 )
+            // InternalComputation.g:585:2: rule__Parameter__Group__0__Impl rule__Parameter__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__Parameter__Group__0__Impl();
@@ -1772,17 +1880,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__0__Impl"
-    // InternalComputation.g:561:1: rule__Parameter__Group__0__Impl : ( 'param' ) ;
+    // InternalComputation.g:592:1: rule__Parameter__Group__0__Impl : ( 'param' ) ;
     public final void rule__Parameter__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:565:1: ( ( 'param' ) )
-            // InternalComputation.g:566:1: ( 'param' )
+            // InternalComputation.g:596:1: ( ( 'param' ) )
+            // InternalComputation.g:597:1: ( 'param' )
             {
-            // InternalComputation.g:566:1: ( 'param' )
-            // InternalComputation.g:567:2: 'param'
+            // InternalComputation.g:597:1: ( 'param' )
+            // InternalComputation.g:598:2: 'param'
             {
              before(grammarAccess.getParameterAccess().getParamKeyword_0()); 
             match(input,13,FOLLOW_2); 
@@ -1809,14 +1917,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__1"
-    // InternalComputation.g:576:1: rule__Parameter__Group__1 : rule__Parameter__Group__1__Impl rule__Parameter__Group__2 ;
+    // InternalComputation.g:607:1: rule__Parameter__Group__1 : rule__Parameter__Group__1__Impl rule__Parameter__Group__2 ;
     public final void rule__Parameter__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:580:1: ( rule__Parameter__Group__1__Impl rule__Parameter__Group__2 )
-            // InternalComputation.g:581:2: rule__Parameter__Group__1__Impl rule__Parameter__Group__2
+            // InternalComputation.g:611:1: ( rule__Parameter__Group__1__Impl rule__Parameter__Group__2 )
+            // InternalComputation.g:612:2: rule__Parameter__Group__1__Impl rule__Parameter__Group__2
             {
             pushFollow(FOLLOW_8);
             rule__Parameter__Group__1__Impl();
@@ -1847,21 +1955,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__1__Impl"
-    // InternalComputation.g:588:1: rule__Parameter__Group__1__Impl : ( ( rule__Parameter__NameAssignment_1 ) ) ;
+    // InternalComputation.g:619:1: rule__Parameter__Group__1__Impl : ( ( rule__Parameter__NameAssignment_1 ) ) ;
     public final void rule__Parameter__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:592:1: ( ( ( rule__Parameter__NameAssignment_1 ) ) )
-            // InternalComputation.g:593:1: ( ( rule__Parameter__NameAssignment_1 ) )
+            // InternalComputation.g:623:1: ( ( ( rule__Parameter__NameAssignment_1 ) ) )
+            // InternalComputation.g:624:1: ( ( rule__Parameter__NameAssignment_1 ) )
             {
-            // InternalComputation.g:593:1: ( ( rule__Parameter__NameAssignment_1 ) )
-            // InternalComputation.g:594:2: ( rule__Parameter__NameAssignment_1 )
+            // InternalComputation.g:624:1: ( ( rule__Parameter__NameAssignment_1 ) )
+            // InternalComputation.g:625:2: ( rule__Parameter__NameAssignment_1 )
             {
              before(grammarAccess.getParameterAccess().getNameAssignment_1()); 
-            // InternalComputation.g:595:2: ( rule__Parameter__NameAssignment_1 )
-            // InternalComputation.g:595:3: rule__Parameter__NameAssignment_1
+            // InternalComputation.g:626:2: ( rule__Parameter__NameAssignment_1 )
+            // InternalComputation.g:626:3: rule__Parameter__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__Parameter__NameAssignment_1();
@@ -1894,14 +2002,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__2"
-    // InternalComputation.g:603:1: rule__Parameter__Group__2 : rule__Parameter__Group__2__Impl rule__Parameter__Group__3 ;
+    // InternalComputation.g:634:1: rule__Parameter__Group__2 : rule__Parameter__Group__2__Impl rule__Parameter__Group__3 ;
     public final void rule__Parameter__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:607:1: ( rule__Parameter__Group__2__Impl rule__Parameter__Group__3 )
-            // InternalComputation.g:608:2: rule__Parameter__Group__2__Impl rule__Parameter__Group__3
+            // InternalComputation.g:638:1: ( rule__Parameter__Group__2__Impl rule__Parameter__Group__3 )
+            // InternalComputation.g:639:2: rule__Parameter__Group__2__Impl rule__Parameter__Group__3
             {
             pushFollow(FOLLOW_9);
             rule__Parameter__Group__2__Impl();
@@ -1932,17 +2040,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__2__Impl"
-    // InternalComputation.g:615:1: rule__Parameter__Group__2__Impl : ( '=' ) ;
+    // InternalComputation.g:646:1: rule__Parameter__Group__2__Impl : ( '=' ) ;
     public final void rule__Parameter__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:619:1: ( ( '=' ) )
-            // InternalComputation.g:620:1: ( '=' )
+            // InternalComputation.g:650:1: ( ( '=' ) )
+            // InternalComputation.g:651:1: ( '=' )
             {
-            // InternalComputation.g:620:1: ( '=' )
-            // InternalComputation.g:621:2: '='
+            // InternalComputation.g:651:1: ( '=' )
+            // InternalComputation.g:652:2: '='
             {
              before(grammarAccess.getParameterAccess().getEqualsSignKeyword_2()); 
             match(input,14,FOLLOW_2); 
@@ -1969,14 +2077,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__3"
-    // InternalComputation.g:630:1: rule__Parameter__Group__3 : rule__Parameter__Group__3__Impl rule__Parameter__Group__4 ;
+    // InternalComputation.g:661:1: rule__Parameter__Group__3 : rule__Parameter__Group__3__Impl rule__Parameter__Group__4 ;
     public final void rule__Parameter__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:634:1: ( rule__Parameter__Group__3__Impl rule__Parameter__Group__4 )
-            // InternalComputation.g:635:2: rule__Parameter__Group__3__Impl rule__Parameter__Group__4
+            // InternalComputation.g:665:1: ( rule__Parameter__Group__3__Impl rule__Parameter__Group__4 )
+            // InternalComputation.g:666:2: rule__Parameter__Group__3__Impl rule__Parameter__Group__4
             {
             pushFollow(FOLLOW_10);
             rule__Parameter__Group__3__Impl();
@@ -2007,21 +2115,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__3__Impl"
-    // InternalComputation.g:642:1: rule__Parameter__Group__3__Impl : ( ( rule__Parameter__ValueAssignment_3 ) ) ;
+    // InternalComputation.g:673:1: rule__Parameter__Group__3__Impl : ( ( rule__Parameter__ValueAssignment_3 ) ) ;
     public final void rule__Parameter__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:646:1: ( ( ( rule__Parameter__ValueAssignment_3 ) ) )
-            // InternalComputation.g:647:1: ( ( rule__Parameter__ValueAssignment_3 ) )
+            // InternalComputation.g:677:1: ( ( ( rule__Parameter__ValueAssignment_3 ) ) )
+            // InternalComputation.g:678:1: ( ( rule__Parameter__ValueAssignment_3 ) )
             {
-            // InternalComputation.g:647:1: ( ( rule__Parameter__ValueAssignment_3 ) )
-            // InternalComputation.g:648:2: ( rule__Parameter__ValueAssignment_3 )
+            // InternalComputation.g:678:1: ( ( rule__Parameter__ValueAssignment_3 ) )
+            // InternalComputation.g:679:2: ( rule__Parameter__ValueAssignment_3 )
             {
              before(grammarAccess.getParameterAccess().getValueAssignment_3()); 
-            // InternalComputation.g:649:2: ( rule__Parameter__ValueAssignment_3 )
-            // InternalComputation.g:649:3: rule__Parameter__ValueAssignment_3
+            // InternalComputation.g:680:2: ( rule__Parameter__ValueAssignment_3 )
+            // InternalComputation.g:680:3: rule__Parameter__ValueAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__Parameter__ValueAssignment_3();
@@ -2054,14 +2162,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__4"
-    // InternalComputation.g:657:1: rule__Parameter__Group__4 : rule__Parameter__Group__4__Impl ;
+    // InternalComputation.g:688:1: rule__Parameter__Group__4 : rule__Parameter__Group__4__Impl ;
     public final void rule__Parameter__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:661:1: ( rule__Parameter__Group__4__Impl )
-            // InternalComputation.g:662:2: rule__Parameter__Group__4__Impl
+            // InternalComputation.g:692:1: ( rule__Parameter__Group__4__Impl )
+            // InternalComputation.g:693:2: rule__Parameter__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Parameter__Group__4__Impl();
@@ -2087,17 +2195,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__4__Impl"
-    // InternalComputation.g:668:1: rule__Parameter__Group__4__Impl : ( ';' ) ;
+    // InternalComputation.g:699:1: rule__Parameter__Group__4__Impl : ( ';' ) ;
     public final void rule__Parameter__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:672:1: ( ( ';' ) )
-            // InternalComputation.g:673:1: ( ';' )
+            // InternalComputation.g:703:1: ( ( ';' ) )
+            // InternalComputation.g:704:1: ( ';' )
             {
-            // InternalComputation.g:673:1: ( ';' )
-            // InternalComputation.g:674:2: ';'
+            // InternalComputation.g:704:1: ( ';' )
+            // InternalComputation.g:705:2: ';'
             {
              before(grammarAccess.getParameterAccess().getSemicolonKeyword_4()); 
             match(input,15,FOLLOW_2); 
@@ -2124,14 +2232,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__0"
-    // InternalComputation.g:684:1: rule__HWTargetDesign__Group__0 : rule__HWTargetDesign__Group__0__Impl rule__HWTargetDesign__Group__1 ;
+    // InternalComputation.g:715:1: rule__HWTargetDesign__Group__0 : rule__HWTargetDesign__Group__0__Impl rule__HWTargetDesign__Group__1 ;
     public final void rule__HWTargetDesign__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:688:1: ( rule__HWTargetDesign__Group__0__Impl rule__HWTargetDesign__Group__1 )
-            // InternalComputation.g:689:2: rule__HWTargetDesign__Group__0__Impl rule__HWTargetDesign__Group__1
+            // InternalComputation.g:719:1: ( rule__HWTargetDesign__Group__0__Impl rule__HWTargetDesign__Group__1 )
+            // InternalComputation.g:720:2: rule__HWTargetDesign__Group__0__Impl rule__HWTargetDesign__Group__1
             {
             pushFollow(FOLLOW_11);
             rule__HWTargetDesign__Group__0__Impl();
@@ -2162,17 +2270,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__0__Impl"
-    // InternalComputation.g:696:1: rule__HWTargetDesign__Group__0__Impl : ( 'target' ) ;
+    // InternalComputation.g:727:1: rule__HWTargetDesign__Group__0__Impl : ( 'target' ) ;
     public final void rule__HWTargetDesign__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:700:1: ( ( 'target' ) )
-            // InternalComputation.g:701:1: ( 'target' )
+            // InternalComputation.g:731:1: ( ( 'target' ) )
+            // InternalComputation.g:732:1: ( 'target' )
             {
-            // InternalComputation.g:701:1: ( 'target' )
-            // InternalComputation.g:702:2: 'target'
+            // InternalComputation.g:732:1: ( 'target' )
+            // InternalComputation.g:733:2: 'target'
             {
              before(grammarAccess.getHWTargetDesignAccess().getTargetKeyword_0()); 
             match(input,16,FOLLOW_2); 
@@ -2199,14 +2307,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__1"
-    // InternalComputation.g:711:1: rule__HWTargetDesign__Group__1 : rule__HWTargetDesign__Group__1__Impl rule__HWTargetDesign__Group__2 ;
+    // InternalComputation.g:742:1: rule__HWTargetDesign__Group__1 : rule__HWTargetDesign__Group__1__Impl rule__HWTargetDesign__Group__2 ;
     public final void rule__HWTargetDesign__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:715:1: ( rule__HWTargetDesign__Group__1__Impl rule__HWTargetDesign__Group__2 )
-            // InternalComputation.g:716:2: rule__HWTargetDesign__Group__1__Impl rule__HWTargetDesign__Group__2
+            // InternalComputation.g:746:1: ( rule__HWTargetDesign__Group__1__Impl rule__HWTargetDesign__Group__2 )
+            // InternalComputation.g:747:2: rule__HWTargetDesign__Group__1__Impl rule__HWTargetDesign__Group__2
             {
             pushFollow(FOLLOW_12);
             rule__HWTargetDesign__Group__1__Impl();
@@ -2237,17 +2345,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__1__Impl"
-    // InternalComputation.g:723:1: rule__HWTargetDesign__Group__1__Impl : ( '{' ) ;
+    // InternalComputation.g:754:1: rule__HWTargetDesign__Group__1__Impl : ( '{' ) ;
     public final void rule__HWTargetDesign__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:727:1: ( ( '{' ) )
-            // InternalComputation.g:728:1: ( '{' )
+            // InternalComputation.g:758:1: ( ( '{' ) )
+            // InternalComputation.g:759:1: ( '{' )
             {
-            // InternalComputation.g:728:1: ( '{' )
-            // InternalComputation.g:729:2: '{'
+            // InternalComputation.g:759:1: ( '{' )
+            // InternalComputation.g:760:2: '{'
             {
              before(grammarAccess.getHWTargetDesignAccess().getLeftCurlyBracketKeyword_1()); 
             match(input,17,FOLLOW_2); 
@@ -2274,14 +2382,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__2"
-    // InternalComputation.g:738:1: rule__HWTargetDesign__Group__2 : rule__HWTargetDesign__Group__2__Impl rule__HWTargetDesign__Group__3 ;
+    // InternalComputation.g:769:1: rule__HWTargetDesign__Group__2 : rule__HWTargetDesign__Group__2__Impl rule__HWTargetDesign__Group__3 ;
     public final void rule__HWTargetDesign__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:742:1: ( rule__HWTargetDesign__Group__2__Impl rule__HWTargetDesign__Group__3 )
-            // InternalComputation.g:743:2: rule__HWTargetDesign__Group__2__Impl rule__HWTargetDesign__Group__3
+            // InternalComputation.g:773:1: ( rule__HWTargetDesign__Group__2__Impl rule__HWTargetDesign__Group__3 )
+            // InternalComputation.g:774:2: rule__HWTargetDesign__Group__2__Impl rule__HWTargetDesign__Group__3
             {
             pushFollow(FOLLOW_8);
             rule__HWTargetDesign__Group__2__Impl();
@@ -2312,17 +2420,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__2__Impl"
-    // InternalComputation.g:750:1: rule__HWTargetDesign__Group__2__Impl : ( 'frequency' ) ;
+    // InternalComputation.g:781:1: rule__HWTargetDesign__Group__2__Impl : ( 'frequency' ) ;
     public final void rule__HWTargetDesign__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:754:1: ( ( 'frequency' ) )
-            // InternalComputation.g:755:1: ( 'frequency' )
+            // InternalComputation.g:785:1: ( ( 'frequency' ) )
+            // InternalComputation.g:786:1: ( 'frequency' )
             {
-            // InternalComputation.g:755:1: ( 'frequency' )
-            // InternalComputation.g:756:2: 'frequency'
+            // InternalComputation.g:786:1: ( 'frequency' )
+            // InternalComputation.g:787:2: 'frequency'
             {
              before(grammarAccess.getHWTargetDesignAccess().getFrequencyKeyword_2()); 
             match(input,18,FOLLOW_2); 
@@ -2349,14 +2457,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__3"
-    // InternalComputation.g:765:1: rule__HWTargetDesign__Group__3 : rule__HWTargetDesign__Group__3__Impl rule__HWTargetDesign__Group__4 ;
+    // InternalComputation.g:796:1: rule__HWTargetDesign__Group__3 : rule__HWTargetDesign__Group__3__Impl rule__HWTargetDesign__Group__4 ;
     public final void rule__HWTargetDesign__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:769:1: ( rule__HWTargetDesign__Group__3__Impl rule__HWTargetDesign__Group__4 )
-            // InternalComputation.g:770:2: rule__HWTargetDesign__Group__3__Impl rule__HWTargetDesign__Group__4
+            // InternalComputation.g:800:1: ( rule__HWTargetDesign__Group__3__Impl rule__HWTargetDesign__Group__4 )
+            // InternalComputation.g:801:2: rule__HWTargetDesign__Group__3__Impl rule__HWTargetDesign__Group__4
             {
             pushFollow(FOLLOW_9);
             rule__HWTargetDesign__Group__3__Impl();
@@ -2387,17 +2495,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__3__Impl"
-    // InternalComputation.g:777:1: rule__HWTargetDesign__Group__3__Impl : ( '=' ) ;
+    // InternalComputation.g:808:1: rule__HWTargetDesign__Group__3__Impl : ( '=' ) ;
     public final void rule__HWTargetDesign__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:781:1: ( ( '=' ) )
-            // InternalComputation.g:782:1: ( '=' )
+            // InternalComputation.g:812:1: ( ( '=' ) )
+            // InternalComputation.g:813:1: ( '=' )
             {
-            // InternalComputation.g:782:1: ( '=' )
-            // InternalComputation.g:783:2: '='
+            // InternalComputation.g:813:1: ( '=' )
+            // InternalComputation.g:814:2: '='
             {
              before(grammarAccess.getHWTargetDesignAccess().getEqualsSignKeyword_3()); 
             match(input,14,FOLLOW_2); 
@@ -2424,14 +2532,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__4"
-    // InternalComputation.g:792:1: rule__HWTargetDesign__Group__4 : rule__HWTargetDesign__Group__4__Impl rule__HWTargetDesign__Group__5 ;
+    // InternalComputation.g:823:1: rule__HWTargetDesign__Group__4 : rule__HWTargetDesign__Group__4__Impl rule__HWTargetDesign__Group__5 ;
     public final void rule__HWTargetDesign__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:796:1: ( rule__HWTargetDesign__Group__4__Impl rule__HWTargetDesign__Group__5 )
-            // InternalComputation.g:797:2: rule__HWTargetDesign__Group__4__Impl rule__HWTargetDesign__Group__5
+            // InternalComputation.g:827:1: ( rule__HWTargetDesign__Group__4__Impl rule__HWTargetDesign__Group__5 )
+            // InternalComputation.g:828:2: rule__HWTargetDesign__Group__4__Impl rule__HWTargetDesign__Group__5
             {
             pushFollow(FOLLOW_13);
             rule__HWTargetDesign__Group__4__Impl();
@@ -2462,21 +2570,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__4__Impl"
-    // InternalComputation.g:804:1: rule__HWTargetDesign__Group__4__Impl : ( ( rule__HWTargetDesign__FrequencyAssignment_4 ) ) ;
+    // InternalComputation.g:835:1: rule__HWTargetDesign__Group__4__Impl : ( ( rule__HWTargetDesign__FrequencyAssignment_4 ) ) ;
     public final void rule__HWTargetDesign__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:808:1: ( ( ( rule__HWTargetDesign__FrequencyAssignment_4 ) ) )
-            // InternalComputation.g:809:1: ( ( rule__HWTargetDesign__FrequencyAssignment_4 ) )
+            // InternalComputation.g:839:1: ( ( ( rule__HWTargetDesign__FrequencyAssignment_4 ) ) )
+            // InternalComputation.g:840:1: ( ( rule__HWTargetDesign__FrequencyAssignment_4 ) )
             {
-            // InternalComputation.g:809:1: ( ( rule__HWTargetDesign__FrequencyAssignment_4 ) )
-            // InternalComputation.g:810:2: ( rule__HWTargetDesign__FrequencyAssignment_4 )
+            // InternalComputation.g:840:1: ( ( rule__HWTargetDesign__FrequencyAssignment_4 ) )
+            // InternalComputation.g:841:2: ( rule__HWTargetDesign__FrequencyAssignment_4 )
             {
              before(grammarAccess.getHWTargetDesignAccess().getFrequencyAssignment_4()); 
-            // InternalComputation.g:811:2: ( rule__HWTargetDesign__FrequencyAssignment_4 )
-            // InternalComputation.g:811:3: rule__HWTargetDesign__FrequencyAssignment_4
+            // InternalComputation.g:842:2: ( rule__HWTargetDesign__FrequencyAssignment_4 )
+            // InternalComputation.g:842:3: rule__HWTargetDesign__FrequencyAssignment_4
             {
             pushFollow(FOLLOW_2);
             rule__HWTargetDesign__FrequencyAssignment_4();
@@ -2509,14 +2617,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__5"
-    // InternalComputation.g:819:1: rule__HWTargetDesign__Group__5 : rule__HWTargetDesign__Group__5__Impl rule__HWTargetDesign__Group__6 ;
+    // InternalComputation.g:850:1: rule__HWTargetDesign__Group__5 : rule__HWTargetDesign__Group__5__Impl rule__HWTargetDesign__Group__6 ;
     public final void rule__HWTargetDesign__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:823:1: ( rule__HWTargetDesign__Group__5__Impl rule__HWTargetDesign__Group__6 )
-            // InternalComputation.g:824:2: rule__HWTargetDesign__Group__5__Impl rule__HWTargetDesign__Group__6
+            // InternalComputation.g:854:1: ( rule__HWTargetDesign__Group__5__Impl rule__HWTargetDesign__Group__6 )
+            // InternalComputation.g:855:2: rule__HWTargetDesign__Group__5__Impl rule__HWTargetDesign__Group__6
             {
             pushFollow(FOLLOW_8);
             rule__HWTargetDesign__Group__5__Impl();
@@ -2547,17 +2655,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__5__Impl"
-    // InternalComputation.g:831:1: rule__HWTargetDesign__Group__5__Impl : ( 'outputsPerCycle' ) ;
+    // InternalComputation.g:862:1: rule__HWTargetDesign__Group__5__Impl : ( 'outputsPerCycle' ) ;
     public final void rule__HWTargetDesign__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:835:1: ( ( 'outputsPerCycle' ) )
-            // InternalComputation.g:836:1: ( 'outputsPerCycle' )
+            // InternalComputation.g:866:1: ( ( 'outputsPerCycle' ) )
+            // InternalComputation.g:867:1: ( 'outputsPerCycle' )
             {
-            // InternalComputation.g:836:1: ( 'outputsPerCycle' )
-            // InternalComputation.g:837:2: 'outputsPerCycle'
+            // InternalComputation.g:867:1: ( 'outputsPerCycle' )
+            // InternalComputation.g:868:2: 'outputsPerCycle'
             {
              before(grammarAccess.getHWTargetDesignAccess().getOutputsPerCycleKeyword_5()); 
             match(input,19,FOLLOW_2); 
@@ -2584,14 +2692,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__6"
-    // InternalComputation.g:846:1: rule__HWTargetDesign__Group__6 : rule__HWTargetDesign__Group__6__Impl rule__HWTargetDesign__Group__7 ;
+    // InternalComputation.g:877:1: rule__HWTargetDesign__Group__6 : rule__HWTargetDesign__Group__6__Impl rule__HWTargetDesign__Group__7 ;
     public final void rule__HWTargetDesign__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:850:1: ( rule__HWTargetDesign__Group__6__Impl rule__HWTargetDesign__Group__7 )
-            // InternalComputation.g:851:2: rule__HWTargetDesign__Group__6__Impl rule__HWTargetDesign__Group__7
+            // InternalComputation.g:881:1: ( rule__HWTargetDesign__Group__6__Impl rule__HWTargetDesign__Group__7 )
+            // InternalComputation.g:882:2: rule__HWTargetDesign__Group__6__Impl rule__HWTargetDesign__Group__7
             {
             pushFollow(FOLLOW_9);
             rule__HWTargetDesign__Group__6__Impl();
@@ -2622,17 +2730,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__6__Impl"
-    // InternalComputation.g:858:1: rule__HWTargetDesign__Group__6__Impl : ( '=' ) ;
+    // InternalComputation.g:889:1: rule__HWTargetDesign__Group__6__Impl : ( '=' ) ;
     public final void rule__HWTargetDesign__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:862:1: ( ( '=' ) )
-            // InternalComputation.g:863:1: ( '=' )
+            // InternalComputation.g:893:1: ( ( '=' ) )
+            // InternalComputation.g:894:1: ( '=' )
             {
-            // InternalComputation.g:863:1: ( '=' )
-            // InternalComputation.g:864:2: '='
+            // InternalComputation.g:894:1: ( '=' )
+            // InternalComputation.g:895:2: '='
             {
              before(grammarAccess.getHWTargetDesignAccess().getEqualsSignKeyword_6()); 
             match(input,14,FOLLOW_2); 
@@ -2659,14 +2767,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__7"
-    // InternalComputation.g:873:1: rule__HWTargetDesign__Group__7 : rule__HWTargetDesign__Group__7__Impl rule__HWTargetDesign__Group__8 ;
+    // InternalComputation.g:904:1: rule__HWTargetDesign__Group__7 : rule__HWTargetDesign__Group__7__Impl rule__HWTargetDesign__Group__8 ;
     public final void rule__HWTargetDesign__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:877:1: ( rule__HWTargetDesign__Group__7__Impl rule__HWTargetDesign__Group__8 )
-            // InternalComputation.g:878:2: rule__HWTargetDesign__Group__7__Impl rule__HWTargetDesign__Group__8
+            // InternalComputation.g:908:1: ( rule__HWTargetDesign__Group__7__Impl rule__HWTargetDesign__Group__8 )
+            // InternalComputation.g:909:2: rule__HWTargetDesign__Group__7__Impl rule__HWTargetDesign__Group__8
             {
             pushFollow(FOLLOW_14);
             rule__HWTargetDesign__Group__7__Impl();
@@ -2697,21 +2805,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__7__Impl"
-    // InternalComputation.g:885:1: rule__HWTargetDesign__Group__7__Impl : ( ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 ) ) ;
+    // InternalComputation.g:916:1: rule__HWTargetDesign__Group__7__Impl : ( ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 ) ) ;
     public final void rule__HWTargetDesign__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:889:1: ( ( ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 ) ) )
-            // InternalComputation.g:890:1: ( ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 ) )
+            // InternalComputation.g:920:1: ( ( ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 ) ) )
+            // InternalComputation.g:921:1: ( ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 ) )
             {
-            // InternalComputation.g:890:1: ( ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 ) )
-            // InternalComputation.g:891:2: ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 )
+            // InternalComputation.g:921:1: ( ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 ) )
+            // InternalComputation.g:922:2: ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 )
             {
              before(grammarAccess.getHWTargetDesignAccess().getOutputsPerCycleAssignment_7()); 
-            // InternalComputation.g:892:2: ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 )
-            // InternalComputation.g:892:3: rule__HWTargetDesign__OutputsPerCycleAssignment_7
+            // InternalComputation.g:923:2: ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 )
+            // InternalComputation.g:923:3: rule__HWTargetDesign__OutputsPerCycleAssignment_7
             {
             pushFollow(FOLLOW_2);
             rule__HWTargetDesign__OutputsPerCycleAssignment_7();
@@ -2744,14 +2852,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__8"
-    // InternalComputation.g:900:1: rule__HWTargetDesign__Group__8 : rule__HWTargetDesign__Group__8__Impl rule__HWTargetDesign__Group__9 ;
+    // InternalComputation.g:931:1: rule__HWTargetDesign__Group__8 : rule__HWTargetDesign__Group__8__Impl rule__HWTargetDesign__Group__9 ;
     public final void rule__HWTargetDesign__Group__8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:904:1: ( rule__HWTargetDesign__Group__8__Impl rule__HWTargetDesign__Group__9 )
-            // InternalComputation.g:905:2: rule__HWTargetDesign__Group__8__Impl rule__HWTargetDesign__Group__9
+            // InternalComputation.g:935:1: ( rule__HWTargetDesign__Group__8__Impl rule__HWTargetDesign__Group__9 )
+            // InternalComputation.g:936:2: rule__HWTargetDesign__Group__8__Impl rule__HWTargetDesign__Group__9
             {
             pushFollow(FOLLOW_8);
             rule__HWTargetDesign__Group__8__Impl();
@@ -2782,17 +2890,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__8__Impl"
-    // InternalComputation.g:912:1: rule__HWTargetDesign__Group__8__Impl : ( 'problemSize' ) ;
+    // InternalComputation.g:943:1: rule__HWTargetDesign__Group__8__Impl : ( 'problemSize' ) ;
     public final void rule__HWTargetDesign__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:916:1: ( ( 'problemSize' ) )
-            // InternalComputation.g:917:1: ( 'problemSize' )
+            // InternalComputation.g:947:1: ( ( 'problemSize' ) )
+            // InternalComputation.g:948:1: ( 'problemSize' )
             {
-            // InternalComputation.g:917:1: ( 'problemSize' )
-            // InternalComputation.g:918:2: 'problemSize'
+            // InternalComputation.g:948:1: ( 'problemSize' )
+            // InternalComputation.g:949:2: 'problemSize'
             {
              before(grammarAccess.getHWTargetDesignAccess().getProblemSizeKeyword_8()); 
             match(input,20,FOLLOW_2); 
@@ -2819,14 +2927,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__9"
-    // InternalComputation.g:927:1: rule__HWTargetDesign__Group__9 : rule__HWTargetDesign__Group__9__Impl rule__HWTargetDesign__Group__10 ;
+    // InternalComputation.g:958:1: rule__HWTargetDesign__Group__9 : rule__HWTargetDesign__Group__9__Impl rule__HWTargetDesign__Group__10 ;
     public final void rule__HWTargetDesign__Group__9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:931:1: ( rule__HWTargetDesign__Group__9__Impl rule__HWTargetDesign__Group__10 )
-            // InternalComputation.g:932:2: rule__HWTargetDesign__Group__9__Impl rule__HWTargetDesign__Group__10
+            // InternalComputation.g:962:1: ( rule__HWTargetDesign__Group__9__Impl rule__HWTargetDesign__Group__10 )
+            // InternalComputation.g:963:2: rule__HWTargetDesign__Group__9__Impl rule__HWTargetDesign__Group__10
             {
             pushFollow(FOLLOW_15);
             rule__HWTargetDesign__Group__9__Impl();
@@ -2857,17 +2965,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__9__Impl"
-    // InternalComputation.g:939:1: rule__HWTargetDesign__Group__9__Impl : ( '=' ) ;
+    // InternalComputation.g:970:1: rule__HWTargetDesign__Group__9__Impl : ( '=' ) ;
     public final void rule__HWTargetDesign__Group__9__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:943:1: ( ( '=' ) )
-            // InternalComputation.g:944:1: ( '=' )
+            // InternalComputation.g:974:1: ( ( '=' ) )
+            // InternalComputation.g:975:1: ( '=' )
             {
-            // InternalComputation.g:944:1: ( '=' )
-            // InternalComputation.g:945:2: '='
+            // InternalComputation.g:975:1: ( '=' )
+            // InternalComputation.g:976:2: '='
             {
              before(grammarAccess.getHWTargetDesignAccess().getEqualsSignKeyword_9()); 
             match(input,14,FOLLOW_2); 
@@ -2894,14 +3002,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__10"
-    // InternalComputation.g:954:1: rule__HWTargetDesign__Group__10 : rule__HWTargetDesign__Group__10__Impl rule__HWTargetDesign__Group__11 ;
+    // InternalComputation.g:985:1: rule__HWTargetDesign__Group__10 : rule__HWTargetDesign__Group__10__Impl rule__HWTargetDesign__Group__11 ;
     public final void rule__HWTargetDesign__Group__10() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:958:1: ( rule__HWTargetDesign__Group__10__Impl rule__HWTargetDesign__Group__11 )
-            // InternalComputation.g:959:2: rule__HWTargetDesign__Group__10__Impl rule__HWTargetDesign__Group__11
+            // InternalComputation.g:989:1: ( rule__HWTargetDesign__Group__10__Impl rule__HWTargetDesign__Group__11 )
+            // InternalComputation.g:990:2: rule__HWTargetDesign__Group__10__Impl rule__HWTargetDesign__Group__11
             {
             pushFollow(FOLLOW_16);
             rule__HWTargetDesign__Group__10__Impl();
@@ -2932,21 +3040,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__10__Impl"
-    // InternalComputation.g:966:1: rule__HWTargetDesign__Group__10__Impl : ( ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 ) ) ;
+    // InternalComputation.g:997:1: rule__HWTargetDesign__Group__10__Impl : ( ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 ) ) ;
     public final void rule__HWTargetDesign__Group__10__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:970:1: ( ( ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 ) ) )
-            // InternalComputation.g:971:1: ( ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 ) )
+            // InternalComputation.g:1001:1: ( ( ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 ) ) )
+            // InternalComputation.g:1002:1: ( ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 ) )
             {
-            // InternalComputation.g:971:1: ( ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 ) )
-            // InternalComputation.g:972:2: ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 )
+            // InternalComputation.g:1002:1: ( ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 ) )
+            // InternalComputation.g:1003:2: ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 )
             {
              before(grammarAccess.getHWTargetDesignAccess().getProblemSizeExprAssignment_10()); 
-            // InternalComputation.g:973:2: ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 )
-            // InternalComputation.g:973:3: rule__HWTargetDesign__ProblemSizeExprAssignment_10
+            // InternalComputation.g:1004:2: ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 )
+            // InternalComputation.g:1004:3: rule__HWTargetDesign__ProblemSizeExprAssignment_10
             {
             pushFollow(FOLLOW_2);
             rule__HWTargetDesign__ProblemSizeExprAssignment_10();
@@ -2979,14 +3087,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__11"
-    // InternalComputation.g:981:1: rule__HWTargetDesign__Group__11 : rule__HWTargetDesign__Group__11__Impl ;
+    // InternalComputation.g:1012:1: rule__HWTargetDesign__Group__11 : rule__HWTargetDesign__Group__11__Impl ;
     public final void rule__HWTargetDesign__Group__11() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:985:1: ( rule__HWTargetDesign__Group__11__Impl )
-            // InternalComputation.g:986:2: rule__HWTargetDesign__Group__11__Impl
+            // InternalComputation.g:1016:1: ( rule__HWTargetDesign__Group__11__Impl )
+            // InternalComputation.g:1017:2: rule__HWTargetDesign__Group__11__Impl
             {
             pushFollow(FOLLOW_2);
             rule__HWTargetDesign__Group__11__Impl();
@@ -3012,17 +3120,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__11__Impl"
-    // InternalComputation.g:992:1: rule__HWTargetDesign__Group__11__Impl : ( '}' ) ;
+    // InternalComputation.g:1023:1: rule__HWTargetDesign__Group__11__Impl : ( '}' ) ;
     public final void rule__HWTargetDesign__Group__11__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:996:1: ( ( '}' ) )
-            // InternalComputation.g:997:1: ( '}' )
+            // InternalComputation.g:1027:1: ( ( '}' ) )
+            // InternalComputation.g:1028:1: ( '}' )
             {
-            // InternalComputation.g:997:1: ( '}' )
-            // InternalComputation.g:998:2: '}'
+            // InternalComputation.g:1028:1: ( '}' )
+            // InternalComputation.g:1029:2: '}'
             {
              before(grammarAccess.getHWTargetDesignAccess().getRightCurlyBracketKeyword_11()); 
             match(input,21,FOLLOW_2); 
@@ -3049,14 +3157,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__0"
-    // InternalComputation.g:1008:1: rule__ComputationBlock__Group__0 : rule__ComputationBlock__Group__0__Impl rule__ComputationBlock__Group__1 ;
+    // InternalComputation.g:1039:1: rule__ComputationBlock__Group__0 : rule__ComputationBlock__Group__0__Impl rule__ComputationBlock__Group__1 ;
     public final void rule__ComputationBlock__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1012:1: ( rule__ComputationBlock__Group__0__Impl rule__ComputationBlock__Group__1 )
-            // InternalComputation.g:1013:2: rule__ComputationBlock__Group__0__Impl rule__ComputationBlock__Group__1
+            // InternalComputation.g:1043:1: ( rule__ComputationBlock__Group__0__Impl rule__ComputationBlock__Group__1 )
+            // InternalComputation.g:1044:2: rule__ComputationBlock__Group__0__Impl rule__ComputationBlock__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__ComputationBlock__Group__0__Impl();
@@ -3087,17 +3195,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__0__Impl"
-    // InternalComputation.g:1020:1: rule__ComputationBlock__Group__0__Impl : ( 'block' ) ;
+    // InternalComputation.g:1051:1: rule__ComputationBlock__Group__0__Impl : ( 'block' ) ;
     public final void rule__ComputationBlock__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1024:1: ( ( 'block' ) )
-            // InternalComputation.g:1025:1: ( 'block' )
+            // InternalComputation.g:1055:1: ( ( 'block' ) )
+            // InternalComputation.g:1056:1: ( 'block' )
             {
-            // InternalComputation.g:1025:1: ( 'block' )
-            // InternalComputation.g:1026:2: 'block'
+            // InternalComputation.g:1056:1: ( 'block' )
+            // InternalComputation.g:1057:2: 'block'
             {
              before(grammarAccess.getComputationBlockAccess().getBlockKeyword_0()); 
             match(input,22,FOLLOW_2); 
@@ -3124,14 +3232,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__1"
-    // InternalComputation.g:1035:1: rule__ComputationBlock__Group__1 : rule__ComputationBlock__Group__1__Impl rule__ComputationBlock__Group__2 ;
+    // InternalComputation.g:1066:1: rule__ComputationBlock__Group__1 : rule__ComputationBlock__Group__1__Impl rule__ComputationBlock__Group__2 ;
     public final void rule__ComputationBlock__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1039:1: ( rule__ComputationBlock__Group__1__Impl rule__ComputationBlock__Group__2 )
-            // InternalComputation.g:1040:2: rule__ComputationBlock__Group__1__Impl rule__ComputationBlock__Group__2
+            // InternalComputation.g:1070:1: ( rule__ComputationBlock__Group__1__Impl rule__ComputationBlock__Group__2 )
+            // InternalComputation.g:1071:2: rule__ComputationBlock__Group__1__Impl rule__ComputationBlock__Group__2
             {
             pushFollow(FOLLOW_11);
             rule__ComputationBlock__Group__1__Impl();
@@ -3162,21 +3270,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__1__Impl"
-    // InternalComputation.g:1047:1: rule__ComputationBlock__Group__1__Impl : ( ( rule__ComputationBlock__NameAssignment_1 ) ) ;
+    // InternalComputation.g:1078:1: rule__ComputationBlock__Group__1__Impl : ( ( rule__ComputationBlock__NameAssignment_1 ) ) ;
     public final void rule__ComputationBlock__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1051:1: ( ( ( rule__ComputationBlock__NameAssignment_1 ) ) )
-            // InternalComputation.g:1052:1: ( ( rule__ComputationBlock__NameAssignment_1 ) )
+            // InternalComputation.g:1082:1: ( ( ( rule__ComputationBlock__NameAssignment_1 ) ) )
+            // InternalComputation.g:1083:1: ( ( rule__ComputationBlock__NameAssignment_1 ) )
             {
-            // InternalComputation.g:1052:1: ( ( rule__ComputationBlock__NameAssignment_1 ) )
-            // InternalComputation.g:1053:2: ( rule__ComputationBlock__NameAssignment_1 )
+            // InternalComputation.g:1083:1: ( ( rule__ComputationBlock__NameAssignment_1 ) )
+            // InternalComputation.g:1084:2: ( rule__ComputationBlock__NameAssignment_1 )
             {
              before(grammarAccess.getComputationBlockAccess().getNameAssignment_1()); 
-            // InternalComputation.g:1054:2: ( rule__ComputationBlock__NameAssignment_1 )
-            // InternalComputation.g:1054:3: rule__ComputationBlock__NameAssignment_1
+            // InternalComputation.g:1085:2: ( rule__ComputationBlock__NameAssignment_1 )
+            // InternalComputation.g:1085:3: rule__ComputationBlock__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ComputationBlock__NameAssignment_1();
@@ -3209,14 +3317,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__2"
-    // InternalComputation.g:1062:1: rule__ComputationBlock__Group__2 : rule__ComputationBlock__Group__2__Impl rule__ComputationBlock__Group__3 ;
+    // InternalComputation.g:1093:1: rule__ComputationBlock__Group__2 : rule__ComputationBlock__Group__2__Impl rule__ComputationBlock__Group__3 ;
     public final void rule__ComputationBlock__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1066:1: ( rule__ComputationBlock__Group__2__Impl rule__ComputationBlock__Group__3 )
-            // InternalComputation.g:1067:2: rule__ComputationBlock__Group__2__Impl rule__ComputationBlock__Group__3
+            // InternalComputation.g:1097:1: ( rule__ComputationBlock__Group__2__Impl rule__ComputationBlock__Group__3 )
+            // InternalComputation.g:1098:2: rule__ComputationBlock__Group__2__Impl rule__ComputationBlock__Group__3
             {
             pushFollow(FOLLOW_17);
             rule__ComputationBlock__Group__2__Impl();
@@ -3247,17 +3355,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__2__Impl"
-    // InternalComputation.g:1074:1: rule__ComputationBlock__Group__2__Impl : ( '{' ) ;
+    // InternalComputation.g:1105:1: rule__ComputationBlock__Group__2__Impl : ( '{' ) ;
     public final void rule__ComputationBlock__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1078:1: ( ( '{' ) )
-            // InternalComputation.g:1079:1: ( '{' )
+            // InternalComputation.g:1109:1: ( ( '{' ) )
+            // InternalComputation.g:1110:1: ( '{' )
             {
-            // InternalComputation.g:1079:1: ( '{' )
-            // InternalComputation.g:1080:2: '{'
+            // InternalComputation.g:1110:1: ( '{' )
+            // InternalComputation.g:1111:2: '{'
             {
              before(grammarAccess.getComputationBlockAccess().getLeftCurlyBracketKeyword_2()); 
             match(input,17,FOLLOW_2); 
@@ -3284,14 +3392,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__3"
-    // InternalComputation.g:1089:1: rule__ComputationBlock__Group__3 : rule__ComputationBlock__Group__3__Impl rule__ComputationBlock__Group__4 ;
+    // InternalComputation.g:1120:1: rule__ComputationBlock__Group__3 : rule__ComputationBlock__Group__3__Impl rule__ComputationBlock__Group__4 ;
     public final void rule__ComputationBlock__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1093:1: ( rule__ComputationBlock__Group__3__Impl rule__ComputationBlock__Group__4 )
-            // InternalComputation.g:1094:2: rule__ComputationBlock__Group__3__Impl rule__ComputationBlock__Group__4
+            // InternalComputation.g:1124:1: ( rule__ComputationBlock__Group__3__Impl rule__ComputationBlock__Group__4 )
+            // InternalComputation.g:1125:2: rule__ComputationBlock__Group__3__Impl rule__ComputationBlock__Group__4
             {
             pushFollow(FOLLOW_16);
             rule__ComputationBlock__Group__3__Impl();
@@ -3322,24 +3430,24 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__3__Impl"
-    // InternalComputation.g:1101:1: rule__ComputationBlock__Group__3__Impl : ( ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* ) ) ;
+    // InternalComputation.g:1132:1: rule__ComputationBlock__Group__3__Impl : ( ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* ) ) ;
     public final void rule__ComputationBlock__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1105:1: ( ( ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* ) ) )
-            // InternalComputation.g:1106:1: ( ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* ) )
+            // InternalComputation.g:1136:1: ( ( ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* ) ) )
+            // InternalComputation.g:1137:1: ( ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* ) )
             {
-            // InternalComputation.g:1106:1: ( ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* ) )
-            // InternalComputation.g:1107:2: ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* )
+            // InternalComputation.g:1137:1: ( ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* ) )
+            // InternalComputation.g:1138:2: ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* )
             {
-            // InternalComputation.g:1107:2: ( ( rule__ComputationBlock__OperationsAssignment_3 ) )
-            // InternalComputation.g:1108:3: ( rule__ComputationBlock__OperationsAssignment_3 )
+            // InternalComputation.g:1138:2: ( ( rule__ComputationBlock__OperationsAssignment_3 ) )
+            // InternalComputation.g:1139:3: ( rule__ComputationBlock__OperationsAssignment_3 )
             {
              before(grammarAccess.getComputationBlockAccess().getOperationsAssignment_3()); 
-            // InternalComputation.g:1109:3: ( rule__ComputationBlock__OperationsAssignment_3 )
-            // InternalComputation.g:1109:4: rule__ComputationBlock__OperationsAssignment_3
+            // InternalComputation.g:1140:3: ( rule__ComputationBlock__OperationsAssignment_3 )
+            // InternalComputation.g:1140:4: rule__ComputationBlock__OperationsAssignment_3
             {
             pushFollow(FOLLOW_18);
             rule__ComputationBlock__OperationsAssignment_3();
@@ -3353,11 +3461,11 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
             }
 
-            // InternalComputation.g:1112:2: ( ( rule__ComputationBlock__OperationsAssignment_3 )* )
-            // InternalComputation.g:1113:3: ( rule__ComputationBlock__OperationsAssignment_3 )*
+            // InternalComputation.g:1143:2: ( ( rule__ComputationBlock__OperationsAssignment_3 )* )
+            // InternalComputation.g:1144:3: ( rule__ComputationBlock__OperationsAssignment_3 )*
             {
              before(grammarAccess.getComputationBlockAccess().getOperationsAssignment_3()); 
-            // InternalComputation.g:1114:3: ( rule__ComputationBlock__OperationsAssignment_3 )*
+            // InternalComputation.g:1145:3: ( rule__ComputationBlock__OperationsAssignment_3 )*
             loop7:
             do {
                 int alt7=2;
@@ -3370,7 +3478,7 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
                 switch (alt7) {
             	case 1 :
-            	    // InternalComputation.g:1114:4: rule__ComputationBlock__OperationsAssignment_3
+            	    // InternalComputation.g:1145:4: rule__ComputationBlock__OperationsAssignment_3
             	    {
             	    pushFollow(FOLLOW_18);
             	    rule__ComputationBlock__OperationsAssignment_3();
@@ -3412,14 +3520,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__4"
-    // InternalComputation.g:1123:1: rule__ComputationBlock__Group__4 : rule__ComputationBlock__Group__4__Impl ;
+    // InternalComputation.g:1154:1: rule__ComputationBlock__Group__4 : rule__ComputationBlock__Group__4__Impl ;
     public final void rule__ComputationBlock__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1127:1: ( rule__ComputationBlock__Group__4__Impl )
-            // InternalComputation.g:1128:2: rule__ComputationBlock__Group__4__Impl
+            // InternalComputation.g:1158:1: ( rule__ComputationBlock__Group__4__Impl )
+            // InternalComputation.g:1159:2: rule__ComputationBlock__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ComputationBlock__Group__4__Impl();
@@ -3445,17 +3553,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__4__Impl"
-    // InternalComputation.g:1134:1: rule__ComputationBlock__Group__4__Impl : ( '}' ) ;
+    // InternalComputation.g:1165:1: rule__ComputationBlock__Group__4__Impl : ( '}' ) ;
     public final void rule__ComputationBlock__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1138:1: ( ( '}' ) )
-            // InternalComputation.g:1139:1: ( '}' )
+            // InternalComputation.g:1169:1: ( ( '}' ) )
+            // InternalComputation.g:1170:1: ( '}' )
             {
-            // InternalComputation.g:1139:1: ( '}' )
-            // InternalComputation.g:1140:2: '}'
+            // InternalComputation.g:1170:1: ( '}' )
+            // InternalComputation.g:1171:2: '}'
             {
              before(grammarAccess.getComputationBlockAccess().getRightCurlyBracketKeyword_4()); 
             match(input,21,FOLLOW_2); 
@@ -3482,14 +3590,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__0"
-    // InternalComputation.g:1150:1: rule__Operation__Group__0 : rule__Operation__Group__0__Impl rule__Operation__Group__1 ;
+    // InternalComputation.g:1181:1: rule__Operation__Group__0 : rule__Operation__Group__0__Impl rule__Operation__Group__1 ;
     public final void rule__Operation__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1154:1: ( rule__Operation__Group__0__Impl rule__Operation__Group__1 )
-            // InternalComputation.g:1155:2: rule__Operation__Group__0__Impl rule__Operation__Group__1
+            // InternalComputation.g:1185:1: ( rule__Operation__Group__0__Impl rule__Operation__Group__1 )
+            // InternalComputation.g:1186:2: rule__Operation__Group__0__Impl rule__Operation__Group__1
             {
             pushFollow(FOLLOW_19);
             rule__Operation__Group__0__Impl();
@@ -3520,21 +3628,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__0__Impl"
-    // InternalComputation.g:1162:1: rule__Operation__Group__0__Impl : ( ( rule__Operation__OpTypeAssignment_0 ) ) ;
+    // InternalComputation.g:1193:1: rule__Operation__Group__0__Impl : ( ( rule__Operation__OpTypeAssignment_0 ) ) ;
     public final void rule__Operation__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1166:1: ( ( ( rule__Operation__OpTypeAssignment_0 ) ) )
-            // InternalComputation.g:1167:1: ( ( rule__Operation__OpTypeAssignment_0 ) )
+            // InternalComputation.g:1197:1: ( ( ( rule__Operation__OpTypeAssignment_0 ) ) )
+            // InternalComputation.g:1198:1: ( ( rule__Operation__OpTypeAssignment_0 ) )
             {
-            // InternalComputation.g:1167:1: ( ( rule__Operation__OpTypeAssignment_0 ) )
-            // InternalComputation.g:1168:2: ( rule__Operation__OpTypeAssignment_0 )
+            // InternalComputation.g:1198:1: ( ( rule__Operation__OpTypeAssignment_0 ) )
+            // InternalComputation.g:1199:2: ( rule__Operation__OpTypeAssignment_0 )
             {
              before(grammarAccess.getOperationAccess().getOpTypeAssignment_0()); 
-            // InternalComputation.g:1169:2: ( rule__Operation__OpTypeAssignment_0 )
-            // InternalComputation.g:1169:3: rule__Operation__OpTypeAssignment_0
+            // InternalComputation.g:1200:2: ( rule__Operation__OpTypeAssignment_0 )
+            // InternalComputation.g:1200:3: rule__Operation__OpTypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__Operation__OpTypeAssignment_0();
@@ -3567,14 +3675,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__1"
-    // InternalComputation.g:1177:1: rule__Operation__Group__1 : rule__Operation__Group__1__Impl rule__Operation__Group__2 ;
+    // InternalComputation.g:1208:1: rule__Operation__Group__1 : rule__Operation__Group__1__Impl rule__Operation__Group__2 ;
     public final void rule__Operation__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1181:1: ( rule__Operation__Group__1__Impl rule__Operation__Group__2 )
-            // InternalComputation.g:1182:2: rule__Operation__Group__1__Impl rule__Operation__Group__2
+            // InternalComputation.g:1212:1: ( rule__Operation__Group__1__Impl rule__Operation__Group__2 )
+            // InternalComputation.g:1213:2: rule__Operation__Group__1__Impl rule__Operation__Group__2
             {
             pushFollow(FOLLOW_20);
             rule__Operation__Group__1__Impl();
@@ -3605,17 +3713,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__1__Impl"
-    // InternalComputation.g:1189:1: rule__Operation__Group__1__Impl : ( ':' ) ;
+    // InternalComputation.g:1220:1: rule__Operation__Group__1__Impl : ( ':' ) ;
     public final void rule__Operation__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1193:1: ( ( ':' ) )
-            // InternalComputation.g:1194:1: ( ':' )
+            // InternalComputation.g:1224:1: ( ( ':' ) )
+            // InternalComputation.g:1225:1: ( ':' )
             {
-            // InternalComputation.g:1194:1: ( ':' )
-            // InternalComputation.g:1195:2: ':'
+            // InternalComputation.g:1225:1: ( ':' )
+            // InternalComputation.g:1226:2: ':'
             {
              before(grammarAccess.getOperationAccess().getColonKeyword_1()); 
             match(input,23,FOLLOW_2); 
@@ -3642,14 +3750,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__2"
-    // InternalComputation.g:1204:1: rule__Operation__Group__2 : rule__Operation__Group__2__Impl rule__Operation__Group__3 ;
+    // InternalComputation.g:1235:1: rule__Operation__Group__2 : rule__Operation__Group__2__Impl rule__Operation__Group__3 ;
     public final void rule__Operation__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1208:1: ( rule__Operation__Group__2__Impl rule__Operation__Group__3 )
-            // InternalComputation.g:1209:2: rule__Operation__Group__2__Impl rule__Operation__Group__3
+            // InternalComputation.g:1239:1: ( rule__Operation__Group__2__Impl rule__Operation__Group__3 )
+            // InternalComputation.g:1240:2: rule__Operation__Group__2__Impl rule__Operation__Group__3
             {
             pushFollow(FOLLOW_8);
             rule__Operation__Group__2__Impl();
@@ -3680,21 +3788,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__2__Impl"
-    // InternalComputation.g:1216:1: rule__Operation__Group__2__Impl : ( ( rule__Operation__OutputExprAssignment_2 ) ) ;
+    // InternalComputation.g:1247:1: rule__Operation__Group__2__Impl : ( ( rule__Operation__OutputExprAssignment_2 ) ) ;
     public final void rule__Operation__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1220:1: ( ( ( rule__Operation__OutputExprAssignment_2 ) ) )
-            // InternalComputation.g:1221:1: ( ( rule__Operation__OutputExprAssignment_2 ) )
+            // InternalComputation.g:1251:1: ( ( ( rule__Operation__OutputExprAssignment_2 ) ) )
+            // InternalComputation.g:1252:1: ( ( rule__Operation__OutputExprAssignment_2 ) )
             {
-            // InternalComputation.g:1221:1: ( ( rule__Operation__OutputExprAssignment_2 ) )
-            // InternalComputation.g:1222:2: ( rule__Operation__OutputExprAssignment_2 )
+            // InternalComputation.g:1252:1: ( ( rule__Operation__OutputExprAssignment_2 ) )
+            // InternalComputation.g:1253:2: ( rule__Operation__OutputExprAssignment_2 )
             {
              before(grammarAccess.getOperationAccess().getOutputExprAssignment_2()); 
-            // InternalComputation.g:1223:2: ( rule__Operation__OutputExprAssignment_2 )
-            // InternalComputation.g:1223:3: rule__Operation__OutputExprAssignment_2
+            // InternalComputation.g:1254:2: ( rule__Operation__OutputExprAssignment_2 )
+            // InternalComputation.g:1254:3: rule__Operation__OutputExprAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__Operation__OutputExprAssignment_2();
@@ -3727,14 +3835,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__3"
-    // InternalComputation.g:1231:1: rule__Operation__Group__3 : rule__Operation__Group__3__Impl rule__Operation__Group__4 ;
+    // InternalComputation.g:1262:1: rule__Operation__Group__3 : rule__Operation__Group__3__Impl rule__Operation__Group__4 ;
     public final void rule__Operation__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1235:1: ( rule__Operation__Group__3__Impl rule__Operation__Group__4 )
-            // InternalComputation.g:1236:2: rule__Operation__Group__3__Impl rule__Operation__Group__4
+            // InternalComputation.g:1266:1: ( rule__Operation__Group__3__Impl rule__Operation__Group__4 )
+            // InternalComputation.g:1267:2: rule__Operation__Group__3__Impl rule__Operation__Group__4
             {
             pushFollow(FOLLOW_20);
             rule__Operation__Group__3__Impl();
@@ -3765,17 +3873,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__3__Impl"
-    // InternalComputation.g:1243:1: rule__Operation__Group__3__Impl : ( '=' ) ;
+    // InternalComputation.g:1274:1: rule__Operation__Group__3__Impl : ( '=' ) ;
     public final void rule__Operation__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1247:1: ( ( '=' ) )
-            // InternalComputation.g:1248:1: ( '=' )
+            // InternalComputation.g:1278:1: ( ( '=' ) )
+            // InternalComputation.g:1279:1: ( '=' )
             {
-            // InternalComputation.g:1248:1: ( '=' )
-            // InternalComputation.g:1249:2: '='
+            // InternalComputation.g:1279:1: ( '=' )
+            // InternalComputation.g:1280:2: '='
             {
              before(grammarAccess.getOperationAccess().getEqualsSignKeyword_3()); 
             match(input,14,FOLLOW_2); 
@@ -3802,14 +3910,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__4"
-    // InternalComputation.g:1258:1: rule__Operation__Group__4 : rule__Operation__Group__4__Impl rule__Operation__Group__5 ;
+    // InternalComputation.g:1289:1: rule__Operation__Group__4 : rule__Operation__Group__4__Impl rule__Operation__Group__5 ;
     public final void rule__Operation__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1262:1: ( rule__Operation__Group__4__Impl rule__Operation__Group__5 )
-            // InternalComputation.g:1263:2: rule__Operation__Group__4__Impl rule__Operation__Group__5
+            // InternalComputation.g:1293:1: ( rule__Operation__Group__4__Impl rule__Operation__Group__5 )
+            // InternalComputation.g:1294:2: rule__Operation__Group__4__Impl rule__Operation__Group__5
             {
             pushFollow(FOLLOW_21);
             rule__Operation__Group__4__Impl();
@@ -3840,21 +3948,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__4__Impl"
-    // InternalComputation.g:1270:1: rule__Operation__Group__4__Impl : ( ( rule__Operation__InputExpr1Assignment_4 ) ) ;
+    // InternalComputation.g:1301:1: rule__Operation__Group__4__Impl : ( ( rule__Operation__InputExpr1Assignment_4 ) ) ;
     public final void rule__Operation__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1274:1: ( ( ( rule__Operation__InputExpr1Assignment_4 ) ) )
-            // InternalComputation.g:1275:1: ( ( rule__Operation__InputExpr1Assignment_4 ) )
+            // InternalComputation.g:1305:1: ( ( ( rule__Operation__InputExpr1Assignment_4 ) ) )
+            // InternalComputation.g:1306:1: ( ( rule__Operation__InputExpr1Assignment_4 ) )
             {
-            // InternalComputation.g:1275:1: ( ( rule__Operation__InputExpr1Assignment_4 ) )
-            // InternalComputation.g:1276:2: ( rule__Operation__InputExpr1Assignment_4 )
+            // InternalComputation.g:1306:1: ( ( rule__Operation__InputExpr1Assignment_4 ) )
+            // InternalComputation.g:1307:2: ( rule__Operation__InputExpr1Assignment_4 )
             {
              before(grammarAccess.getOperationAccess().getInputExpr1Assignment_4()); 
-            // InternalComputation.g:1277:2: ( rule__Operation__InputExpr1Assignment_4 )
-            // InternalComputation.g:1277:3: rule__Operation__InputExpr1Assignment_4
+            // InternalComputation.g:1308:2: ( rule__Operation__InputExpr1Assignment_4 )
+            // InternalComputation.g:1308:3: rule__Operation__InputExpr1Assignment_4
             {
             pushFollow(FOLLOW_2);
             rule__Operation__InputExpr1Assignment_4();
@@ -3887,14 +3995,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__5"
-    // InternalComputation.g:1285:1: rule__Operation__Group__5 : rule__Operation__Group__5__Impl rule__Operation__Group__6 ;
+    // InternalComputation.g:1316:1: rule__Operation__Group__5 : rule__Operation__Group__5__Impl rule__Operation__Group__6 ;
     public final void rule__Operation__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1289:1: ( rule__Operation__Group__5__Impl rule__Operation__Group__6 )
-            // InternalComputation.g:1290:2: rule__Operation__Group__5__Impl rule__Operation__Group__6
+            // InternalComputation.g:1320:1: ( rule__Operation__Group__5__Impl rule__Operation__Group__6 )
+            // InternalComputation.g:1321:2: rule__Operation__Group__5__Impl rule__Operation__Group__6
             {
             pushFollow(FOLLOW_20);
             rule__Operation__Group__5__Impl();
@@ -3925,17 +4033,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__5__Impl"
-    // InternalComputation.g:1297:1: rule__Operation__Group__5__Impl : ( 'op' ) ;
+    // InternalComputation.g:1328:1: rule__Operation__Group__5__Impl : ( 'op' ) ;
     public final void rule__Operation__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1301:1: ( ( 'op' ) )
-            // InternalComputation.g:1302:1: ( 'op' )
+            // InternalComputation.g:1332:1: ( ( 'op' ) )
+            // InternalComputation.g:1333:1: ( 'op' )
             {
-            // InternalComputation.g:1302:1: ( 'op' )
-            // InternalComputation.g:1303:2: 'op'
+            // InternalComputation.g:1333:1: ( 'op' )
+            // InternalComputation.g:1334:2: 'op'
             {
              before(grammarAccess.getOperationAccess().getOpKeyword_5()); 
             match(input,24,FOLLOW_2); 
@@ -3962,14 +4070,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__6"
-    // InternalComputation.g:1312:1: rule__Operation__Group__6 : rule__Operation__Group__6__Impl rule__Operation__Group__7 ;
+    // InternalComputation.g:1343:1: rule__Operation__Group__6 : rule__Operation__Group__6__Impl rule__Operation__Group__7 ;
     public final void rule__Operation__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1316:1: ( rule__Operation__Group__6__Impl rule__Operation__Group__7 )
-            // InternalComputation.g:1317:2: rule__Operation__Group__6__Impl rule__Operation__Group__7
+            // InternalComputation.g:1347:1: ( rule__Operation__Group__6__Impl rule__Operation__Group__7 )
+            // InternalComputation.g:1348:2: rule__Operation__Group__6__Impl rule__Operation__Group__7
             {
             pushFollow(FOLLOW_22);
             rule__Operation__Group__6__Impl();
@@ -4000,21 +4108,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__6__Impl"
-    // InternalComputation.g:1324:1: rule__Operation__Group__6__Impl : ( ( rule__Operation__InputExpr2Assignment_6 ) ) ;
+    // InternalComputation.g:1355:1: rule__Operation__Group__6__Impl : ( ( rule__Operation__InputExpr2Assignment_6 ) ) ;
     public final void rule__Operation__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1328:1: ( ( ( rule__Operation__InputExpr2Assignment_6 ) ) )
-            // InternalComputation.g:1329:1: ( ( rule__Operation__InputExpr2Assignment_6 ) )
+            // InternalComputation.g:1359:1: ( ( ( rule__Operation__InputExpr2Assignment_6 ) ) )
+            // InternalComputation.g:1360:1: ( ( rule__Operation__InputExpr2Assignment_6 ) )
             {
-            // InternalComputation.g:1329:1: ( ( rule__Operation__InputExpr2Assignment_6 ) )
-            // InternalComputation.g:1330:2: ( rule__Operation__InputExpr2Assignment_6 )
+            // InternalComputation.g:1360:1: ( ( rule__Operation__InputExpr2Assignment_6 ) )
+            // InternalComputation.g:1361:2: ( rule__Operation__InputExpr2Assignment_6 )
             {
              before(grammarAccess.getOperationAccess().getInputExpr2Assignment_6()); 
-            // InternalComputation.g:1331:2: ( rule__Operation__InputExpr2Assignment_6 )
-            // InternalComputation.g:1331:3: rule__Operation__InputExpr2Assignment_6
+            // InternalComputation.g:1362:2: ( rule__Operation__InputExpr2Assignment_6 )
+            // InternalComputation.g:1362:3: rule__Operation__InputExpr2Assignment_6
             {
             pushFollow(FOLLOW_2);
             rule__Operation__InputExpr2Assignment_6();
@@ -4047,14 +4155,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__7"
-    // InternalComputation.g:1339:1: rule__Operation__Group__7 : rule__Operation__Group__7__Impl rule__Operation__Group__8 ;
+    // InternalComputation.g:1370:1: rule__Operation__Group__7 : rule__Operation__Group__7__Impl rule__Operation__Group__8 ;
     public final void rule__Operation__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1343:1: ( rule__Operation__Group__7__Impl rule__Operation__Group__8 )
-            // InternalComputation.g:1344:2: rule__Operation__Group__7__Impl rule__Operation__Group__8
+            // InternalComputation.g:1374:1: ( rule__Operation__Group__7__Impl rule__Operation__Group__8 )
+            // InternalComputation.g:1375:2: rule__Operation__Group__7__Impl rule__Operation__Group__8
             {
             pushFollow(FOLLOW_15);
             rule__Operation__Group__7__Impl();
@@ -4085,17 +4193,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__7__Impl"
-    // InternalComputation.g:1351:1: rule__Operation__Group__7__Impl : ( 'x' ) ;
+    // InternalComputation.g:1382:1: rule__Operation__Group__7__Impl : ( 'x' ) ;
     public final void rule__Operation__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1355:1: ( ( 'x' ) )
-            // InternalComputation.g:1356:1: ( 'x' )
+            // InternalComputation.g:1386:1: ( ( 'x' ) )
+            // InternalComputation.g:1387:1: ( 'x' )
             {
-            // InternalComputation.g:1356:1: ( 'x' )
-            // InternalComputation.g:1357:2: 'x'
+            // InternalComputation.g:1387:1: ( 'x' )
+            // InternalComputation.g:1388:2: 'x'
             {
              before(grammarAccess.getOperationAccess().getXKeyword_7()); 
             match(input,25,FOLLOW_2); 
@@ -4122,14 +4230,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__8"
-    // InternalComputation.g:1366:1: rule__Operation__Group__8 : rule__Operation__Group__8__Impl rule__Operation__Group__9 ;
+    // InternalComputation.g:1397:1: rule__Operation__Group__8 : rule__Operation__Group__8__Impl rule__Operation__Group__9 ;
     public final void rule__Operation__Group__8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1370:1: ( rule__Operation__Group__8__Impl rule__Operation__Group__9 )
-            // InternalComputation.g:1371:2: rule__Operation__Group__8__Impl rule__Operation__Group__9
+            // InternalComputation.g:1401:1: ( rule__Operation__Group__8__Impl rule__Operation__Group__9 )
+            // InternalComputation.g:1402:2: rule__Operation__Group__8__Impl rule__Operation__Group__9
             {
             pushFollow(FOLLOW_10);
             rule__Operation__Group__8__Impl();
@@ -4160,21 +4268,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__8__Impl"
-    // InternalComputation.g:1378:1: rule__Operation__Group__8__Impl : ( ( rule__Operation__NumOpsAssignment_8 ) ) ;
+    // InternalComputation.g:1409:1: rule__Operation__Group__8__Impl : ( ( rule__Operation__NumOpsAssignment_8 ) ) ;
     public final void rule__Operation__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1382:1: ( ( ( rule__Operation__NumOpsAssignment_8 ) ) )
-            // InternalComputation.g:1383:1: ( ( rule__Operation__NumOpsAssignment_8 ) )
+            // InternalComputation.g:1413:1: ( ( ( rule__Operation__NumOpsAssignment_8 ) ) )
+            // InternalComputation.g:1414:1: ( ( rule__Operation__NumOpsAssignment_8 ) )
             {
-            // InternalComputation.g:1383:1: ( ( rule__Operation__NumOpsAssignment_8 ) )
-            // InternalComputation.g:1384:2: ( rule__Operation__NumOpsAssignment_8 )
+            // InternalComputation.g:1414:1: ( ( rule__Operation__NumOpsAssignment_8 ) )
+            // InternalComputation.g:1415:2: ( rule__Operation__NumOpsAssignment_8 )
             {
              before(grammarAccess.getOperationAccess().getNumOpsAssignment_8()); 
-            // InternalComputation.g:1385:2: ( rule__Operation__NumOpsAssignment_8 )
-            // InternalComputation.g:1385:3: rule__Operation__NumOpsAssignment_8
+            // InternalComputation.g:1416:2: ( rule__Operation__NumOpsAssignment_8 )
+            // InternalComputation.g:1416:3: rule__Operation__NumOpsAssignment_8
             {
             pushFollow(FOLLOW_2);
             rule__Operation__NumOpsAssignment_8();
@@ -4207,14 +4315,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__9"
-    // InternalComputation.g:1393:1: rule__Operation__Group__9 : rule__Operation__Group__9__Impl ;
+    // InternalComputation.g:1424:1: rule__Operation__Group__9 : rule__Operation__Group__9__Impl ;
     public final void rule__Operation__Group__9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1397:1: ( rule__Operation__Group__9__Impl )
-            // InternalComputation.g:1398:2: rule__Operation__Group__9__Impl
+            // InternalComputation.g:1428:1: ( rule__Operation__Group__9__Impl )
+            // InternalComputation.g:1429:2: rule__Operation__Group__9__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Operation__Group__9__Impl();
@@ -4240,17 +4348,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__9__Impl"
-    // InternalComputation.g:1404:1: rule__Operation__Group__9__Impl : ( ';' ) ;
+    // InternalComputation.g:1435:1: rule__Operation__Group__9__Impl : ( ';' ) ;
     public final void rule__Operation__Group__9__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1408:1: ( ( ';' ) )
-            // InternalComputation.g:1409:1: ( ';' )
+            // InternalComputation.g:1439:1: ( ( ';' ) )
+            // InternalComputation.g:1440:1: ( ';' )
             {
-            // InternalComputation.g:1409:1: ( ';' )
-            // InternalComputation.g:1410:2: ';'
+            // InternalComputation.g:1440:1: ( ';' )
+            // InternalComputation.g:1441:2: ';'
             {
              before(grammarAccess.getOperationAccess().getSemicolonKeyword_9()); 
             match(input,15,FOLLOW_2); 
@@ -4277,14 +4385,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__0"
-    // InternalComputation.g:1420:1: rule__MaxExpression__Group__0 : rule__MaxExpression__Group__0__Impl rule__MaxExpression__Group__1 ;
+    // InternalComputation.g:1451:1: rule__MaxExpression__Group__0 : rule__MaxExpression__Group__0__Impl rule__MaxExpression__Group__1 ;
     public final void rule__MaxExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1424:1: ( rule__MaxExpression__Group__0__Impl rule__MaxExpression__Group__1 )
-            // InternalComputation.g:1425:2: rule__MaxExpression__Group__0__Impl rule__MaxExpression__Group__1
+            // InternalComputation.g:1455:1: ( rule__MaxExpression__Group__0__Impl rule__MaxExpression__Group__1 )
+            // InternalComputation.g:1456:2: rule__MaxExpression__Group__0__Impl rule__MaxExpression__Group__1
             {
             pushFollow(FOLLOW_23);
             rule__MaxExpression__Group__0__Impl();
@@ -4315,17 +4423,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__0__Impl"
-    // InternalComputation.g:1432:1: rule__MaxExpression__Group__0__Impl : ( 'max' ) ;
+    // InternalComputation.g:1463:1: rule__MaxExpression__Group__0__Impl : ( 'max' ) ;
     public final void rule__MaxExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1436:1: ( ( 'max' ) )
-            // InternalComputation.g:1437:1: ( 'max' )
+            // InternalComputation.g:1467:1: ( ( 'max' ) )
+            // InternalComputation.g:1468:1: ( 'max' )
             {
-            // InternalComputation.g:1437:1: ( 'max' )
-            // InternalComputation.g:1438:2: 'max'
+            // InternalComputation.g:1468:1: ( 'max' )
+            // InternalComputation.g:1469:2: 'max'
             {
              before(grammarAccess.getMaxExpressionAccess().getMaxKeyword_0()); 
             match(input,26,FOLLOW_2); 
@@ -4352,14 +4460,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__1"
-    // InternalComputation.g:1447:1: rule__MaxExpression__Group__1 : rule__MaxExpression__Group__1__Impl rule__MaxExpression__Group__2 ;
+    // InternalComputation.g:1478:1: rule__MaxExpression__Group__1 : rule__MaxExpression__Group__1__Impl rule__MaxExpression__Group__2 ;
     public final void rule__MaxExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1451:1: ( rule__MaxExpression__Group__1__Impl rule__MaxExpression__Group__2 )
-            // InternalComputation.g:1452:2: rule__MaxExpression__Group__1__Impl rule__MaxExpression__Group__2
+            // InternalComputation.g:1482:1: ( rule__MaxExpression__Group__1__Impl rule__MaxExpression__Group__2 )
+            // InternalComputation.g:1483:2: rule__MaxExpression__Group__1__Impl rule__MaxExpression__Group__2
             {
             pushFollow(FOLLOW_20);
             rule__MaxExpression__Group__1__Impl();
@@ -4390,17 +4498,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__1__Impl"
-    // InternalComputation.g:1459:1: rule__MaxExpression__Group__1__Impl : ( '(' ) ;
+    // InternalComputation.g:1490:1: rule__MaxExpression__Group__1__Impl : ( '(' ) ;
     public final void rule__MaxExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1463:1: ( ( '(' ) )
-            // InternalComputation.g:1464:1: ( '(' )
+            // InternalComputation.g:1494:1: ( ( '(' ) )
+            // InternalComputation.g:1495:1: ( '(' )
             {
-            // InternalComputation.g:1464:1: ( '(' )
-            // InternalComputation.g:1465:2: '('
+            // InternalComputation.g:1495:1: ( '(' )
+            // InternalComputation.g:1496:2: '('
             {
              before(grammarAccess.getMaxExpressionAccess().getLeftParenthesisKeyword_1()); 
             match(input,27,FOLLOW_2); 
@@ -4427,14 +4535,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__2"
-    // InternalComputation.g:1474:1: rule__MaxExpression__Group__2 : rule__MaxExpression__Group__2__Impl rule__MaxExpression__Group__3 ;
+    // InternalComputation.g:1505:1: rule__MaxExpression__Group__2 : rule__MaxExpression__Group__2__Impl rule__MaxExpression__Group__3 ;
     public final void rule__MaxExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1478:1: ( rule__MaxExpression__Group__2__Impl rule__MaxExpression__Group__3 )
-            // InternalComputation.g:1479:2: rule__MaxExpression__Group__2__Impl rule__MaxExpression__Group__3
+            // InternalComputation.g:1509:1: ( rule__MaxExpression__Group__2__Impl rule__MaxExpression__Group__3 )
+            // InternalComputation.g:1510:2: rule__MaxExpression__Group__2__Impl rule__MaxExpression__Group__3
             {
             pushFollow(FOLLOW_24);
             rule__MaxExpression__Group__2__Impl();
@@ -4465,21 +4573,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__2__Impl"
-    // InternalComputation.g:1486:1: rule__MaxExpression__Group__2__Impl : ( ( rule__MaxExpression__ExprsAssignment_2 ) ) ;
+    // InternalComputation.g:1517:1: rule__MaxExpression__Group__2__Impl : ( ( rule__MaxExpression__ExprsAssignment_2 ) ) ;
     public final void rule__MaxExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1490:1: ( ( ( rule__MaxExpression__ExprsAssignment_2 ) ) )
-            // InternalComputation.g:1491:1: ( ( rule__MaxExpression__ExprsAssignment_2 ) )
+            // InternalComputation.g:1521:1: ( ( ( rule__MaxExpression__ExprsAssignment_2 ) ) )
+            // InternalComputation.g:1522:1: ( ( rule__MaxExpression__ExprsAssignment_2 ) )
             {
-            // InternalComputation.g:1491:1: ( ( rule__MaxExpression__ExprsAssignment_2 ) )
-            // InternalComputation.g:1492:2: ( rule__MaxExpression__ExprsAssignment_2 )
+            // InternalComputation.g:1522:1: ( ( rule__MaxExpression__ExprsAssignment_2 ) )
+            // InternalComputation.g:1523:2: ( rule__MaxExpression__ExprsAssignment_2 )
             {
              before(grammarAccess.getMaxExpressionAccess().getExprsAssignment_2()); 
-            // InternalComputation.g:1493:2: ( rule__MaxExpression__ExprsAssignment_2 )
-            // InternalComputation.g:1493:3: rule__MaxExpression__ExprsAssignment_2
+            // InternalComputation.g:1524:2: ( rule__MaxExpression__ExprsAssignment_2 )
+            // InternalComputation.g:1524:3: rule__MaxExpression__ExprsAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__MaxExpression__ExprsAssignment_2();
@@ -4512,14 +4620,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__3"
-    // InternalComputation.g:1501:1: rule__MaxExpression__Group__3 : rule__MaxExpression__Group__3__Impl rule__MaxExpression__Group__4 ;
+    // InternalComputation.g:1532:1: rule__MaxExpression__Group__3 : rule__MaxExpression__Group__3__Impl rule__MaxExpression__Group__4 ;
     public final void rule__MaxExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1505:1: ( rule__MaxExpression__Group__3__Impl rule__MaxExpression__Group__4 )
-            // InternalComputation.g:1506:2: rule__MaxExpression__Group__3__Impl rule__MaxExpression__Group__4
+            // InternalComputation.g:1536:1: ( rule__MaxExpression__Group__3__Impl rule__MaxExpression__Group__4 )
+            // InternalComputation.g:1537:2: rule__MaxExpression__Group__3__Impl rule__MaxExpression__Group__4
             {
             pushFollow(FOLLOW_25);
             rule__MaxExpression__Group__3__Impl();
@@ -4550,24 +4658,24 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__3__Impl"
-    // InternalComputation.g:1513:1: rule__MaxExpression__Group__3__Impl : ( ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* ) ) ;
+    // InternalComputation.g:1544:1: rule__MaxExpression__Group__3__Impl : ( ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* ) ) ;
     public final void rule__MaxExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1517:1: ( ( ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* ) ) )
-            // InternalComputation.g:1518:1: ( ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* ) )
+            // InternalComputation.g:1548:1: ( ( ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* ) ) )
+            // InternalComputation.g:1549:1: ( ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* ) )
             {
-            // InternalComputation.g:1518:1: ( ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* ) )
-            // InternalComputation.g:1519:2: ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* )
+            // InternalComputation.g:1549:1: ( ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* ) )
+            // InternalComputation.g:1550:2: ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* )
             {
-            // InternalComputation.g:1519:2: ( ( rule__MaxExpression__Group_3__0 ) )
-            // InternalComputation.g:1520:3: ( rule__MaxExpression__Group_3__0 )
+            // InternalComputation.g:1550:2: ( ( rule__MaxExpression__Group_3__0 ) )
+            // InternalComputation.g:1551:3: ( rule__MaxExpression__Group_3__0 )
             {
              before(grammarAccess.getMaxExpressionAccess().getGroup_3()); 
-            // InternalComputation.g:1521:3: ( rule__MaxExpression__Group_3__0 )
-            // InternalComputation.g:1521:4: rule__MaxExpression__Group_3__0
+            // InternalComputation.g:1552:3: ( rule__MaxExpression__Group_3__0 )
+            // InternalComputation.g:1552:4: rule__MaxExpression__Group_3__0
             {
             pushFollow(FOLLOW_26);
             rule__MaxExpression__Group_3__0();
@@ -4581,11 +4689,11 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
             }
 
-            // InternalComputation.g:1524:2: ( ( rule__MaxExpression__Group_3__0 )* )
-            // InternalComputation.g:1525:3: ( rule__MaxExpression__Group_3__0 )*
+            // InternalComputation.g:1555:2: ( ( rule__MaxExpression__Group_3__0 )* )
+            // InternalComputation.g:1556:3: ( rule__MaxExpression__Group_3__0 )*
             {
              before(grammarAccess.getMaxExpressionAccess().getGroup_3()); 
-            // InternalComputation.g:1526:3: ( rule__MaxExpression__Group_3__0 )*
+            // InternalComputation.g:1557:3: ( rule__MaxExpression__Group_3__0 )*
             loop8:
             do {
                 int alt8=2;
@@ -4598,7 +4706,7 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalComputation.g:1526:4: rule__MaxExpression__Group_3__0
+            	    // InternalComputation.g:1557:4: rule__MaxExpression__Group_3__0
             	    {
             	    pushFollow(FOLLOW_26);
             	    rule__MaxExpression__Group_3__0();
@@ -4640,14 +4748,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__4"
-    // InternalComputation.g:1535:1: rule__MaxExpression__Group__4 : rule__MaxExpression__Group__4__Impl ;
+    // InternalComputation.g:1566:1: rule__MaxExpression__Group__4 : rule__MaxExpression__Group__4__Impl ;
     public final void rule__MaxExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1539:1: ( rule__MaxExpression__Group__4__Impl )
-            // InternalComputation.g:1540:2: rule__MaxExpression__Group__4__Impl
+            // InternalComputation.g:1570:1: ( rule__MaxExpression__Group__4__Impl )
+            // InternalComputation.g:1571:2: rule__MaxExpression__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__MaxExpression__Group__4__Impl();
@@ -4673,17 +4781,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__4__Impl"
-    // InternalComputation.g:1546:1: rule__MaxExpression__Group__4__Impl : ( ')' ) ;
+    // InternalComputation.g:1577:1: rule__MaxExpression__Group__4__Impl : ( ')' ) ;
     public final void rule__MaxExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1550:1: ( ( ')' ) )
-            // InternalComputation.g:1551:1: ( ')' )
+            // InternalComputation.g:1581:1: ( ( ')' ) )
+            // InternalComputation.g:1582:1: ( ')' )
             {
-            // InternalComputation.g:1551:1: ( ')' )
-            // InternalComputation.g:1552:2: ')'
+            // InternalComputation.g:1582:1: ( ')' )
+            // InternalComputation.g:1583:2: ')'
             {
              before(grammarAccess.getMaxExpressionAccess().getRightParenthesisKeyword_4()); 
             match(input,28,FOLLOW_2); 
@@ -4710,14 +4818,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group_3__0"
-    // InternalComputation.g:1562:1: rule__MaxExpression__Group_3__0 : rule__MaxExpression__Group_3__0__Impl rule__MaxExpression__Group_3__1 ;
+    // InternalComputation.g:1593:1: rule__MaxExpression__Group_3__0 : rule__MaxExpression__Group_3__0__Impl rule__MaxExpression__Group_3__1 ;
     public final void rule__MaxExpression__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1566:1: ( rule__MaxExpression__Group_3__0__Impl rule__MaxExpression__Group_3__1 )
-            // InternalComputation.g:1567:2: rule__MaxExpression__Group_3__0__Impl rule__MaxExpression__Group_3__1
+            // InternalComputation.g:1597:1: ( rule__MaxExpression__Group_3__0__Impl rule__MaxExpression__Group_3__1 )
+            // InternalComputation.g:1598:2: rule__MaxExpression__Group_3__0__Impl rule__MaxExpression__Group_3__1
             {
             pushFollow(FOLLOW_20);
             rule__MaxExpression__Group_3__0__Impl();
@@ -4748,17 +4856,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group_3__0__Impl"
-    // InternalComputation.g:1574:1: rule__MaxExpression__Group_3__0__Impl : ( ',' ) ;
+    // InternalComputation.g:1605:1: rule__MaxExpression__Group_3__0__Impl : ( ',' ) ;
     public final void rule__MaxExpression__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1578:1: ( ( ',' ) )
-            // InternalComputation.g:1579:1: ( ',' )
+            // InternalComputation.g:1609:1: ( ( ',' ) )
+            // InternalComputation.g:1610:1: ( ',' )
             {
-            // InternalComputation.g:1579:1: ( ',' )
-            // InternalComputation.g:1580:2: ','
+            // InternalComputation.g:1610:1: ( ',' )
+            // InternalComputation.g:1611:2: ','
             {
              before(grammarAccess.getMaxExpressionAccess().getCommaKeyword_3_0()); 
             match(input,29,FOLLOW_2); 
@@ -4785,14 +4893,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group_3__1"
-    // InternalComputation.g:1589:1: rule__MaxExpression__Group_3__1 : rule__MaxExpression__Group_3__1__Impl ;
+    // InternalComputation.g:1620:1: rule__MaxExpression__Group_3__1 : rule__MaxExpression__Group_3__1__Impl ;
     public final void rule__MaxExpression__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1593:1: ( rule__MaxExpression__Group_3__1__Impl )
-            // InternalComputation.g:1594:2: rule__MaxExpression__Group_3__1__Impl
+            // InternalComputation.g:1624:1: ( rule__MaxExpression__Group_3__1__Impl )
+            // InternalComputation.g:1625:2: rule__MaxExpression__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__MaxExpression__Group_3__1__Impl();
@@ -4818,21 +4926,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group_3__1__Impl"
-    // InternalComputation.g:1600:1: rule__MaxExpression__Group_3__1__Impl : ( ( rule__MaxExpression__ExprsAssignment_3_1 ) ) ;
+    // InternalComputation.g:1631:1: rule__MaxExpression__Group_3__1__Impl : ( ( rule__MaxExpression__ExprsAssignment_3_1 ) ) ;
     public final void rule__MaxExpression__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1604:1: ( ( ( rule__MaxExpression__ExprsAssignment_3_1 ) ) )
-            // InternalComputation.g:1605:1: ( ( rule__MaxExpression__ExprsAssignment_3_1 ) )
+            // InternalComputation.g:1635:1: ( ( ( rule__MaxExpression__ExprsAssignment_3_1 ) ) )
+            // InternalComputation.g:1636:1: ( ( rule__MaxExpression__ExprsAssignment_3_1 ) )
             {
-            // InternalComputation.g:1605:1: ( ( rule__MaxExpression__ExprsAssignment_3_1 ) )
-            // InternalComputation.g:1606:2: ( rule__MaxExpression__ExprsAssignment_3_1 )
+            // InternalComputation.g:1636:1: ( ( rule__MaxExpression__ExprsAssignment_3_1 ) )
+            // InternalComputation.g:1637:2: ( rule__MaxExpression__ExprsAssignment_3_1 )
             {
              before(grammarAccess.getMaxExpressionAccess().getExprsAssignment_3_1()); 
-            // InternalComputation.g:1607:2: ( rule__MaxExpression__ExprsAssignment_3_1 )
-            // InternalComputation.g:1607:3: rule__MaxExpression__ExprsAssignment_3_1
+            // InternalComputation.g:1638:2: ( rule__MaxExpression__ExprsAssignment_3_1 )
+            // InternalComputation.g:1638:3: rule__MaxExpression__ExprsAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__MaxExpression__ExprsAssignment_3_1();
@@ -4864,23 +4972,23 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
     // $ANTLR end "rule__MaxExpression__Group_3__1__Impl"
 
 
-    // $ANTLR start "rule__AddExpression__Group__0"
-    // InternalComputation.g:1616:1: rule__AddExpression__Group__0 : rule__AddExpression__Group__0__Impl rule__AddExpression__Group__1 ;
-    public final void rule__AddExpression__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__SumExpression__Group__0"
+    // InternalComputation.g:1647:1: rule__SumExpression__Group__0 : rule__SumExpression__Group__0__Impl rule__SumExpression__Group__1 ;
+    public final void rule__SumExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1620:1: ( rule__AddExpression__Group__0__Impl rule__AddExpression__Group__1 )
-            // InternalComputation.g:1621:2: rule__AddExpression__Group__0__Impl rule__AddExpression__Group__1
+            // InternalComputation.g:1651:1: ( rule__SumExpression__Group__0__Impl rule__SumExpression__Group__1 )
+            // InternalComputation.g:1652:2: rule__SumExpression__Group__0__Impl rule__SumExpression__Group__1
             {
-            pushFollow(FOLLOW_20);
-            rule__AddExpression__Group__0__Impl();
+            pushFollow(FOLLOW_23);
+            rule__SumExpression__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__AddExpression__Group__1();
+            rule__SumExpression__Group__1();
 
             state._fsp--;
 
@@ -4899,25 +5007,25 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__AddExpression__Group__0"
+    // $ANTLR end "rule__SumExpression__Group__0"
 
 
-    // $ANTLR start "rule__AddExpression__Group__0__Impl"
-    // InternalComputation.g:1628:1: rule__AddExpression__Group__0__Impl : ( '(' ) ;
-    public final void rule__AddExpression__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SumExpression__Group__0__Impl"
+    // InternalComputation.g:1659:1: rule__SumExpression__Group__0__Impl : ( 'sum' ) ;
+    public final void rule__SumExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1632:1: ( ( '(' ) )
-            // InternalComputation.g:1633:1: ( '(' )
+            // InternalComputation.g:1663:1: ( ( 'sum' ) )
+            // InternalComputation.g:1664:1: ( 'sum' )
             {
-            // InternalComputation.g:1633:1: ( '(' )
-            // InternalComputation.g:1634:2: '('
+            // InternalComputation.g:1664:1: ( 'sum' )
+            // InternalComputation.g:1665:2: 'sum'
             {
-             before(grammarAccess.getAddExpressionAccess().getLeftParenthesisKeyword_0()); 
-            match(input,27,FOLLOW_2); 
-             after(grammarAccess.getAddExpressionAccess().getLeftParenthesisKeyword_0()); 
+             before(grammarAccess.getSumExpressionAccess().getSumKeyword_0()); 
+            match(input,30,FOLLOW_2); 
+             after(grammarAccess.getSumExpressionAccess().getSumKeyword_0()); 
 
             }
 
@@ -4936,26 +5044,26 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__AddExpression__Group__0__Impl"
+    // $ANTLR end "rule__SumExpression__Group__0__Impl"
 
 
-    // $ANTLR start "rule__AddExpression__Group__1"
-    // InternalComputation.g:1643:1: rule__AddExpression__Group__1 : rule__AddExpression__Group__1__Impl rule__AddExpression__Group__2 ;
-    public final void rule__AddExpression__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__SumExpression__Group__1"
+    // InternalComputation.g:1674:1: rule__SumExpression__Group__1 : rule__SumExpression__Group__1__Impl rule__SumExpression__Group__2 ;
+    public final void rule__SumExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1647:1: ( rule__AddExpression__Group__1__Impl rule__AddExpression__Group__2 )
-            // InternalComputation.g:1648:2: rule__AddExpression__Group__1__Impl rule__AddExpression__Group__2
+            // InternalComputation.g:1678:1: ( rule__SumExpression__Group__1__Impl rule__SumExpression__Group__2 )
+            // InternalComputation.g:1679:2: rule__SumExpression__Group__1__Impl rule__SumExpression__Group__2
             {
-            pushFollow(FOLLOW_27);
-            rule__AddExpression__Group__1__Impl();
+            pushFollow(FOLLOW_20);
+            rule__SumExpression__Group__1__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__AddExpression__Group__2();
+            rule__SumExpression__Group__2();
 
             state._fsp--;
 
@@ -4974,35 +5082,25 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__AddExpression__Group__1"
+    // $ANTLR end "rule__SumExpression__Group__1"
 
 
-    // $ANTLR start "rule__AddExpression__Group__1__Impl"
-    // InternalComputation.g:1655:1: rule__AddExpression__Group__1__Impl : ( ( rule__AddExpression__Op1Assignment_1 ) ) ;
-    public final void rule__AddExpression__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SumExpression__Group__1__Impl"
+    // InternalComputation.g:1686:1: rule__SumExpression__Group__1__Impl : ( '(' ) ;
+    public final void rule__SumExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1659:1: ( ( ( rule__AddExpression__Op1Assignment_1 ) ) )
-            // InternalComputation.g:1660:1: ( ( rule__AddExpression__Op1Assignment_1 ) )
+            // InternalComputation.g:1690:1: ( ( '(' ) )
+            // InternalComputation.g:1691:1: ( '(' )
             {
-            // InternalComputation.g:1660:1: ( ( rule__AddExpression__Op1Assignment_1 ) )
-            // InternalComputation.g:1661:2: ( rule__AddExpression__Op1Assignment_1 )
+            // InternalComputation.g:1691:1: ( '(' )
+            // InternalComputation.g:1692:2: '('
             {
-             before(grammarAccess.getAddExpressionAccess().getOp1Assignment_1()); 
-            // InternalComputation.g:1662:2: ( rule__AddExpression__Op1Assignment_1 )
-            // InternalComputation.g:1662:3: rule__AddExpression__Op1Assignment_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__AddExpression__Op1Assignment_1();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getAddExpressionAccess().getOp1Assignment_1()); 
+             before(grammarAccess.getSumExpressionAccess().getLeftParenthesisKeyword_1()); 
+            match(input,27,FOLLOW_2); 
+             after(grammarAccess.getSumExpressionAccess().getLeftParenthesisKeyword_1()); 
 
             }
 
@@ -5021,26 +5119,26 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__AddExpression__Group__1__Impl"
+    // $ANTLR end "rule__SumExpression__Group__1__Impl"
 
 
-    // $ANTLR start "rule__AddExpression__Group__2"
-    // InternalComputation.g:1670:1: rule__AddExpression__Group__2 : rule__AddExpression__Group__2__Impl rule__AddExpression__Group__3 ;
-    public final void rule__AddExpression__Group__2() throws RecognitionException {
+    // $ANTLR start "rule__SumExpression__Group__2"
+    // InternalComputation.g:1701:1: rule__SumExpression__Group__2 : rule__SumExpression__Group__2__Impl rule__SumExpression__Group__3 ;
+    public final void rule__SumExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1674:1: ( rule__AddExpression__Group__2__Impl rule__AddExpression__Group__3 )
-            // InternalComputation.g:1675:2: rule__AddExpression__Group__2__Impl rule__AddExpression__Group__3
+            // InternalComputation.g:1705:1: ( rule__SumExpression__Group__2__Impl rule__SumExpression__Group__3 )
+            // InternalComputation.g:1706:2: rule__SumExpression__Group__2__Impl rule__SumExpression__Group__3
             {
-            pushFollow(FOLLOW_20);
-            rule__AddExpression__Group__2__Impl();
+            pushFollow(FOLLOW_24);
+            rule__SumExpression__Group__2__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__AddExpression__Group__3();
+            rule__SumExpression__Group__3();
 
             state._fsp--;
 
@@ -5059,25 +5157,35 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__AddExpression__Group__2"
+    // $ANTLR end "rule__SumExpression__Group__2"
 
 
-    // $ANTLR start "rule__AddExpression__Group__2__Impl"
-    // InternalComputation.g:1682:1: rule__AddExpression__Group__2__Impl : ( '+' ) ;
-    public final void rule__AddExpression__Group__2__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SumExpression__Group__2__Impl"
+    // InternalComputation.g:1713:1: rule__SumExpression__Group__2__Impl : ( ( rule__SumExpression__ExprsAssignment_2 ) ) ;
+    public final void rule__SumExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1686:1: ( ( '+' ) )
-            // InternalComputation.g:1687:1: ( '+' )
+            // InternalComputation.g:1717:1: ( ( ( rule__SumExpression__ExprsAssignment_2 ) ) )
+            // InternalComputation.g:1718:1: ( ( rule__SumExpression__ExprsAssignment_2 ) )
             {
-            // InternalComputation.g:1687:1: ( '+' )
-            // InternalComputation.g:1688:2: '+'
+            // InternalComputation.g:1718:1: ( ( rule__SumExpression__ExprsAssignment_2 ) )
+            // InternalComputation.g:1719:2: ( rule__SumExpression__ExprsAssignment_2 )
             {
-             before(grammarAccess.getAddExpressionAccess().getPlusSignKeyword_2()); 
-            match(input,30,FOLLOW_2); 
-             after(grammarAccess.getAddExpressionAccess().getPlusSignKeyword_2()); 
+             before(grammarAccess.getSumExpressionAccess().getExprsAssignment_2()); 
+            // InternalComputation.g:1720:2: ( rule__SumExpression__ExprsAssignment_2 )
+            // InternalComputation.g:1720:3: rule__SumExpression__ExprsAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__SumExpression__ExprsAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSumExpressionAccess().getExprsAssignment_2()); 
 
             }
 
@@ -5096,26 +5204,26 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__AddExpression__Group__2__Impl"
+    // $ANTLR end "rule__SumExpression__Group__2__Impl"
 
 
-    // $ANTLR start "rule__AddExpression__Group__3"
-    // InternalComputation.g:1697:1: rule__AddExpression__Group__3 : rule__AddExpression__Group__3__Impl rule__AddExpression__Group__4 ;
-    public final void rule__AddExpression__Group__3() throws RecognitionException {
+    // $ANTLR start "rule__SumExpression__Group__3"
+    // InternalComputation.g:1728:1: rule__SumExpression__Group__3 : rule__SumExpression__Group__3__Impl rule__SumExpression__Group__4 ;
+    public final void rule__SumExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1701:1: ( rule__AddExpression__Group__3__Impl rule__AddExpression__Group__4 )
-            // InternalComputation.g:1702:2: rule__AddExpression__Group__3__Impl rule__AddExpression__Group__4
+            // InternalComputation.g:1732:1: ( rule__SumExpression__Group__3__Impl rule__SumExpression__Group__4 )
+            // InternalComputation.g:1733:2: rule__SumExpression__Group__3__Impl rule__SumExpression__Group__4
             {
             pushFollow(FOLLOW_25);
-            rule__AddExpression__Group__3__Impl();
+            rule__SumExpression__Group__3__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__AddExpression__Group__4();
+            rule__SumExpression__Group__4();
 
             state._fsp--;
 
@@ -5134,35 +5242,78 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__AddExpression__Group__3"
+    // $ANTLR end "rule__SumExpression__Group__3"
 
 
-    // $ANTLR start "rule__AddExpression__Group__3__Impl"
-    // InternalComputation.g:1709:1: rule__AddExpression__Group__3__Impl : ( ( rule__AddExpression__Op2Assignment_3 ) ) ;
-    public final void rule__AddExpression__Group__3__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SumExpression__Group__3__Impl"
+    // InternalComputation.g:1740:1: rule__SumExpression__Group__3__Impl : ( ( ( rule__SumExpression__Group_3__0 ) ) ( ( rule__SumExpression__Group_3__0 )* ) ) ;
+    public final void rule__SumExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1713:1: ( ( ( rule__AddExpression__Op2Assignment_3 ) ) )
-            // InternalComputation.g:1714:1: ( ( rule__AddExpression__Op2Assignment_3 ) )
+            // InternalComputation.g:1744:1: ( ( ( ( rule__SumExpression__Group_3__0 ) ) ( ( rule__SumExpression__Group_3__0 )* ) ) )
+            // InternalComputation.g:1745:1: ( ( ( rule__SumExpression__Group_3__0 ) ) ( ( rule__SumExpression__Group_3__0 )* ) )
             {
-            // InternalComputation.g:1714:1: ( ( rule__AddExpression__Op2Assignment_3 ) )
-            // InternalComputation.g:1715:2: ( rule__AddExpression__Op2Assignment_3 )
+            // InternalComputation.g:1745:1: ( ( ( rule__SumExpression__Group_3__0 ) ) ( ( rule__SumExpression__Group_3__0 )* ) )
+            // InternalComputation.g:1746:2: ( ( rule__SumExpression__Group_3__0 ) ) ( ( rule__SumExpression__Group_3__0 )* )
             {
-             before(grammarAccess.getAddExpressionAccess().getOp2Assignment_3()); 
-            // InternalComputation.g:1716:2: ( rule__AddExpression__Op2Assignment_3 )
-            // InternalComputation.g:1716:3: rule__AddExpression__Op2Assignment_3
+            // InternalComputation.g:1746:2: ( ( rule__SumExpression__Group_3__0 ) )
+            // InternalComputation.g:1747:3: ( rule__SumExpression__Group_3__0 )
             {
-            pushFollow(FOLLOW_2);
-            rule__AddExpression__Op2Assignment_3();
+             before(grammarAccess.getSumExpressionAccess().getGroup_3()); 
+            // InternalComputation.g:1748:3: ( rule__SumExpression__Group_3__0 )
+            // InternalComputation.g:1748:4: rule__SumExpression__Group_3__0
+            {
+            pushFollow(FOLLOW_26);
+            rule__SumExpression__Group_3__0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getAddExpressionAccess().getOp2Assignment_3()); 
+             after(grammarAccess.getSumExpressionAccess().getGroup_3()); 
+
+            }
+
+            // InternalComputation.g:1751:2: ( ( rule__SumExpression__Group_3__0 )* )
+            // InternalComputation.g:1752:3: ( rule__SumExpression__Group_3__0 )*
+            {
+             before(grammarAccess.getSumExpressionAccess().getGroup_3()); 
+            // InternalComputation.g:1753:3: ( rule__SumExpression__Group_3__0 )*
+            loop9:
+            do {
+                int alt9=2;
+                int LA9_0 = input.LA(1);
+
+                if ( (LA9_0==29) ) {
+                    alt9=1;
+                }
+
+
+                switch (alt9) {
+            	case 1 :
+            	    // InternalComputation.g:1753:4: rule__SumExpression__Group_3__0
+            	    {
+            	    pushFollow(FOLLOW_26);
+            	    rule__SumExpression__Group_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop9;
+                }
+            } while (true);
+
+             after(grammarAccess.getSumExpressionAccess().getGroup_3()); 
+
+            }
+
 
             }
 
@@ -5181,21 +5332,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__AddExpression__Group__3__Impl"
+    // $ANTLR end "rule__SumExpression__Group__3__Impl"
 
 
-    // $ANTLR start "rule__AddExpression__Group__4"
-    // InternalComputation.g:1724:1: rule__AddExpression__Group__4 : rule__AddExpression__Group__4__Impl ;
-    public final void rule__AddExpression__Group__4() throws RecognitionException {
+    // $ANTLR start "rule__SumExpression__Group__4"
+    // InternalComputation.g:1762:1: rule__SumExpression__Group__4 : rule__SumExpression__Group__4__Impl ;
+    public final void rule__SumExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1728:1: ( rule__AddExpression__Group__4__Impl )
-            // InternalComputation.g:1729:2: rule__AddExpression__Group__4__Impl
+            // InternalComputation.g:1766:1: ( rule__SumExpression__Group__4__Impl )
+            // InternalComputation.g:1767:2: rule__SumExpression__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__AddExpression__Group__4__Impl();
+            rule__SumExpression__Group__4__Impl();
 
             state._fsp--;
 
@@ -5214,25 +5365,25 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__AddExpression__Group__4"
+    // $ANTLR end "rule__SumExpression__Group__4"
 
 
-    // $ANTLR start "rule__AddExpression__Group__4__Impl"
-    // InternalComputation.g:1735:1: rule__AddExpression__Group__4__Impl : ( ')' ) ;
-    public final void rule__AddExpression__Group__4__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SumExpression__Group__4__Impl"
+    // InternalComputation.g:1773:1: rule__SumExpression__Group__4__Impl : ( ')' ) ;
+    public final void rule__SumExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1739:1: ( ( ')' ) )
-            // InternalComputation.g:1740:1: ( ')' )
+            // InternalComputation.g:1777:1: ( ( ')' ) )
+            // InternalComputation.g:1778:1: ( ')' )
             {
-            // InternalComputation.g:1740:1: ( ')' )
-            // InternalComputation.g:1741:2: ')'
+            // InternalComputation.g:1778:1: ( ')' )
+            // InternalComputation.g:1779:2: ')'
             {
-             before(grammarAccess.getAddExpressionAccess().getRightParenthesisKeyword_4()); 
+             before(grammarAccess.getSumExpressionAccess().getRightParenthesisKeyword_4()); 
             match(input,28,FOLLOW_2); 
-             after(grammarAccess.getAddExpressionAccess().getRightParenthesisKeyword_4()); 
+             after(grammarAccess.getSumExpressionAccess().getRightParenthesisKeyword_4()); 
 
             }
 
@@ -5251,26 +5402,26 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__AddExpression__Group__4__Impl"
+    // $ANTLR end "rule__SumExpression__Group__4__Impl"
 
 
-    // $ANTLR start "rule__OperandTerm__Group__0"
-    // InternalComputation.g:1751:1: rule__OperandTerm__Group__0 : rule__OperandTerm__Group__0__Impl rule__OperandTerm__Group__1 ;
-    public final void rule__OperandTerm__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__SumExpression__Group_3__0"
+    // InternalComputation.g:1789:1: rule__SumExpression__Group_3__0 : rule__SumExpression__Group_3__0__Impl rule__SumExpression__Group_3__1 ;
+    public final void rule__SumExpression__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1755:1: ( rule__OperandTerm__Group__0__Impl rule__OperandTerm__Group__1 )
-            // InternalComputation.g:1756:2: rule__OperandTerm__Group__0__Impl rule__OperandTerm__Group__1
+            // InternalComputation.g:1793:1: ( rule__SumExpression__Group_3__0__Impl rule__SumExpression__Group_3__1 )
+            // InternalComputation.g:1794:2: rule__SumExpression__Group_3__0__Impl rule__SumExpression__Group_3__1
             {
             pushFollow(FOLLOW_20);
-            rule__OperandTerm__Group__0__Impl();
+            rule__SumExpression__Group_3__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__OperandTerm__Group__1();
+            rule__SumExpression__Group_3__1();
 
             state._fsp--;
 
@@ -5289,46 +5440,25 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__OperandTerm__Group__0"
+    // $ANTLR end "rule__SumExpression__Group_3__0"
 
 
-    // $ANTLR start "rule__OperandTerm__Group__0__Impl"
-    // InternalComputation.g:1763:1: rule__OperandTerm__Group__0__Impl : ( ( rule__OperandTerm__CoefAssignment_0 )? ) ;
-    public final void rule__OperandTerm__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SumExpression__Group_3__0__Impl"
+    // InternalComputation.g:1801:1: rule__SumExpression__Group_3__0__Impl : ( ',' ) ;
+    public final void rule__SumExpression__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1767:1: ( ( ( rule__OperandTerm__CoefAssignment_0 )? ) )
-            // InternalComputation.g:1768:1: ( ( rule__OperandTerm__CoefAssignment_0 )? )
+            // InternalComputation.g:1805:1: ( ( ',' ) )
+            // InternalComputation.g:1806:1: ( ',' )
             {
-            // InternalComputation.g:1768:1: ( ( rule__OperandTerm__CoefAssignment_0 )? )
-            // InternalComputation.g:1769:2: ( rule__OperandTerm__CoefAssignment_0 )?
+            // InternalComputation.g:1806:1: ( ',' )
+            // InternalComputation.g:1807:2: ','
             {
-             before(grammarAccess.getOperandTermAccess().getCoefAssignment_0()); 
-            // InternalComputation.g:1770:2: ( rule__OperandTerm__CoefAssignment_0 )?
-            int alt9=2;
-            int LA9_0 = input.LA(1);
-
-            if ( (LA9_0==RULE_INT) ) {
-                alt9=1;
-            }
-            switch (alt9) {
-                case 1 :
-                    // InternalComputation.g:1770:3: rule__OperandTerm__CoefAssignment_0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__OperandTerm__CoefAssignment_0();
-
-                    state._fsp--;
-
-
-                    }
-                    break;
-
-            }
-
-             after(grammarAccess.getOperandTermAccess().getCoefAssignment_0()); 
+             before(grammarAccess.getSumExpressionAccess().getCommaKeyword_3_0()); 
+            match(input,29,FOLLOW_2); 
+             after(grammarAccess.getSumExpressionAccess().getCommaKeyword_3_0()); 
 
             }
 
@@ -5347,21 +5477,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__OperandTerm__Group__0__Impl"
+    // $ANTLR end "rule__SumExpression__Group_3__0__Impl"
 
 
-    // $ANTLR start "rule__OperandTerm__Group__1"
-    // InternalComputation.g:1778:1: rule__OperandTerm__Group__1 : rule__OperandTerm__Group__1__Impl ;
-    public final void rule__OperandTerm__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__SumExpression__Group_3__1"
+    // InternalComputation.g:1816:1: rule__SumExpression__Group_3__1 : rule__SumExpression__Group_3__1__Impl ;
+    public final void rule__SumExpression__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1782:1: ( rule__OperandTerm__Group__1__Impl )
-            // InternalComputation.g:1783:2: rule__OperandTerm__Group__1__Impl
+            // InternalComputation.g:1820:1: ( rule__SumExpression__Group_3__1__Impl )
+            // InternalComputation.g:1821:2: rule__SumExpression__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__OperandTerm__Group__1__Impl();
+            rule__SumExpression__Group_3__1__Impl();
 
             state._fsp--;
 
@@ -5380,35 +5510,35 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__OperandTerm__Group__1"
+    // $ANTLR end "rule__SumExpression__Group_3__1"
 
 
-    // $ANTLR start "rule__OperandTerm__Group__1__Impl"
-    // InternalComputation.g:1789:1: rule__OperandTerm__Group__1__Impl : ( ( rule__OperandTerm__NameAssignment_1 ) ) ;
-    public final void rule__OperandTerm__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SumExpression__Group_3__1__Impl"
+    // InternalComputation.g:1827:1: rule__SumExpression__Group_3__1__Impl : ( ( rule__SumExpression__ExprsAssignment_3_1 ) ) ;
+    public final void rule__SumExpression__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1793:1: ( ( ( rule__OperandTerm__NameAssignment_1 ) ) )
-            // InternalComputation.g:1794:1: ( ( rule__OperandTerm__NameAssignment_1 ) )
+            // InternalComputation.g:1831:1: ( ( ( rule__SumExpression__ExprsAssignment_3_1 ) ) )
+            // InternalComputation.g:1832:1: ( ( rule__SumExpression__ExprsAssignment_3_1 ) )
             {
-            // InternalComputation.g:1794:1: ( ( rule__OperandTerm__NameAssignment_1 ) )
-            // InternalComputation.g:1795:2: ( rule__OperandTerm__NameAssignment_1 )
+            // InternalComputation.g:1832:1: ( ( rule__SumExpression__ExprsAssignment_3_1 ) )
+            // InternalComputation.g:1833:2: ( rule__SumExpression__ExprsAssignment_3_1 )
             {
-             before(grammarAccess.getOperandTermAccess().getNameAssignment_1()); 
-            // InternalComputation.g:1796:2: ( rule__OperandTerm__NameAssignment_1 )
-            // InternalComputation.g:1796:3: rule__OperandTerm__NameAssignment_1
+             before(grammarAccess.getSumExpressionAccess().getExprsAssignment_3_1()); 
+            // InternalComputation.g:1834:2: ( rule__SumExpression__ExprsAssignment_3_1 )
+            // InternalComputation.g:1834:3: rule__SumExpression__ExprsAssignment_3_1
             {
             pushFollow(FOLLOW_2);
-            rule__OperandTerm__NameAssignment_1();
+            rule__SumExpression__ExprsAssignment_3_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getOperandTermAccess().getNameAssignment_1()); 
+             after(grammarAccess.getSumExpressionAccess().getExprsAssignment_3_1()); 
 
             }
 
@@ -5427,26 +5557,26 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__OperandTerm__Group__1__Impl"
+    // $ANTLR end "rule__SumExpression__Group_3__1__Impl"
 
 
-    // $ANTLR start "rule__SummationExpression__Group_0__0"
-    // InternalComputation.g:1805:1: rule__SummationExpression__Group_0__0 : rule__SummationExpression__Group_0__0__Impl rule__SummationExpression__Group_0__1 ;
-    public final void rule__SummationExpression__Group_0__0() throws RecognitionException {
+    // $ANTLR start "rule__AddExpression__Group__0"
+    // InternalComputation.g:1843:1: rule__AddExpression__Group__0 : rule__AddExpression__Group__0__Impl rule__AddExpression__Group__1 ;
+    public final void rule__AddExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1809:1: ( rule__SummationExpression__Group_0__0__Impl rule__SummationExpression__Group_0__1 )
-            // InternalComputation.g:1810:2: rule__SummationExpression__Group_0__0__Impl rule__SummationExpression__Group_0__1
+            // InternalComputation.g:1847:1: ( rule__AddExpression__Group__0__Impl rule__AddExpression__Group__1 )
+            // InternalComputation.g:1848:2: rule__AddExpression__Group__0__Impl rule__AddExpression__Group__1
             {
-            pushFollow(FOLLOW_27);
-            rule__SummationExpression__Group_0__0__Impl();
+            pushFollow(FOLLOW_20);
+            rule__AddExpression__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__SummationExpression__Group_0__1();
+            rule__AddExpression__Group__1();
 
             state._fsp--;
 
@@ -5465,35 +5595,25 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__SummationExpression__Group_0__0"
+    // $ANTLR end "rule__AddExpression__Group__0"
 
 
-    // $ANTLR start "rule__SummationExpression__Group_0__0__Impl"
-    // InternalComputation.g:1817:1: rule__SummationExpression__Group_0__0__Impl : ( ( rule__SummationExpression__Group_0_0__0 ) ) ;
-    public final void rule__SummationExpression__Group_0__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddExpression__Group__0__Impl"
+    // InternalComputation.g:1855:1: rule__AddExpression__Group__0__Impl : ( '(' ) ;
+    public final void rule__AddExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1821:1: ( ( ( rule__SummationExpression__Group_0_0__0 ) ) )
-            // InternalComputation.g:1822:1: ( ( rule__SummationExpression__Group_0_0__0 ) )
-            {
-            // InternalComputation.g:1822:1: ( ( rule__SummationExpression__Group_0_0__0 ) )
-            // InternalComputation.g:1823:2: ( rule__SummationExpression__Group_0_0__0 )
+            // InternalComputation.g:1859:1: ( ( '(' ) )
+            // InternalComputation.g:1860:1: ( '(' )
             {
-             before(grammarAccess.getSummationExpressionAccess().getGroup_0_0()); 
-            // InternalComputation.g:1824:2: ( rule__SummationExpression__Group_0_0__0 )
-            // InternalComputation.g:1824:3: rule__SummationExpression__Group_0_0__0
+            // InternalComputation.g:1860:1: ( '(' )
+            // InternalComputation.g:1861:2: '('
             {
-            pushFollow(FOLLOW_2);
-            rule__SummationExpression__Group_0_0__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getSummationExpressionAccess().getGroup_0_0()); 
+             before(grammarAccess.getAddExpressionAccess().getLeftParenthesisKeyword_0()); 
+            match(input,27,FOLLOW_2); 
+             after(grammarAccess.getAddExpressionAccess().getLeftParenthesisKeyword_0()); 
 
             }
 
@@ -5512,18 +5632,594 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__SummationExpression__Group_0__0__Impl"
+    // $ANTLR end "rule__AddExpression__Group__0__Impl"
 
 
-    // $ANTLR start "rule__SummationExpression__Group_0__1"
-    // InternalComputation.g:1832:1: rule__SummationExpression__Group_0__1 : rule__SummationExpression__Group_0__1__Impl ;
+    // $ANTLR start "rule__AddExpression__Group__1"
+    // InternalComputation.g:1870:1: rule__AddExpression__Group__1 : rule__AddExpression__Group__1__Impl rule__AddExpression__Group__2 ;
+    public final void rule__AddExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalComputation.g:1874:1: ( rule__AddExpression__Group__1__Impl rule__AddExpression__Group__2 )
+            // InternalComputation.g:1875:2: rule__AddExpression__Group__1__Impl rule__AddExpression__Group__2
+            {
+            pushFollow(FOLLOW_27);
+            rule__AddExpression__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__AddExpression__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AddExpression__Group__1"
+
+
+    // $ANTLR start "rule__AddExpression__Group__1__Impl"
+    // InternalComputation.g:1882:1: rule__AddExpression__Group__1__Impl : ( ( rule__AddExpression__Op1Assignment_1 ) ) ;
+    public final void rule__AddExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalComputation.g:1886:1: ( ( ( rule__AddExpression__Op1Assignment_1 ) ) )
+            // InternalComputation.g:1887:1: ( ( rule__AddExpression__Op1Assignment_1 ) )
+            {
+            // InternalComputation.g:1887:1: ( ( rule__AddExpression__Op1Assignment_1 ) )
+            // InternalComputation.g:1888:2: ( rule__AddExpression__Op1Assignment_1 )
+            {
+             before(grammarAccess.getAddExpressionAccess().getOp1Assignment_1()); 
+            // InternalComputation.g:1889:2: ( rule__AddExpression__Op1Assignment_1 )
+            // InternalComputation.g:1889:3: rule__AddExpression__Op1Assignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__AddExpression__Op1Assignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAddExpressionAccess().getOp1Assignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AddExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__AddExpression__Group__2"
+    // InternalComputation.g:1897:1: rule__AddExpression__Group__2 : rule__AddExpression__Group__2__Impl rule__AddExpression__Group__3 ;
+    public final void rule__AddExpression__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalComputation.g:1901:1: ( rule__AddExpression__Group__2__Impl rule__AddExpression__Group__3 )
+            // InternalComputation.g:1902:2: rule__AddExpression__Group__2__Impl rule__AddExpression__Group__3
+            {
+            pushFollow(FOLLOW_20);
+            rule__AddExpression__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__AddExpression__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AddExpression__Group__2"
+
+
+    // $ANTLR start "rule__AddExpression__Group__2__Impl"
+    // InternalComputation.g:1909:1: rule__AddExpression__Group__2__Impl : ( '+' ) ;
+    public final void rule__AddExpression__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalComputation.g:1913:1: ( ( '+' ) )
+            // InternalComputation.g:1914:1: ( '+' )
+            {
+            // InternalComputation.g:1914:1: ( '+' )
+            // InternalComputation.g:1915:2: '+'
+            {
+             before(grammarAccess.getAddExpressionAccess().getPlusSignKeyword_2()); 
+            match(input,31,FOLLOW_2); 
+             after(grammarAccess.getAddExpressionAccess().getPlusSignKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AddExpression__Group__2__Impl"
+
+
+    // $ANTLR start "rule__AddExpression__Group__3"
+    // InternalComputation.g:1924:1: rule__AddExpression__Group__3 : rule__AddExpression__Group__3__Impl rule__AddExpression__Group__4 ;
+    public final void rule__AddExpression__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalComputation.g:1928:1: ( rule__AddExpression__Group__3__Impl rule__AddExpression__Group__4 )
+            // InternalComputation.g:1929:2: rule__AddExpression__Group__3__Impl rule__AddExpression__Group__4
+            {
+            pushFollow(FOLLOW_25);
+            rule__AddExpression__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__AddExpression__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AddExpression__Group__3"
+
+
+    // $ANTLR start "rule__AddExpression__Group__3__Impl"
+    // InternalComputation.g:1936:1: rule__AddExpression__Group__3__Impl : ( ( rule__AddExpression__Op2Assignment_3 ) ) ;
+    public final void rule__AddExpression__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalComputation.g:1940:1: ( ( ( rule__AddExpression__Op2Assignment_3 ) ) )
+            // InternalComputation.g:1941:1: ( ( rule__AddExpression__Op2Assignment_3 ) )
+            {
+            // InternalComputation.g:1941:1: ( ( rule__AddExpression__Op2Assignment_3 ) )
+            // InternalComputation.g:1942:2: ( rule__AddExpression__Op2Assignment_3 )
+            {
+             before(grammarAccess.getAddExpressionAccess().getOp2Assignment_3()); 
+            // InternalComputation.g:1943:2: ( rule__AddExpression__Op2Assignment_3 )
+            // InternalComputation.g:1943:3: rule__AddExpression__Op2Assignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__AddExpression__Op2Assignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAddExpressionAccess().getOp2Assignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AddExpression__Group__3__Impl"
+
+
+    // $ANTLR start "rule__AddExpression__Group__4"
+    // InternalComputation.g:1951:1: rule__AddExpression__Group__4 : rule__AddExpression__Group__4__Impl ;
+    public final void rule__AddExpression__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalComputation.g:1955:1: ( rule__AddExpression__Group__4__Impl )
+            // InternalComputation.g:1956:2: rule__AddExpression__Group__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__AddExpression__Group__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AddExpression__Group__4"
+
+
+    // $ANTLR start "rule__AddExpression__Group__4__Impl"
+    // InternalComputation.g:1962:1: rule__AddExpression__Group__4__Impl : ( ')' ) ;
+    public final void rule__AddExpression__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalComputation.g:1966:1: ( ( ')' ) )
+            // InternalComputation.g:1967:1: ( ')' )
+            {
+            // InternalComputation.g:1967:1: ( ')' )
+            // InternalComputation.g:1968:2: ')'
+            {
+             before(grammarAccess.getAddExpressionAccess().getRightParenthesisKeyword_4()); 
+            match(input,28,FOLLOW_2); 
+             after(grammarAccess.getAddExpressionAccess().getRightParenthesisKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AddExpression__Group__4__Impl"
+
+
+    // $ANTLR start "rule__OperandTerm__Group__0"
+    // InternalComputation.g:1978:1: rule__OperandTerm__Group__0 : rule__OperandTerm__Group__0__Impl rule__OperandTerm__Group__1 ;
+    public final void rule__OperandTerm__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalComputation.g:1982:1: ( rule__OperandTerm__Group__0__Impl rule__OperandTerm__Group__1 )
+            // InternalComputation.g:1983:2: rule__OperandTerm__Group__0__Impl rule__OperandTerm__Group__1
+            {
+            pushFollow(FOLLOW_20);
+            rule__OperandTerm__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__OperandTerm__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OperandTerm__Group__0"
+
+
+    // $ANTLR start "rule__OperandTerm__Group__0__Impl"
+    // InternalComputation.g:1990:1: rule__OperandTerm__Group__0__Impl : ( ( rule__OperandTerm__CoefAssignment_0 )? ) ;
+    public final void rule__OperandTerm__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalComputation.g:1994:1: ( ( ( rule__OperandTerm__CoefAssignment_0 )? ) )
+            // InternalComputation.g:1995:1: ( ( rule__OperandTerm__CoefAssignment_0 )? )
+            {
+            // InternalComputation.g:1995:1: ( ( rule__OperandTerm__CoefAssignment_0 )? )
+            // InternalComputation.g:1996:2: ( rule__OperandTerm__CoefAssignment_0 )?
+            {
+             before(grammarAccess.getOperandTermAccess().getCoefAssignment_0()); 
+            // InternalComputation.g:1997:2: ( rule__OperandTerm__CoefAssignment_0 )?
+            int alt10=2;
+            int LA10_0 = input.LA(1);
+
+            if ( (LA10_0==RULE_INT) ) {
+                alt10=1;
+            }
+            switch (alt10) {
+                case 1 :
+                    // InternalComputation.g:1997:3: rule__OperandTerm__CoefAssignment_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__OperandTerm__CoefAssignment_0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getOperandTermAccess().getCoefAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OperandTerm__Group__0__Impl"
+
+
+    // $ANTLR start "rule__OperandTerm__Group__1"
+    // InternalComputation.g:2005:1: rule__OperandTerm__Group__1 : rule__OperandTerm__Group__1__Impl ;
+    public final void rule__OperandTerm__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalComputation.g:2009:1: ( rule__OperandTerm__Group__1__Impl )
+            // InternalComputation.g:2010:2: rule__OperandTerm__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__OperandTerm__Group__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OperandTerm__Group__1"
+
+
+    // $ANTLR start "rule__OperandTerm__Group__1__Impl"
+    // InternalComputation.g:2016:1: rule__OperandTerm__Group__1__Impl : ( ( rule__OperandTerm__NameAssignment_1 ) ) ;
+    public final void rule__OperandTerm__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalComputation.g:2020:1: ( ( ( rule__OperandTerm__NameAssignment_1 ) ) )
+            // InternalComputation.g:2021:1: ( ( rule__OperandTerm__NameAssignment_1 ) )
+            {
+            // InternalComputation.g:2021:1: ( ( rule__OperandTerm__NameAssignment_1 ) )
+            // InternalComputation.g:2022:2: ( rule__OperandTerm__NameAssignment_1 )
+            {
+             before(grammarAccess.getOperandTermAccess().getNameAssignment_1()); 
+            // InternalComputation.g:2023:2: ( rule__OperandTerm__NameAssignment_1 )
+            // InternalComputation.g:2023:3: rule__OperandTerm__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__OperandTerm__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOperandTermAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OperandTerm__Group__1__Impl"
+
+
+    // $ANTLR start "rule__SummationExpression__Group_0__0"
+    // InternalComputation.g:2032:1: rule__SummationExpression__Group_0__0 : rule__SummationExpression__Group_0__0__Impl rule__SummationExpression__Group_0__1 ;
+    public final void rule__SummationExpression__Group_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalComputation.g:2036:1: ( rule__SummationExpression__Group_0__0__Impl rule__SummationExpression__Group_0__1 )
+            // InternalComputation.g:2037:2: rule__SummationExpression__Group_0__0__Impl rule__SummationExpression__Group_0__1
+            {
+            pushFollow(FOLLOW_27);
+            rule__SummationExpression__Group_0__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__SummationExpression__Group_0__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SummationExpression__Group_0__0"
+
+
+    // $ANTLR start "rule__SummationExpression__Group_0__0__Impl"
+    // InternalComputation.g:2044:1: rule__SummationExpression__Group_0__0__Impl : ( ( rule__SummationExpression__Group_0_0__0 ) ) ;
+    public final void rule__SummationExpression__Group_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalComputation.g:2048:1: ( ( ( rule__SummationExpression__Group_0_0__0 ) ) )
+            // InternalComputation.g:2049:1: ( ( rule__SummationExpression__Group_0_0__0 ) )
+            {
+            // InternalComputation.g:2049:1: ( ( rule__SummationExpression__Group_0_0__0 ) )
+            // InternalComputation.g:2050:2: ( rule__SummationExpression__Group_0_0__0 )
+            {
+             before(grammarAccess.getSummationExpressionAccess().getGroup_0_0()); 
+            // InternalComputation.g:2051:2: ( rule__SummationExpression__Group_0_0__0 )
+            // InternalComputation.g:2051:3: rule__SummationExpression__Group_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__SummationExpression__Group_0_0__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSummationExpressionAccess().getGroup_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SummationExpression__Group_0__0__Impl"
+
+
+    // $ANTLR start "rule__SummationExpression__Group_0__1"
+    // InternalComputation.g:2059:1: rule__SummationExpression__Group_0__1 : rule__SummationExpression__Group_0__1__Impl ;
     public final void rule__SummationExpression__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1836:1: ( rule__SummationExpression__Group_0__1__Impl )
-            // InternalComputation.g:1837:2: rule__SummationExpression__Group_0__1__Impl
+            // InternalComputation.g:2063:1: ( rule__SummationExpression__Group_0__1__Impl )
+            // InternalComputation.g:2064:2: rule__SummationExpression__Group_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SummationExpression__Group_0__1__Impl();
@@ -5549,29 +6245,29 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0__1__Impl"
-    // InternalComputation.g:1843:1: rule__SummationExpression__Group_0__1__Impl : ( ( rule__SummationExpression__Group_0_1__0 )? ) ;
+    // InternalComputation.g:2070:1: rule__SummationExpression__Group_0__1__Impl : ( ( rule__SummationExpression__Group_0_1__0 )? ) ;
     public final void rule__SummationExpression__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1847:1: ( ( ( rule__SummationExpression__Group_0_1__0 )? ) )
-            // InternalComputation.g:1848:1: ( ( rule__SummationExpression__Group_0_1__0 )? )
+            // InternalComputation.g:2074:1: ( ( ( rule__SummationExpression__Group_0_1__0 )? ) )
+            // InternalComputation.g:2075:1: ( ( rule__SummationExpression__Group_0_1__0 )? )
             {
-            // InternalComputation.g:1848:1: ( ( rule__SummationExpression__Group_0_1__0 )? )
-            // InternalComputation.g:1849:2: ( rule__SummationExpression__Group_0_1__0 )?
+            // InternalComputation.g:2075:1: ( ( rule__SummationExpression__Group_0_1__0 )? )
+            // InternalComputation.g:2076:2: ( rule__SummationExpression__Group_0_1__0 )?
             {
              before(grammarAccess.getSummationExpressionAccess().getGroup_0_1()); 
-            // InternalComputation.g:1850:2: ( rule__SummationExpression__Group_0_1__0 )?
-            int alt10=2;
-            int LA10_0 = input.LA(1);
+            // InternalComputation.g:2077:2: ( rule__SummationExpression__Group_0_1__0 )?
+            int alt11=2;
+            int LA11_0 = input.LA(1);
 
-            if ( (LA10_0==30) ) {
-                alt10=1;
+            if ( (LA11_0==31) ) {
+                alt11=1;
             }
-            switch (alt10) {
+            switch (alt11) {
                 case 1 :
-                    // InternalComputation.g:1850:3: rule__SummationExpression__Group_0_1__0
+                    // InternalComputation.g:2077:3: rule__SummationExpression__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__SummationExpression__Group_0_1__0();
@@ -5607,14 +6303,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_0__0"
-    // InternalComputation.g:1859:1: rule__SummationExpression__Group_0_0__0 : rule__SummationExpression__Group_0_0__0__Impl rule__SummationExpression__Group_0_0__1 ;
+    // InternalComputation.g:2086:1: rule__SummationExpression__Group_0_0__0 : rule__SummationExpression__Group_0_0__0__Impl rule__SummationExpression__Group_0_0__1 ;
     public final void rule__SummationExpression__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1863:1: ( rule__SummationExpression__Group_0_0__0__Impl rule__SummationExpression__Group_0_0__1 )
-            // InternalComputation.g:1864:2: rule__SummationExpression__Group_0_0__0__Impl rule__SummationExpression__Group_0_0__1
+            // InternalComputation.g:2090:1: ( rule__SummationExpression__Group_0_0__0__Impl rule__SummationExpression__Group_0_0__1 )
+            // InternalComputation.g:2091:2: rule__SummationExpression__Group_0_0__0__Impl rule__SummationExpression__Group_0_0__1
             {
             pushFollow(FOLLOW_27);
             rule__SummationExpression__Group_0_0__0__Impl();
@@ -5645,21 +6341,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_0__0__Impl"
-    // InternalComputation.g:1871:1: rule__SummationExpression__Group_0_0__0__Impl : ( ( rule__SummationExpression__TermsAssignment_0_0_0 ) ) ;
+    // InternalComputation.g:2098:1: rule__SummationExpression__Group_0_0__0__Impl : ( ( rule__SummationExpression__TermsAssignment_0_0_0 ) ) ;
     public final void rule__SummationExpression__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1875:1: ( ( ( rule__SummationExpression__TermsAssignment_0_0_0 ) ) )
-            // InternalComputation.g:1876:1: ( ( rule__SummationExpression__TermsAssignment_0_0_0 ) )
+            // InternalComputation.g:2102:1: ( ( ( rule__SummationExpression__TermsAssignment_0_0_0 ) ) )
+            // InternalComputation.g:2103:1: ( ( rule__SummationExpression__TermsAssignment_0_0_0 ) )
             {
-            // InternalComputation.g:1876:1: ( ( rule__SummationExpression__TermsAssignment_0_0_0 ) )
-            // InternalComputation.g:1877:2: ( rule__SummationExpression__TermsAssignment_0_0_0 )
+            // InternalComputation.g:2103:1: ( ( rule__SummationExpression__TermsAssignment_0_0_0 ) )
+            // InternalComputation.g:2104:2: ( rule__SummationExpression__TermsAssignment_0_0_0 )
             {
              before(grammarAccess.getSummationExpressionAccess().getTermsAssignment_0_0_0()); 
-            // InternalComputation.g:1878:2: ( rule__SummationExpression__TermsAssignment_0_0_0 )
-            // InternalComputation.g:1878:3: rule__SummationExpression__TermsAssignment_0_0_0
+            // InternalComputation.g:2105:2: ( rule__SummationExpression__TermsAssignment_0_0_0 )
+            // InternalComputation.g:2105:3: rule__SummationExpression__TermsAssignment_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__SummationExpression__TermsAssignment_0_0_0();
@@ -5692,14 +6388,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_0__1"
-    // InternalComputation.g:1886:1: rule__SummationExpression__Group_0_0__1 : rule__SummationExpression__Group_0_0__1__Impl ;
+    // InternalComputation.g:2113:1: rule__SummationExpression__Group_0_0__1 : rule__SummationExpression__Group_0_0__1__Impl ;
     public final void rule__SummationExpression__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1890:1: ( rule__SummationExpression__Group_0_0__1__Impl )
-            // InternalComputation.g:1891:2: rule__SummationExpression__Group_0_0__1__Impl
+            // InternalComputation.g:2117:1: ( rule__SummationExpression__Group_0_0__1__Impl )
+            // InternalComputation.g:2118:2: rule__SummationExpression__Group_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SummationExpression__Group_0_0__1__Impl();
@@ -5725,48 +6421,48 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_0__1__Impl"
-    // InternalComputation.g:1897:1: rule__SummationExpression__Group_0_0__1__Impl : ( ( rule__SummationExpression__Group_0_0_1__0 )* ) ;
+    // InternalComputation.g:2124:1: rule__SummationExpression__Group_0_0__1__Impl : ( ( rule__SummationExpression__Group_0_0_1__0 )* ) ;
     public final void rule__SummationExpression__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1901:1: ( ( ( rule__SummationExpression__Group_0_0_1__0 )* ) )
-            // InternalComputation.g:1902:1: ( ( rule__SummationExpression__Group_0_0_1__0 )* )
+            // InternalComputation.g:2128:1: ( ( ( rule__SummationExpression__Group_0_0_1__0 )* ) )
+            // InternalComputation.g:2129:1: ( ( rule__SummationExpression__Group_0_0_1__0 )* )
             {
-            // InternalComputation.g:1902:1: ( ( rule__SummationExpression__Group_0_0_1__0 )* )
-            // InternalComputation.g:1903:2: ( rule__SummationExpression__Group_0_0_1__0 )*
+            // InternalComputation.g:2129:1: ( ( rule__SummationExpression__Group_0_0_1__0 )* )
+            // InternalComputation.g:2130:2: ( rule__SummationExpression__Group_0_0_1__0 )*
             {
              before(grammarAccess.getSummationExpressionAccess().getGroup_0_0_1()); 
-            // InternalComputation.g:1904:2: ( rule__SummationExpression__Group_0_0_1__0 )*
-            loop11:
+            // InternalComputation.g:2131:2: ( rule__SummationExpression__Group_0_0_1__0 )*
+            loop12:
             do {
-                int alt11=2;
-                int LA11_0 = input.LA(1);
+                int alt12=2;
+                int LA12_0 = input.LA(1);
 
-                if ( (LA11_0==30) ) {
-                    int LA11_1 = input.LA(2);
+                if ( (LA12_0==31) ) {
+                    int LA12_1 = input.LA(2);
 
-                    if ( (LA11_1==RULE_INT) ) {
-                        int LA11_3 = input.LA(3);
+                    if ( (LA12_1==RULE_INT) ) {
+                        int LA12_3 = input.LA(3);
 
-                        if ( (LA11_3==RULE_ID) ) {
-                            alt11=1;
+                        if ( (LA12_3==RULE_ID) ) {
+                            alt12=1;
                         }
 
 
                     }
-                    else if ( (LA11_1==RULE_ID) ) {
-                        alt11=1;
+                    else if ( (LA12_1==RULE_ID) ) {
+                        alt12=1;
                     }
 
 
                 }
 
 
-                switch (alt11) {
+                switch (alt12) {
             	case 1 :
-            	    // InternalComputation.g:1904:3: rule__SummationExpression__Group_0_0_1__0
+            	    // InternalComputation.g:2131:3: rule__SummationExpression__Group_0_0_1__0
             	    {
             	    pushFollow(FOLLOW_28);
             	    rule__SummationExpression__Group_0_0_1__0();
@@ -5778,7 +6474,7 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
             	    break;
 
             	default :
-            	    break loop11;
+            	    break loop12;
                 }
             } while (true);
 
@@ -5805,14 +6501,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_0_1__0"
-    // InternalComputation.g:1913:1: rule__SummationExpression__Group_0_0_1__0 : rule__SummationExpression__Group_0_0_1__0__Impl rule__SummationExpression__Group_0_0_1__1 ;
+    // InternalComputation.g:2140:1: rule__SummationExpression__Group_0_0_1__0 : rule__SummationExpression__Group_0_0_1__0__Impl rule__SummationExpression__Group_0_0_1__1 ;
     public final void rule__SummationExpression__Group_0_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1917:1: ( rule__SummationExpression__Group_0_0_1__0__Impl rule__SummationExpression__Group_0_0_1__1 )
-            // InternalComputation.g:1918:2: rule__SummationExpression__Group_0_0_1__0__Impl rule__SummationExpression__Group_0_0_1__1
+            // InternalComputation.g:2144:1: ( rule__SummationExpression__Group_0_0_1__0__Impl rule__SummationExpression__Group_0_0_1__1 )
+            // InternalComputation.g:2145:2: rule__SummationExpression__Group_0_0_1__0__Impl rule__SummationExpression__Group_0_0_1__1
             {
             pushFollow(FOLLOW_15);
             rule__SummationExpression__Group_0_0_1__0__Impl();
@@ -5843,20 +6539,20 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_0_1__0__Impl"
-    // InternalComputation.g:1925:1: rule__SummationExpression__Group_0_0_1__0__Impl : ( '+' ) ;
+    // InternalComputation.g:2152:1: rule__SummationExpression__Group_0_0_1__0__Impl : ( '+' ) ;
     public final void rule__SummationExpression__Group_0_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1929:1: ( ( '+' ) )
-            // InternalComputation.g:1930:1: ( '+' )
+            // InternalComputation.g:2156:1: ( ( '+' ) )
+            // InternalComputation.g:2157:1: ( '+' )
             {
-            // InternalComputation.g:1930:1: ( '+' )
-            // InternalComputation.g:1931:2: '+'
+            // InternalComputation.g:2157:1: ( '+' )
+            // InternalComputation.g:2158:2: '+'
             {
              before(grammarAccess.getSummationExpressionAccess().getPlusSignKeyword_0_0_1_0()); 
-            match(input,30,FOLLOW_2); 
+            match(input,31,FOLLOW_2); 
              after(grammarAccess.getSummationExpressionAccess().getPlusSignKeyword_0_0_1_0()); 
 
             }
@@ -5880,14 +6576,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_0_1__1"
-    // InternalComputation.g:1940:1: rule__SummationExpression__Group_0_0_1__1 : rule__SummationExpression__Group_0_0_1__1__Impl ;
+    // InternalComputation.g:2167:1: rule__SummationExpression__Group_0_0_1__1 : rule__SummationExpression__Group_0_0_1__1__Impl ;
     public final void rule__SummationExpression__Group_0_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1944:1: ( rule__SummationExpression__Group_0_0_1__1__Impl )
-            // InternalComputation.g:1945:2: rule__SummationExpression__Group_0_0_1__1__Impl
+            // InternalComputation.g:2171:1: ( rule__SummationExpression__Group_0_0_1__1__Impl )
+            // InternalComputation.g:2172:2: rule__SummationExpression__Group_0_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SummationExpression__Group_0_0_1__1__Impl();
@@ -5913,21 +6609,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_0_1__1__Impl"
-    // InternalComputation.g:1951:1: rule__SummationExpression__Group_0_0_1__1__Impl : ( ( rule__SummationExpression__TermsAssignment_0_0_1_1 ) ) ;
+    // InternalComputation.g:2178:1: rule__SummationExpression__Group_0_0_1__1__Impl : ( ( rule__SummationExpression__TermsAssignment_0_0_1_1 ) ) ;
     public final void rule__SummationExpression__Group_0_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1955:1: ( ( ( rule__SummationExpression__TermsAssignment_0_0_1_1 ) ) )
-            // InternalComputation.g:1956:1: ( ( rule__SummationExpression__TermsAssignment_0_0_1_1 ) )
+            // InternalComputation.g:2182:1: ( ( ( rule__SummationExpression__TermsAssignment_0_0_1_1 ) ) )
+            // InternalComputation.g:2183:1: ( ( rule__SummationExpression__TermsAssignment_0_0_1_1 ) )
             {
-            // InternalComputation.g:1956:1: ( ( rule__SummationExpression__TermsAssignment_0_0_1_1 ) )
-            // InternalComputation.g:1957:2: ( rule__SummationExpression__TermsAssignment_0_0_1_1 )
+            // InternalComputation.g:2183:1: ( ( rule__SummationExpression__TermsAssignment_0_0_1_1 ) )
+            // InternalComputation.g:2184:2: ( rule__SummationExpression__TermsAssignment_0_0_1_1 )
             {
              before(grammarAccess.getSummationExpressionAccess().getTermsAssignment_0_0_1_1()); 
-            // InternalComputation.g:1958:2: ( rule__SummationExpression__TermsAssignment_0_0_1_1 )
-            // InternalComputation.g:1958:3: rule__SummationExpression__TermsAssignment_0_0_1_1
+            // InternalComputation.g:2185:2: ( rule__SummationExpression__TermsAssignment_0_0_1_1 )
+            // InternalComputation.g:2185:3: rule__SummationExpression__TermsAssignment_0_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__SummationExpression__TermsAssignment_0_0_1_1();
@@ -5960,14 +6656,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_1__0"
-    // InternalComputation.g:1967:1: rule__SummationExpression__Group_0_1__0 : rule__SummationExpression__Group_0_1__0__Impl rule__SummationExpression__Group_0_1__1 ;
+    // InternalComputation.g:2194:1: rule__SummationExpression__Group_0_1__0 : rule__SummationExpression__Group_0_1__0__Impl rule__SummationExpression__Group_0_1__1 ;
     public final void rule__SummationExpression__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1971:1: ( rule__SummationExpression__Group_0_1__0__Impl rule__SummationExpression__Group_0_1__1 )
-            // InternalComputation.g:1972:2: rule__SummationExpression__Group_0_1__0__Impl rule__SummationExpression__Group_0_1__1
+            // InternalComputation.g:2198:1: ( rule__SummationExpression__Group_0_1__0__Impl rule__SummationExpression__Group_0_1__1 )
+            // InternalComputation.g:2199:2: rule__SummationExpression__Group_0_1__0__Impl rule__SummationExpression__Group_0_1__1
             {
             pushFollow(FOLLOW_9);
             rule__SummationExpression__Group_0_1__0__Impl();
@@ -5998,20 +6694,20 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_1__0__Impl"
-    // InternalComputation.g:1979:1: rule__SummationExpression__Group_0_1__0__Impl : ( '+' ) ;
+    // InternalComputation.g:2206:1: rule__SummationExpression__Group_0_1__0__Impl : ( '+' ) ;
     public final void rule__SummationExpression__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1983:1: ( ( '+' ) )
-            // InternalComputation.g:1984:1: ( '+' )
+            // InternalComputation.g:2210:1: ( ( '+' ) )
+            // InternalComputation.g:2211:1: ( '+' )
             {
-            // InternalComputation.g:1984:1: ( '+' )
-            // InternalComputation.g:1985:2: '+'
+            // InternalComputation.g:2211:1: ( '+' )
+            // InternalComputation.g:2212:2: '+'
             {
              before(grammarAccess.getSummationExpressionAccess().getPlusSignKeyword_0_1_0()); 
-            match(input,30,FOLLOW_2); 
+            match(input,31,FOLLOW_2); 
              after(grammarAccess.getSummationExpressionAccess().getPlusSignKeyword_0_1_0()); 
 
             }
@@ -6035,14 +6731,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_1__1"
-    // InternalComputation.g:1994:1: rule__SummationExpression__Group_0_1__1 : rule__SummationExpression__Group_0_1__1__Impl ;
+    // InternalComputation.g:2221:1: rule__SummationExpression__Group_0_1__1 : rule__SummationExpression__Group_0_1__1__Impl ;
     public final void rule__SummationExpression__Group_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1998:1: ( rule__SummationExpression__Group_0_1__1__Impl )
-            // InternalComputation.g:1999:2: rule__SummationExpression__Group_0_1__1__Impl
+            // InternalComputation.g:2225:1: ( rule__SummationExpression__Group_0_1__1__Impl )
+            // InternalComputation.g:2226:2: rule__SummationExpression__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SummationExpression__Group_0_1__1__Impl();
@@ -6068,21 +6764,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_1__1__Impl"
-    // InternalComputation.g:2005:1: rule__SummationExpression__Group_0_1__1__Impl : ( ( rule__SummationExpression__ConstantAssignment_0_1_1 ) ) ;
+    // InternalComputation.g:2232:1: rule__SummationExpression__Group_0_1__1__Impl : ( ( rule__SummationExpression__ConstantAssignment_0_1_1 ) ) ;
     public final void rule__SummationExpression__Group_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2009:1: ( ( ( rule__SummationExpression__ConstantAssignment_0_1_1 ) ) )
-            // InternalComputation.g:2010:1: ( ( rule__SummationExpression__ConstantAssignment_0_1_1 ) )
+            // InternalComputation.g:2236:1: ( ( ( rule__SummationExpression__ConstantAssignment_0_1_1 ) ) )
+            // InternalComputation.g:2237:1: ( ( rule__SummationExpression__ConstantAssignment_0_1_1 ) )
             {
-            // InternalComputation.g:2010:1: ( ( rule__SummationExpression__ConstantAssignment_0_1_1 ) )
-            // InternalComputation.g:2011:2: ( rule__SummationExpression__ConstantAssignment_0_1_1 )
+            // InternalComputation.g:2237:1: ( ( rule__SummationExpression__ConstantAssignment_0_1_1 ) )
+            // InternalComputation.g:2238:2: ( rule__SummationExpression__ConstantAssignment_0_1_1 )
             {
              before(grammarAccess.getSummationExpressionAccess().getConstantAssignment_0_1_1()); 
-            // InternalComputation.g:2012:2: ( rule__SummationExpression__ConstantAssignment_0_1_1 )
-            // InternalComputation.g:2012:3: rule__SummationExpression__ConstantAssignment_0_1_1
+            // InternalComputation.g:2239:2: ( rule__SummationExpression__ConstantAssignment_0_1_1 )
+            // InternalComputation.g:2239:3: rule__SummationExpression__ConstantAssignment_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__SummationExpression__ConstantAssignment_0_1_1();
@@ -6115,14 +6811,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__Group__0"
-    // InternalComputation.g:2021:1: rule__ProductExpression__Group__0 : rule__ProductExpression__Group__0__Impl rule__ProductExpression__Group__1 ;
+    // InternalComputation.g:2248:1: rule__ProductExpression__Group__0 : rule__ProductExpression__Group__0__Impl rule__ProductExpression__Group__1 ;
     public final void rule__ProductExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2025:1: ( rule__ProductExpression__Group__0__Impl rule__ProductExpression__Group__1 )
-            // InternalComputation.g:2026:2: rule__ProductExpression__Group__0__Impl rule__ProductExpression__Group__1
+            // InternalComputation.g:2252:1: ( rule__ProductExpression__Group__0__Impl rule__ProductExpression__Group__1 )
+            // InternalComputation.g:2253:2: rule__ProductExpression__Group__0__Impl rule__ProductExpression__Group__1
             {
             pushFollow(FOLLOW_15);
             rule__ProductExpression__Group__0__Impl();
@@ -6153,29 +6849,29 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__Group__0__Impl"
-    // InternalComputation.g:2033:1: rule__ProductExpression__Group__0__Impl : ( ( rule__ProductExpression__ConstantAssignment_0 )? ) ;
+    // InternalComputation.g:2260:1: rule__ProductExpression__Group__0__Impl : ( ( rule__ProductExpression__ConstantAssignment_0 )? ) ;
     public final void rule__ProductExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2037:1: ( ( ( rule__ProductExpression__ConstantAssignment_0 )? ) )
-            // InternalComputation.g:2038:1: ( ( rule__ProductExpression__ConstantAssignment_0 )? )
+            // InternalComputation.g:2264:1: ( ( ( rule__ProductExpression__ConstantAssignment_0 )? ) )
+            // InternalComputation.g:2265:1: ( ( rule__ProductExpression__ConstantAssignment_0 )? )
             {
-            // InternalComputation.g:2038:1: ( ( rule__ProductExpression__ConstantAssignment_0 )? )
-            // InternalComputation.g:2039:2: ( rule__ProductExpression__ConstantAssignment_0 )?
+            // InternalComputation.g:2265:1: ( ( rule__ProductExpression__ConstantAssignment_0 )? )
+            // InternalComputation.g:2266:2: ( rule__ProductExpression__ConstantAssignment_0 )?
             {
              before(grammarAccess.getProductExpressionAccess().getConstantAssignment_0()); 
-            // InternalComputation.g:2040:2: ( rule__ProductExpression__ConstantAssignment_0 )?
-            int alt12=2;
-            int LA12_0 = input.LA(1);
+            // InternalComputation.g:2267:2: ( rule__ProductExpression__ConstantAssignment_0 )?
+            int alt13=2;
+            int LA13_0 = input.LA(1);
 
-            if ( (LA12_0==RULE_INT) ) {
-                alt12=1;
+            if ( (LA13_0==RULE_INT) ) {
+                alt13=1;
             }
-            switch (alt12) {
+            switch (alt13) {
                 case 1 :
-                    // InternalComputation.g:2040:3: rule__ProductExpression__ConstantAssignment_0
+                    // InternalComputation.g:2267:3: rule__ProductExpression__ConstantAssignment_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ProductExpression__ConstantAssignment_0();
@@ -6211,14 +6907,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__Group__1"
-    // InternalComputation.g:2048:1: rule__ProductExpression__Group__1 : rule__ProductExpression__Group__1__Impl ;
+    // InternalComputation.g:2275:1: rule__ProductExpression__Group__1 : rule__ProductExpression__Group__1__Impl ;
     public final void rule__ProductExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2052:1: ( rule__ProductExpression__Group__1__Impl )
-            // InternalComputation.g:2053:2: rule__ProductExpression__Group__1__Impl
+            // InternalComputation.g:2279:1: ( rule__ProductExpression__Group__1__Impl )
+            // InternalComputation.g:2280:2: rule__ProductExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ProductExpression__Group__1__Impl();
@@ -6244,21 +6940,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__Group__1__Impl"
-    // InternalComputation.g:2059:1: rule__ProductExpression__Group__1__Impl : ( ( rule__ProductExpression__Group_1__0 ) ) ;
+    // InternalComputation.g:2286:1: rule__ProductExpression__Group__1__Impl : ( ( rule__ProductExpression__Group_1__0 ) ) ;
     public final void rule__ProductExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2063:1: ( ( ( rule__ProductExpression__Group_1__0 ) ) )
-            // InternalComputation.g:2064:1: ( ( rule__ProductExpression__Group_1__0 ) )
+            // InternalComputation.g:2290:1: ( ( ( rule__ProductExpression__Group_1__0 ) ) )
+            // InternalComputation.g:2291:1: ( ( rule__ProductExpression__Group_1__0 ) )
             {
-            // InternalComputation.g:2064:1: ( ( rule__ProductExpression__Group_1__0 ) )
-            // InternalComputation.g:2065:2: ( rule__ProductExpression__Group_1__0 )
+            // InternalComputation.g:2291:1: ( ( rule__ProductExpression__Group_1__0 ) )
+            // InternalComputation.g:2292:2: ( rule__ProductExpression__Group_1__0 )
             {
              before(grammarAccess.getProductExpressionAccess().getGroup_1()); 
-            // InternalComputation.g:2066:2: ( rule__ProductExpression__Group_1__0 )
-            // InternalComputation.g:2066:3: rule__ProductExpression__Group_1__0
+            // InternalComputation.g:2293:2: ( rule__ProductExpression__Group_1__0 )
+            // InternalComputation.g:2293:3: rule__ProductExpression__Group_1__0
             {
             pushFollow(FOLLOW_2);
             rule__ProductExpression__Group_1__0();
@@ -6291,14 +6987,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__Group_1__0"
-    // InternalComputation.g:2075:1: rule__ProductExpression__Group_1__0 : rule__ProductExpression__Group_1__0__Impl rule__ProductExpression__Group_1__1 ;
+    // InternalComputation.g:2302:1: rule__ProductExpression__Group_1__0 : rule__ProductExpression__Group_1__0__Impl rule__ProductExpression__Group_1__1 ;
     public final void rule__ProductExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2079:1: ( rule__ProductExpression__Group_1__0__Impl rule__ProductExpression__Group_1__1 )
-            // InternalComputation.g:2080:2: rule__ProductExpression__Group_1__0__Impl rule__ProductExpression__Group_1__1
+            // InternalComputation.g:2306:1: ( rule__ProductExpression__Group_1__0__Impl rule__ProductExpression__Group_1__1 )
+            // InternalComputation.g:2307:2: rule__ProductExpression__Group_1__0__Impl rule__ProductExpression__Group_1__1
             {
             pushFollow(FOLLOW_7);
             rule__ProductExpression__Group_1__0__Impl();
@@ -6329,21 +7025,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__Group_1__0__Impl"
-    // InternalComputation.g:2087:1: rule__ProductExpression__Group_1__0__Impl : ( ( rule__ProductExpression__TermsAssignment_1_0 ) ) ;
+    // InternalComputation.g:2314:1: rule__ProductExpression__Group_1__0__Impl : ( ( rule__ProductExpression__TermsAssignment_1_0 ) ) ;
     public final void rule__ProductExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2091:1: ( ( ( rule__ProductExpression__TermsAssignment_1_0 ) ) )
-            // InternalComputation.g:2092:1: ( ( rule__ProductExpression__TermsAssignment_1_0 ) )
+            // InternalComputation.g:2318:1: ( ( ( rule__ProductExpression__TermsAssignment_1_0 ) ) )
+            // InternalComputation.g:2319:1: ( ( rule__ProductExpression__TermsAssignment_1_0 ) )
             {
-            // InternalComputation.g:2092:1: ( ( rule__ProductExpression__TermsAssignment_1_0 ) )
-            // InternalComputation.g:2093:2: ( rule__ProductExpression__TermsAssignment_1_0 )
+            // InternalComputation.g:2319:1: ( ( rule__ProductExpression__TermsAssignment_1_0 ) )
+            // InternalComputation.g:2320:2: ( rule__ProductExpression__TermsAssignment_1_0 )
             {
              before(grammarAccess.getProductExpressionAccess().getTermsAssignment_1_0()); 
-            // InternalComputation.g:2094:2: ( rule__ProductExpression__TermsAssignment_1_0 )
-            // InternalComputation.g:2094:3: rule__ProductExpression__TermsAssignment_1_0
+            // InternalComputation.g:2321:2: ( rule__ProductExpression__TermsAssignment_1_0 )
+            // InternalComputation.g:2321:3: rule__ProductExpression__TermsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
             rule__ProductExpression__TermsAssignment_1_0();
@@ -6376,14 +7072,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__Group_1__1"
-    // InternalComputation.g:2102:1: rule__ProductExpression__Group_1__1 : rule__ProductExpression__Group_1__1__Impl ;
+    // InternalComputation.g:2329:1: rule__ProductExpression__Group_1__1 : rule__ProductExpression__Group_1__1__Impl ;
     public final void rule__ProductExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2106:1: ( rule__ProductExpression__Group_1__1__Impl )
-            // InternalComputation.g:2107:2: rule__ProductExpression__Group_1__1__Impl
+            // InternalComputation.g:2333:1: ( rule__ProductExpression__Group_1__1__Impl )
+            // InternalComputation.g:2334:2: rule__ProductExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ProductExpression__Group_1__1__Impl();
@@ -6409,33 +7105,33 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__Group_1__1__Impl"
-    // InternalComputation.g:2113:1: rule__ProductExpression__Group_1__1__Impl : ( ( rule__ProductExpression__TermsAssignment_1_1 )* ) ;
+    // InternalComputation.g:2340:1: rule__ProductExpression__Group_1__1__Impl : ( ( rule__ProductExpression__TermsAssignment_1_1 )* ) ;
     public final void rule__ProductExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2117:1: ( ( ( rule__ProductExpression__TermsAssignment_1_1 )* ) )
-            // InternalComputation.g:2118:1: ( ( rule__ProductExpression__TermsAssignment_1_1 )* )
+            // InternalComputation.g:2344:1: ( ( ( rule__ProductExpression__TermsAssignment_1_1 )* ) )
+            // InternalComputation.g:2345:1: ( ( rule__ProductExpression__TermsAssignment_1_1 )* )
             {
-            // InternalComputation.g:2118:1: ( ( rule__ProductExpression__TermsAssignment_1_1 )* )
-            // InternalComputation.g:2119:2: ( rule__ProductExpression__TermsAssignment_1_1 )*
+            // InternalComputation.g:2345:1: ( ( rule__ProductExpression__TermsAssignment_1_1 )* )
+            // InternalComputation.g:2346:2: ( rule__ProductExpression__TermsAssignment_1_1 )*
             {
              before(grammarAccess.getProductExpressionAccess().getTermsAssignment_1_1()); 
-            // InternalComputation.g:2120:2: ( rule__ProductExpression__TermsAssignment_1_1 )*
-            loop13:
+            // InternalComputation.g:2347:2: ( rule__ProductExpression__TermsAssignment_1_1 )*
+            loop14:
             do {
-                int alt13=2;
-                int LA13_0 = input.LA(1);
+                int alt14=2;
+                int LA14_0 = input.LA(1);
 
-                if ( (LA13_0==RULE_ID) ) {
-                    alt13=1;
+                if ( (LA14_0==RULE_ID) ) {
+                    alt14=1;
                 }
 
 
-                switch (alt13) {
+                switch (alt14) {
             	case 1 :
-            	    // InternalComputation.g:2120:3: rule__ProductExpression__TermsAssignment_1_1
+            	    // InternalComputation.g:2347:3: rule__ProductExpression__TermsAssignment_1_1
             	    {
             	    pushFollow(FOLLOW_29);
             	    rule__ProductExpression__TermsAssignment_1_1();
@@ -6447,7 +7143,7 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
             	    break;
 
             	default :
-            	    break loop13;
+            	    break loop14;
                 }
             } while (true);
 
@@ -6474,17 +7170,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationModel__ParametersAssignment_0"
-    // InternalComputation.g:2129:1: rule__ComputationModel__ParametersAssignment_0 : ( ruleParameter ) ;
+    // InternalComputation.g:2356:1: rule__ComputationModel__ParametersAssignment_0 : ( ruleParameter ) ;
     public final void rule__ComputationModel__ParametersAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2133:1: ( ( ruleParameter ) )
-            // InternalComputation.g:2134:2: ( ruleParameter )
+            // InternalComputation.g:2360:1: ( ( ruleParameter ) )
+            // InternalComputation.g:2361:2: ( ruleParameter )
             {
-            // InternalComputation.g:2134:2: ( ruleParameter )
-            // InternalComputation.g:2135:3: ruleParameter
+            // InternalComputation.g:2361:2: ( ruleParameter )
+            // InternalComputation.g:2362:3: ruleParameter
             {
              before(grammarAccess.getComputationModelAccess().getParametersParameterParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -6515,17 +7211,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationModel__TargetDesignAssignment_1"
-    // InternalComputation.g:2144:1: rule__ComputationModel__TargetDesignAssignment_1 : ( ruleHWTargetDesign ) ;
+    // InternalComputation.g:2371:1: rule__ComputationModel__TargetDesignAssignment_1 : ( ruleHWTargetDesign ) ;
     public final void rule__ComputationModel__TargetDesignAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2148:1: ( ( ruleHWTargetDesign ) )
-            // InternalComputation.g:2149:2: ( ruleHWTargetDesign )
+            // InternalComputation.g:2375:1: ( ( ruleHWTargetDesign ) )
+            // InternalComputation.g:2376:2: ( ruleHWTargetDesign )
             {
-            // InternalComputation.g:2149:2: ( ruleHWTargetDesign )
-            // InternalComputation.g:2150:3: ruleHWTargetDesign
+            // InternalComputation.g:2376:2: ( ruleHWTargetDesign )
+            // InternalComputation.g:2377:3: ruleHWTargetDesign
             {
              before(grammarAccess.getComputationModelAccess().getTargetDesignHWTargetDesignParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -6556,17 +7252,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationModel__BlocksAssignment_2"
-    // InternalComputation.g:2159:1: rule__ComputationModel__BlocksAssignment_2 : ( ruleComputationBlock ) ;
+    // InternalComputation.g:2386:1: rule__ComputationModel__BlocksAssignment_2 : ( ruleComputationBlock ) ;
     public final void rule__ComputationModel__BlocksAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2163:1: ( ( ruleComputationBlock ) )
-            // InternalComputation.g:2164:2: ( ruleComputationBlock )
+            // InternalComputation.g:2390:1: ( ( ruleComputationBlock ) )
+            // InternalComputation.g:2391:2: ( ruleComputationBlock )
             {
-            // InternalComputation.g:2164:2: ( ruleComputationBlock )
-            // InternalComputation.g:2165:3: ruleComputationBlock
+            // InternalComputation.g:2391:2: ( ruleComputationBlock )
+            // InternalComputation.g:2392:3: ruleComputationBlock
             {
              before(grammarAccess.getComputationModelAccess().getBlocksComputationBlockParserRuleCall_2_0()); 
             pushFollow(FOLLOW_2);
@@ -6597,17 +7293,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__NameAssignment_1"
-    // InternalComputation.g:2174:1: rule__Parameter__NameAssignment_1 : ( RULE_ID ) ;
+    // InternalComputation.g:2401:1: rule__Parameter__NameAssignment_1 : ( RULE_ID ) ;
     public final void rule__Parameter__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2178:1: ( ( RULE_ID ) )
-            // InternalComputation.g:2179:2: ( RULE_ID )
+            // InternalComputation.g:2405:1: ( ( RULE_ID ) )
+            // InternalComputation.g:2406:2: ( RULE_ID )
             {
-            // InternalComputation.g:2179:2: ( RULE_ID )
-            // InternalComputation.g:2180:3: RULE_ID
+            // InternalComputation.g:2406:2: ( RULE_ID )
+            // InternalComputation.g:2407:3: RULE_ID
             {
              before(grammarAccess.getParameterAccess().getNameIDTerminalRuleCall_1_0()); 
             match(input,RULE_ID,FOLLOW_2); 
@@ -6634,17 +7330,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__ValueAssignment_3"
-    // InternalComputation.g:2189:1: rule__Parameter__ValueAssignment_3 : ( RULE_INT ) ;
+    // InternalComputation.g:2416:1: rule__Parameter__ValueAssignment_3 : ( RULE_INT ) ;
     public final void rule__Parameter__ValueAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2193:1: ( ( RULE_INT ) )
-            // InternalComputation.g:2194:2: ( RULE_INT )
+            // InternalComputation.g:2420:1: ( ( RULE_INT ) )
+            // InternalComputation.g:2421:2: ( RULE_INT )
             {
-            // InternalComputation.g:2194:2: ( RULE_INT )
-            // InternalComputation.g:2195:3: RULE_INT
+            // InternalComputation.g:2421:2: ( RULE_INT )
+            // InternalComputation.g:2422:3: RULE_INT
             {
              before(grammarAccess.getParameterAccess().getValueINTTerminalRuleCall_3_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -6671,17 +7367,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__FrequencyAssignment_4"
-    // InternalComputation.g:2204:1: rule__HWTargetDesign__FrequencyAssignment_4 : ( RULE_INT ) ;
+    // InternalComputation.g:2431:1: rule__HWTargetDesign__FrequencyAssignment_4 : ( RULE_INT ) ;
     public final void rule__HWTargetDesign__FrequencyAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2208:1: ( ( RULE_INT ) )
-            // InternalComputation.g:2209:2: ( RULE_INT )
+            // InternalComputation.g:2435:1: ( ( RULE_INT ) )
+            // InternalComputation.g:2436:2: ( RULE_INT )
             {
-            // InternalComputation.g:2209:2: ( RULE_INT )
-            // InternalComputation.g:2210:3: RULE_INT
+            // InternalComputation.g:2436:2: ( RULE_INT )
+            // InternalComputation.g:2437:3: RULE_INT
             {
              before(grammarAccess.getHWTargetDesignAccess().getFrequencyINTTerminalRuleCall_4_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -6708,17 +7404,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__OutputsPerCycleAssignment_7"
-    // InternalComputation.g:2219:1: rule__HWTargetDesign__OutputsPerCycleAssignment_7 : ( RULE_INT ) ;
+    // InternalComputation.g:2446:1: rule__HWTargetDesign__OutputsPerCycleAssignment_7 : ( RULE_INT ) ;
     public final void rule__HWTargetDesign__OutputsPerCycleAssignment_7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2223:1: ( ( RULE_INT ) )
-            // InternalComputation.g:2224:2: ( RULE_INT )
+            // InternalComputation.g:2450:1: ( ( RULE_INT ) )
+            // InternalComputation.g:2451:2: ( RULE_INT )
             {
-            // InternalComputation.g:2224:2: ( RULE_INT )
-            // InternalComputation.g:2225:3: RULE_INT
+            // InternalComputation.g:2451:2: ( RULE_INT )
+            // InternalComputation.g:2452:3: RULE_INT
             {
              before(grammarAccess.getHWTargetDesignAccess().getOutputsPerCycleINTTerminalRuleCall_7_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -6745,17 +7441,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__ProblemSizeExprAssignment_10"
-    // InternalComputation.g:2234:1: rule__HWTargetDesign__ProblemSizeExprAssignment_10 : ( ruleSummationExpression ) ;
+    // InternalComputation.g:2461:1: rule__HWTargetDesign__ProblemSizeExprAssignment_10 : ( ruleSummationExpression ) ;
     public final void rule__HWTargetDesign__ProblemSizeExprAssignment_10() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2238:1: ( ( ruleSummationExpression ) )
-            // InternalComputation.g:2239:2: ( ruleSummationExpression )
+            // InternalComputation.g:2465:1: ( ( ruleSummationExpression ) )
+            // InternalComputation.g:2466:2: ( ruleSummationExpression )
             {
-            // InternalComputation.g:2239:2: ( ruleSummationExpression )
-            // InternalComputation.g:2240:3: ruleSummationExpression
+            // InternalComputation.g:2466:2: ( ruleSummationExpression )
+            // InternalComputation.g:2467:3: ruleSummationExpression
             {
              before(grammarAccess.getHWTargetDesignAccess().getProblemSizeExprSummationExpressionParserRuleCall_10_0()); 
             pushFollow(FOLLOW_2);
@@ -6786,17 +7482,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__NameAssignment_1"
-    // InternalComputation.g:2249:1: rule__ComputationBlock__NameAssignment_1 : ( RULE_ID ) ;
+    // InternalComputation.g:2476:1: rule__ComputationBlock__NameAssignment_1 : ( RULE_ID ) ;
     public final void rule__ComputationBlock__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2253:1: ( ( RULE_ID ) )
-            // InternalComputation.g:2254:2: ( RULE_ID )
+            // InternalComputation.g:2480:1: ( ( RULE_ID ) )
+            // InternalComputation.g:2481:2: ( RULE_ID )
             {
-            // InternalComputation.g:2254:2: ( RULE_ID )
-            // InternalComputation.g:2255:3: RULE_ID
+            // InternalComputation.g:2481:2: ( RULE_ID )
+            // InternalComputation.g:2482:3: RULE_ID
             {
              before(grammarAccess.getComputationBlockAccess().getNameIDTerminalRuleCall_1_0()); 
             match(input,RULE_ID,FOLLOW_2); 
@@ -6823,17 +7519,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__OperationsAssignment_3"
-    // InternalComputation.g:2264:1: rule__ComputationBlock__OperationsAssignment_3 : ( ruleOperation ) ;
+    // InternalComputation.g:2491:1: rule__ComputationBlock__OperationsAssignment_3 : ( ruleOperation ) ;
     public final void rule__ComputationBlock__OperationsAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2268:1: ( ( ruleOperation ) )
-            // InternalComputation.g:2269:2: ( ruleOperation )
+            // InternalComputation.g:2495:1: ( ( ruleOperation ) )
+            // InternalComputation.g:2496:2: ( ruleOperation )
             {
-            // InternalComputation.g:2269:2: ( ruleOperation )
-            // InternalComputation.g:2270:3: ruleOperation
+            // InternalComputation.g:2496:2: ( ruleOperation )
+            // InternalComputation.g:2497:3: ruleOperation
             {
              before(grammarAccess.getComputationBlockAccess().getOperationsOperationParserRuleCall_3_0()); 
             pushFollow(FOLLOW_2);
@@ -6864,17 +7560,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__OpTypeAssignment_0"
-    // InternalComputation.g:2279:1: rule__Operation__OpTypeAssignment_0 : ( ruleOP ) ;
+    // InternalComputation.g:2506:1: rule__Operation__OpTypeAssignment_0 : ( ruleOP ) ;
     public final void rule__Operation__OpTypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2283:1: ( ( ruleOP ) )
-            // InternalComputation.g:2284:2: ( ruleOP )
+            // InternalComputation.g:2510:1: ( ( ruleOP ) )
+            // InternalComputation.g:2511:2: ( ruleOP )
             {
-            // InternalComputation.g:2284:2: ( ruleOP )
-            // InternalComputation.g:2285:3: ruleOP
+            // InternalComputation.g:2511:2: ( ruleOP )
+            // InternalComputation.g:2512:3: ruleOP
             {
              before(grammarAccess.getOperationAccess().getOpTypeOPParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -6905,17 +7601,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__OutputExprAssignment_2"
-    // InternalComputation.g:2294:1: rule__Operation__OutputExprAssignment_2 : ( ruleOperandExpression ) ;
+    // InternalComputation.g:2521:1: rule__Operation__OutputExprAssignment_2 : ( ruleOperandExpression ) ;
     public final void rule__Operation__OutputExprAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2298:1: ( ( ruleOperandExpression ) )
-            // InternalComputation.g:2299:2: ( ruleOperandExpression )
+            // InternalComputation.g:2525:1: ( ( ruleOperandExpression ) )
+            // InternalComputation.g:2526:2: ( ruleOperandExpression )
             {
-            // InternalComputation.g:2299:2: ( ruleOperandExpression )
-            // InternalComputation.g:2300:3: ruleOperandExpression
+            // InternalComputation.g:2526:2: ( ruleOperandExpression )
+            // InternalComputation.g:2527:3: ruleOperandExpression
             {
              before(grammarAccess.getOperationAccess().getOutputExprOperandExpressionParserRuleCall_2_0()); 
             pushFollow(FOLLOW_2);
@@ -6946,17 +7642,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__InputExpr1Assignment_4"
-    // InternalComputation.g:2309:1: rule__Operation__InputExpr1Assignment_4 : ( ruleOperandExpression ) ;
+    // InternalComputation.g:2536:1: rule__Operation__InputExpr1Assignment_4 : ( ruleOperandExpression ) ;
     public final void rule__Operation__InputExpr1Assignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2313:1: ( ( ruleOperandExpression ) )
-            // InternalComputation.g:2314:2: ( ruleOperandExpression )
+            // InternalComputation.g:2540:1: ( ( ruleOperandExpression ) )
+            // InternalComputation.g:2541:2: ( ruleOperandExpression )
             {
-            // InternalComputation.g:2314:2: ( ruleOperandExpression )
-            // InternalComputation.g:2315:3: ruleOperandExpression
+            // InternalComputation.g:2541:2: ( ruleOperandExpression )
+            // InternalComputation.g:2542:3: ruleOperandExpression
             {
              before(grammarAccess.getOperationAccess().getInputExpr1OperandExpressionParserRuleCall_4_0()); 
             pushFollow(FOLLOW_2);
@@ -6987,17 +7683,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__InputExpr2Assignment_6"
-    // InternalComputation.g:2324:1: rule__Operation__InputExpr2Assignment_6 : ( ruleOperandExpression ) ;
+    // InternalComputation.g:2551:1: rule__Operation__InputExpr2Assignment_6 : ( ruleOperandExpression ) ;
     public final void rule__Operation__InputExpr2Assignment_6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2328:1: ( ( ruleOperandExpression ) )
-            // InternalComputation.g:2329:2: ( ruleOperandExpression )
+            // InternalComputation.g:2555:1: ( ( ruleOperandExpression ) )
+            // InternalComputation.g:2556:2: ( ruleOperandExpression )
             {
-            // InternalComputation.g:2329:2: ( ruleOperandExpression )
-            // InternalComputation.g:2330:3: ruleOperandExpression
+            // InternalComputation.g:2556:2: ( ruleOperandExpression )
+            // InternalComputation.g:2557:3: ruleOperandExpression
             {
              before(grammarAccess.getOperationAccess().getInputExpr2OperandExpressionParserRuleCall_6_0()); 
             pushFollow(FOLLOW_2);
@@ -7028,17 +7724,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__NumOpsAssignment_8"
-    // InternalComputation.g:2339:1: rule__Operation__NumOpsAssignment_8 : ( ruleSummationExpression ) ;
+    // InternalComputation.g:2566:1: rule__Operation__NumOpsAssignment_8 : ( ruleSummationExpression ) ;
     public final void rule__Operation__NumOpsAssignment_8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2343:1: ( ( ruleSummationExpression ) )
-            // InternalComputation.g:2344:2: ( ruleSummationExpression )
+            // InternalComputation.g:2570:1: ( ( ruleSummationExpression ) )
+            // InternalComputation.g:2571:2: ( ruleSummationExpression )
             {
-            // InternalComputation.g:2344:2: ( ruleSummationExpression )
-            // InternalComputation.g:2345:3: ruleSummationExpression
+            // InternalComputation.g:2571:2: ( ruleSummationExpression )
+            // InternalComputation.g:2572:3: ruleSummationExpression
             {
              before(grammarAccess.getOperationAccess().getNumOpsSummationExpressionParserRuleCall_8_0()); 
             pushFollow(FOLLOW_2);
@@ -7069,17 +7765,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__ExprsAssignment_2"
-    // InternalComputation.g:2354:1: rule__MaxExpression__ExprsAssignment_2 : ( ruleTerminalOperandExpression ) ;
+    // InternalComputation.g:2581:1: rule__MaxExpression__ExprsAssignment_2 : ( ruleTerminalOperandExpression ) ;
     public final void rule__MaxExpression__ExprsAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2358:1: ( ( ruleTerminalOperandExpression ) )
-            // InternalComputation.g:2359:2: ( ruleTerminalOperandExpression )
+            // InternalComputation.g:2585:1: ( ( ruleTerminalOperandExpression ) )
+            // InternalComputation.g:2586:2: ( ruleTerminalOperandExpression )
             {
-            // InternalComputation.g:2359:2: ( ruleTerminalOperandExpression )
-            // InternalComputation.g:2360:3: ruleTerminalOperandExpression
+            // InternalComputation.g:2586:2: ( ruleTerminalOperandExpression )
+            // InternalComputation.g:2587:3: ruleTerminalOperandExpression
             {
              before(grammarAccess.getMaxExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_2_0()); 
             pushFollow(FOLLOW_2);
@@ -7110,17 +7806,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__ExprsAssignment_3_1"
-    // InternalComputation.g:2369:1: rule__MaxExpression__ExprsAssignment_3_1 : ( ruleTerminalOperandExpression ) ;
+    // InternalComputation.g:2596:1: rule__MaxExpression__ExprsAssignment_3_1 : ( ruleTerminalOperandExpression ) ;
     public final void rule__MaxExpression__ExprsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2373:1: ( ( ruleTerminalOperandExpression ) )
-            // InternalComputation.g:2374:2: ( ruleTerminalOperandExpression )
+            // InternalComputation.g:2600:1: ( ( ruleTerminalOperandExpression ) )
+            // InternalComputation.g:2601:2: ( ruleTerminalOperandExpression )
             {
-            // InternalComputation.g:2374:2: ( ruleTerminalOperandExpression )
-            // InternalComputation.g:2375:3: ruleTerminalOperandExpression
+            // InternalComputation.g:2601:2: ( ruleTerminalOperandExpression )
+            // InternalComputation.g:2602:3: ruleTerminalOperandExpression
             {
              before(grammarAccess.getMaxExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_3_1_0()); 
             pushFollow(FOLLOW_2);
@@ -7150,18 +7846,100 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
     // $ANTLR end "rule__MaxExpression__ExprsAssignment_3_1"
 
 
+    // $ANTLR start "rule__SumExpression__ExprsAssignment_2"
+    // InternalComputation.g:2611:1: rule__SumExpression__ExprsAssignment_2 : ( ruleTerminalOperandExpression ) ;
+    public final void rule__SumExpression__ExprsAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalComputation.g:2615:1: ( ( ruleTerminalOperandExpression ) )
+            // InternalComputation.g:2616:2: ( ruleTerminalOperandExpression )
+            {
+            // InternalComputation.g:2616:2: ( ruleTerminalOperandExpression )
+            // InternalComputation.g:2617:3: ruleTerminalOperandExpression
+            {
+             before(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_2_0()); 
+            pushFollow(FOLLOW_2);
+            ruleTerminalOperandExpression();
+
+            state._fsp--;
+
+             after(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SumExpression__ExprsAssignment_2"
+
+
+    // $ANTLR start "rule__SumExpression__ExprsAssignment_3_1"
+    // InternalComputation.g:2626:1: rule__SumExpression__ExprsAssignment_3_1 : ( ruleTerminalOperandExpression ) ;
+    public final void rule__SumExpression__ExprsAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalComputation.g:2630:1: ( ( ruleTerminalOperandExpression ) )
+            // InternalComputation.g:2631:2: ( ruleTerminalOperandExpression )
+            {
+            // InternalComputation.g:2631:2: ( ruleTerminalOperandExpression )
+            // InternalComputation.g:2632:3: ruleTerminalOperandExpression
+            {
+             before(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_3_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleTerminalOperandExpression();
+
+            state._fsp--;
+
+             after(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SumExpression__ExprsAssignment_3_1"
+
+
     // $ANTLR start "rule__AddExpression__Op1Assignment_1"
-    // InternalComputation.g:2384:1: rule__AddExpression__Op1Assignment_1 : ( ruleOperandExpression ) ;
+    // InternalComputation.g:2641:1: rule__AddExpression__Op1Assignment_1 : ( ruleOperandExpression ) ;
     public final void rule__AddExpression__Op1Assignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2388:1: ( ( ruleOperandExpression ) )
-            // InternalComputation.g:2389:2: ( ruleOperandExpression )
+            // InternalComputation.g:2645:1: ( ( ruleOperandExpression ) )
+            // InternalComputation.g:2646:2: ( ruleOperandExpression )
             {
-            // InternalComputation.g:2389:2: ( ruleOperandExpression )
-            // InternalComputation.g:2390:3: ruleOperandExpression
+            // InternalComputation.g:2646:2: ( ruleOperandExpression )
+            // InternalComputation.g:2647:3: ruleOperandExpression
             {
              before(grammarAccess.getAddExpressionAccess().getOp1OperandExpressionParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -7192,17 +7970,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__AddExpression__Op2Assignment_3"
-    // InternalComputation.g:2399:1: rule__AddExpression__Op2Assignment_3 : ( ruleOperandExpression ) ;
+    // InternalComputation.g:2656:1: rule__AddExpression__Op2Assignment_3 : ( ruleOperandExpression ) ;
     public final void rule__AddExpression__Op2Assignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2403:1: ( ( ruleOperandExpression ) )
-            // InternalComputation.g:2404:2: ( ruleOperandExpression )
+            // InternalComputation.g:2660:1: ( ( ruleOperandExpression ) )
+            // InternalComputation.g:2661:2: ( ruleOperandExpression )
             {
-            // InternalComputation.g:2404:2: ( ruleOperandExpression )
-            // InternalComputation.g:2405:3: ruleOperandExpression
+            // InternalComputation.g:2661:2: ( ruleOperandExpression )
+            // InternalComputation.g:2662:3: ruleOperandExpression
             {
              before(grammarAccess.getAddExpressionAccess().getOp2OperandExpressionParserRuleCall_3_0()); 
             pushFollow(FOLLOW_2);
@@ -7233,17 +8011,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__OperandTerm__CoefAssignment_0"
-    // InternalComputation.g:2414:1: rule__OperandTerm__CoefAssignment_0 : ( RULE_INT ) ;
+    // InternalComputation.g:2671:1: rule__OperandTerm__CoefAssignment_0 : ( RULE_INT ) ;
     public final void rule__OperandTerm__CoefAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2418:1: ( ( RULE_INT ) )
-            // InternalComputation.g:2419:2: ( RULE_INT )
+            // InternalComputation.g:2675:1: ( ( RULE_INT ) )
+            // InternalComputation.g:2676:2: ( RULE_INT )
             {
-            // InternalComputation.g:2419:2: ( RULE_INT )
-            // InternalComputation.g:2420:3: RULE_INT
+            // InternalComputation.g:2676:2: ( RULE_INT )
+            // InternalComputation.g:2677:3: RULE_INT
             {
              before(grammarAccess.getOperandTermAccess().getCoefINTTerminalRuleCall_0_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -7270,17 +8048,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__OperandTerm__NameAssignment_1"
-    // InternalComputation.g:2429:1: rule__OperandTerm__NameAssignment_1 : ( RULE_ID ) ;
+    // InternalComputation.g:2686:1: rule__OperandTerm__NameAssignment_1 : ( RULE_ID ) ;
     public final void rule__OperandTerm__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2433:1: ( ( RULE_ID ) )
-            // InternalComputation.g:2434:2: ( RULE_ID )
+            // InternalComputation.g:2690:1: ( ( RULE_ID ) )
+            // InternalComputation.g:2691:2: ( RULE_ID )
             {
-            // InternalComputation.g:2434:2: ( RULE_ID )
-            // InternalComputation.g:2435:3: RULE_ID
+            // InternalComputation.g:2691:2: ( RULE_ID )
+            // InternalComputation.g:2692:3: RULE_ID
             {
              before(grammarAccess.getOperandTermAccess().getNameIDTerminalRuleCall_1_0()); 
             match(input,RULE_ID,FOLLOW_2); 
@@ -7307,17 +8085,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__TermsAssignment_0_0_0"
-    // InternalComputation.g:2444:1: rule__SummationExpression__TermsAssignment_0_0_0 : ( ruleProductExpression ) ;
+    // InternalComputation.g:2701:1: rule__SummationExpression__TermsAssignment_0_0_0 : ( ruleProductExpression ) ;
     public final void rule__SummationExpression__TermsAssignment_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2448:1: ( ( ruleProductExpression ) )
-            // InternalComputation.g:2449:2: ( ruleProductExpression )
+            // InternalComputation.g:2705:1: ( ( ruleProductExpression ) )
+            // InternalComputation.g:2706:2: ( ruleProductExpression )
             {
-            // InternalComputation.g:2449:2: ( ruleProductExpression )
-            // InternalComputation.g:2450:3: ruleProductExpression
+            // InternalComputation.g:2706:2: ( ruleProductExpression )
+            // InternalComputation.g:2707:3: ruleProductExpression
             {
              before(grammarAccess.getSummationExpressionAccess().getTermsProductExpressionParserRuleCall_0_0_0_0()); 
             pushFollow(FOLLOW_2);
@@ -7348,17 +8126,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__TermsAssignment_0_0_1_1"
-    // InternalComputation.g:2459:1: rule__SummationExpression__TermsAssignment_0_0_1_1 : ( ruleProductExpression ) ;
+    // InternalComputation.g:2716:1: rule__SummationExpression__TermsAssignment_0_0_1_1 : ( ruleProductExpression ) ;
     public final void rule__SummationExpression__TermsAssignment_0_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2463:1: ( ( ruleProductExpression ) )
-            // InternalComputation.g:2464:2: ( ruleProductExpression )
+            // InternalComputation.g:2720:1: ( ( ruleProductExpression ) )
+            // InternalComputation.g:2721:2: ( ruleProductExpression )
             {
-            // InternalComputation.g:2464:2: ( ruleProductExpression )
-            // InternalComputation.g:2465:3: ruleProductExpression
+            // InternalComputation.g:2721:2: ( ruleProductExpression )
+            // InternalComputation.g:2722:3: ruleProductExpression
             {
              before(grammarAccess.getSummationExpressionAccess().getTermsProductExpressionParserRuleCall_0_0_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -7389,17 +8167,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__ConstantAssignment_0_1_1"
-    // InternalComputation.g:2474:1: rule__SummationExpression__ConstantAssignment_0_1_1 : ( RULE_INT ) ;
+    // InternalComputation.g:2731:1: rule__SummationExpression__ConstantAssignment_0_1_1 : ( RULE_INT ) ;
     public final void rule__SummationExpression__ConstantAssignment_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2478:1: ( ( RULE_INT ) )
-            // InternalComputation.g:2479:2: ( RULE_INT )
+            // InternalComputation.g:2735:1: ( ( RULE_INT ) )
+            // InternalComputation.g:2736:2: ( RULE_INT )
             {
-            // InternalComputation.g:2479:2: ( RULE_INT )
-            // InternalComputation.g:2480:3: RULE_INT
+            // InternalComputation.g:2736:2: ( RULE_INT )
+            // InternalComputation.g:2737:3: RULE_INT
             {
              before(grammarAccess.getSummationExpressionAccess().getConstantINTTerminalRuleCall_0_1_1_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -7426,17 +8204,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__ConstantAssignment_1"
-    // InternalComputation.g:2489:1: rule__SummationExpression__ConstantAssignment_1 : ( RULE_INT ) ;
+    // InternalComputation.g:2746:1: rule__SummationExpression__ConstantAssignment_1 : ( RULE_INT ) ;
     public final void rule__SummationExpression__ConstantAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2493:1: ( ( RULE_INT ) )
-            // InternalComputation.g:2494:2: ( RULE_INT )
+            // InternalComputation.g:2750:1: ( ( RULE_INT ) )
+            // InternalComputation.g:2751:2: ( RULE_INT )
             {
-            // InternalComputation.g:2494:2: ( RULE_INT )
-            // InternalComputation.g:2495:3: RULE_INT
+            // InternalComputation.g:2751:2: ( RULE_INT )
+            // InternalComputation.g:2752:3: RULE_INT
             {
              before(grammarAccess.getSummationExpressionAccess().getConstantINTTerminalRuleCall_1_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -7463,17 +8241,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__ConstantAssignment_0"
-    // InternalComputation.g:2504:1: rule__ProductExpression__ConstantAssignment_0 : ( RULE_INT ) ;
+    // InternalComputation.g:2761:1: rule__ProductExpression__ConstantAssignment_0 : ( RULE_INT ) ;
     public final void rule__ProductExpression__ConstantAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2508:1: ( ( RULE_INT ) )
-            // InternalComputation.g:2509:2: ( RULE_INT )
+            // InternalComputation.g:2765:1: ( ( RULE_INT ) )
+            // InternalComputation.g:2766:2: ( RULE_INT )
             {
-            // InternalComputation.g:2509:2: ( RULE_INT )
-            // InternalComputation.g:2510:3: RULE_INT
+            // InternalComputation.g:2766:2: ( RULE_INT )
+            // InternalComputation.g:2767:3: RULE_INT
             {
              before(grammarAccess.getProductExpressionAccess().getConstantINTTerminalRuleCall_0_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -7500,21 +8278,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__TermsAssignment_1_0"
-    // InternalComputation.g:2519:1: rule__ProductExpression__TermsAssignment_1_0 : ( ( RULE_ID ) ) ;
+    // InternalComputation.g:2776:1: rule__ProductExpression__TermsAssignment_1_0 : ( ( RULE_ID ) ) ;
     public final void rule__ProductExpression__TermsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2523:1: ( ( ( RULE_ID ) ) )
-            // InternalComputation.g:2524:2: ( ( RULE_ID ) )
+            // InternalComputation.g:2780:1: ( ( ( RULE_ID ) ) )
+            // InternalComputation.g:2781:2: ( ( RULE_ID ) )
             {
-            // InternalComputation.g:2524:2: ( ( RULE_ID ) )
-            // InternalComputation.g:2525:3: ( RULE_ID )
+            // InternalComputation.g:2781:2: ( ( RULE_ID ) )
+            // InternalComputation.g:2782:3: ( RULE_ID )
             {
              before(grammarAccess.getProductExpressionAccess().getTermsParameterCrossReference_1_0_0()); 
-            // InternalComputation.g:2526:3: ( RULE_ID )
-            // InternalComputation.g:2527:4: RULE_ID
+            // InternalComputation.g:2783:3: ( RULE_ID )
+            // InternalComputation.g:2784:4: RULE_ID
             {
              before(grammarAccess.getProductExpressionAccess().getTermsParameterIDTerminalRuleCall_1_0_0_1()); 
             match(input,RULE_ID,FOLLOW_2); 
@@ -7545,21 +8323,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__TermsAssignment_1_1"
-    // InternalComputation.g:2538:1: rule__ProductExpression__TermsAssignment_1_1 : ( ( RULE_ID ) ) ;
+    // InternalComputation.g:2795:1: rule__ProductExpression__TermsAssignment_1_1 : ( ( RULE_ID ) ) ;
     public final void rule__ProductExpression__TermsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2542:1: ( ( ( RULE_ID ) ) )
-            // InternalComputation.g:2543:2: ( ( RULE_ID ) )
+            // InternalComputation.g:2799:1: ( ( ( RULE_ID ) ) )
+            // InternalComputation.g:2800:2: ( ( RULE_ID ) )
             {
-            // InternalComputation.g:2543:2: ( ( RULE_ID ) )
-            // InternalComputation.g:2544:3: ( RULE_ID )
+            // InternalComputation.g:2800:2: ( ( RULE_ID ) )
+            // InternalComputation.g:2801:3: ( RULE_ID )
             {
              before(grammarAccess.getProductExpressionAccess().getTermsParameterCrossReference_1_1_0()); 
-            // InternalComputation.g:2545:3: ( RULE_ID )
-            // InternalComputation.g:2546:4: RULE_ID
+            // InternalComputation.g:2802:3: ( RULE_ID )
+            // InternalComputation.g:2803:4: RULE_ID
             {
              before(grammarAccess.getProductExpressionAccess().getTermsParameterIDTerminalRuleCall_1_1_0_1()); 
             match(input,RULE_ID,FOLLOW_2); 
@@ -7612,15 +8390,15 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
     public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000001800L});
     public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000001802L});
     public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x000000000C000030L});
+    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x000000004C000030L});
     public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000001000000L});
     public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000002000000L});
     public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000008000000L});
     public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000020000000L});
     public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000010000000L});
     public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000020000002L});
-    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000040000000L});
-    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000040000002L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000080000000L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000080000002L});
     public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000000000012L});
 
 }
\ No newline at end of file
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ui/src-gen/fr/irisa/cairn/gecos/typeexploration/ui/contentassist/AbstractComputationProposalProvider.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ui/src-gen/fr/irisa/cairn/gecos/typeexploration/ui/contentassist/AbstractComputationProposalProvider.java
index deca2be..efc5120 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ui/src-gen/fr/irisa/cairn/gecos/typeexploration/ui/contentassist/AbstractComputationProposalProvider.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ui/src-gen/fr/irisa/cairn/gecos/typeexploration/ui/contentassist/AbstractComputationProposalProvider.java
@@ -66,6 +66,9 @@ public abstract class AbstractComputationProposalProvider extends TerminalsPropo
 	public void completeMaxExpression_Exprs(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
+	public void completeSumExpression_Exprs(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
 	public void completeAddExpression_Op1(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
@@ -115,6 +118,9 @@ public abstract class AbstractComputationProposalProvider extends TerminalsPropo
 	public void complete_MaxExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
+	public void complete_SumExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
 	public void complete_TerminalOperandExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/Computation.xtextbin b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/Computation.xtextbin
index d1d50bf5fef734dbf56f299c83788e78962b5804..d2a1b4fb2f41428ed34a985e0a83cc0eaf63ef24 100644
GIT binary patch
delta 386
zcmY+;xlY4C5C&jo*J~FhAteYZDo_v+v?$WwP$CKnY8NR|*s)kFxj<SZ3LYTuK#k;<
zf<QxxJOED+?)$!HBU>U{jds3&X7(meruL1Zv20sqYTm&il@&TPD#~j~xSYlt4XvB4
zNaBd3z`De-kR!5Et8u#>_~TM1VYcP(km=jdN|62!o#mnPJT%lM2N&ci7nkHJCk#@;
z6<1=0a7`uUHh8;sWwq|%#$MGW!Yz41RF%Y?m2-sqLYkaD<dpDe$t>~1Q}N05v;D3U
zUO4GDqd3{L7caPi_q<wn!03&UY{i84A+<PAABFm~qxkGEM$=xDgsZV0h;J(l&-t-p
X$=*QtZJW|WrH>A}=;0IwyCmoj?M!3Q

delta 223
zcmX>hvrKwJJu4&M<_6Zyta{822N?NS9S$<`F!A{&R=8Fa6r~myXXfWII~-zUW^xE;
zb~wz$%)l(5uMd=-oX9P~oSRs&xrV!$vHm0@2sk`vWMgHrWpsGK$ji!|nO9I+0y4#r
zjmehX;U&oMJwQdTfQp#&3m6?<qo^_ht9k=d^%i7Q1*5||pd$9X(p>+7Vz7euAO-b6
hV?KZsSVQb({5V;jPm=GT!%2s;4mTa@9oiY07y%uII!yoo

diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputation.g b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputation.g
index 0573680..d785ba7 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputation.g
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputation.g
@@ -562,20 +562,29 @@ ruleOperandExpression returns [EObject current=null]
 }:
 	(
 		{
-			newCompositeNode(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_0());
+			newCompositeNode(grammarAccess.getOperandExpressionAccess().getSumExpressionParserRuleCall_0());
 		}
-		this_MaxExpression_0=ruleMaxExpression
+		this_SumExpression_0=ruleSumExpression
 		{
-			$current = $this_MaxExpression_0.current;
+			$current = $this_SumExpression_0.current;
 			afterParserOrEnumRuleCall();
 		}
 		    |
 		{
-			newCompositeNode(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_1());
+			newCompositeNode(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_1());
 		}
-		this_TerminalOperandExpression_1=ruleTerminalOperandExpression
+		this_MaxExpression_1=ruleMaxExpression
 		{
-			$current = $this_TerminalOperandExpression_1.current;
+			$current = $this_MaxExpression_1.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_2());
+		}
+		this_TerminalOperandExpression_2=ruleTerminalOperandExpression
+		{
+			$current = $this_TerminalOperandExpression_2.current;
 			afterParserOrEnumRuleCall();
 		}
 	)
@@ -656,6 +665,81 @@ ruleMaxExpression returns [EObject current=null]
 	)
 ;
 
+// Entry rule entryRuleSumExpression
+entryRuleSumExpression returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getSumExpressionRule()); }
+	iv_ruleSumExpression=ruleSumExpression
+	{ $current=$iv_ruleSumExpression.current; }
+	EOF;
+
+// Rule SumExpression
+ruleSumExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='sum'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getSumExpressionAccess().getSumKeyword_0());
+		}
+		otherlv_1='('
+		{
+			newLeafNode(otherlv_1, grammarAccess.getSumExpressionAccess().getLeftParenthesisKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_2_0());
+				}
+				lv_exprs_2_0=ruleTerminalOperandExpression
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getSumExpressionRule());
+					}
+					add(
+						$current,
+						"exprs",
+						lv_exprs_2_0,
+						"fr.irisa.cairn.gecos.typeexploration.Computation.TerminalOperandExpression");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			otherlv_3=','
+			{
+				newLeafNode(otherlv_3, grammarAccess.getSumExpressionAccess().getCommaKeyword_3_0());
+			}
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_3_1_0());
+					}
+					lv_exprs_4_0=ruleTerminalOperandExpression
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getSumExpressionRule());
+						}
+						add(
+							$current,
+							"exprs",
+							lv_exprs_4_0,
+							"fr.irisa.cairn.gecos.typeexploration.Computation.TerminalOperandExpression");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)+
+		otherlv_5=')'
+		{
+			newLeafNode(otherlv_5, grammarAccess.getSumExpressionAccess().getRightParenthesisKeyword_4());
+		}
+	)
+;
+
 // Entry rule entryRuleTerminalOperandExpression
 entryRuleTerminalOperandExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTerminalOperandExpressionRule()); }
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputation.tokens b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputation.tokens
index 7daeeec..3cac8e5 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputation.tokens
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputation.tokens
@@ -1,6 +1,6 @@
 '('=27
 ')'=29
-'+'=30
+'+'=31
 ','=28
 ':'=23
 ';'=13
@@ -14,6 +14,7 @@
 'outputsPerCycle'=17
 'param'=11
 'problemSize'=18
+'sum'=30
 'target'=14
 'x'=25
 '{'=15
@@ -45,3 +46,4 @@ T__27=27
 T__28=28
 T__29=29
 T__30=30
+T__31=31
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputationLexer.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputationLexer.java
index f541841..81733f8 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputationLexer.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputationLexer.java
@@ -25,6 +25,7 @@ public class InternalComputationLexer extends Lexer {
     public static final int T__14=14;
     public static final int EOF=-1;
     public static final int T__30=30;
+    public static final int T__31=31;
     public static final int RULE_ID=4;
     public static final int RULE_WS=9;
     public static final int RULE_ANY_OTHER=10;
@@ -449,10 +450,11 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = T__30;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:30:7: ( '+' )
-            // InternalComputation.g:30:9: '+'
+            // InternalComputation.g:30:7: ( 'sum' )
+            // InternalComputation.g:30:9: 'sum'
             {
-            match('+'); 
+            match("sum"); 
+
 
             }
 
@@ -464,15 +466,35 @@ public class InternalComputationLexer extends Lexer {
     }
     // $ANTLR end "T__30"
 
+    // $ANTLR start "T__31"
+    public final void mT__31() throws RecognitionException {
+        try {
+            int _type = T__31;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalComputation.g:31:7: ( '+' )
+            // InternalComputation.g:31:9: '+'
+            {
+            match('+'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__31"
+
     // $ANTLR start "RULE_ID"
     public final void mRULE_ID() throws RecognitionException {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:994:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // InternalComputation.g:994:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalComputation.g:1078:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalComputation.g:1078:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // InternalComputation.g:994:11: ( '^' )?
+            // InternalComputation.g:1078:11: ( '^' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -481,7 +503,7 @@ public class InternalComputationLexer extends Lexer {
             }
             switch (alt1) {
                 case 1 :
-                    // InternalComputation.g:994:11: '^'
+                    // InternalComputation.g:1078:11: '^'
                     {
                     match('^'); 
 
@@ -499,7 +521,7 @@ public class InternalComputationLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // InternalComputation.g:994:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalComputation.g:1078:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop2:
             do {
                 int alt2=2;
@@ -548,10 +570,10 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:996:10: ( ( '0' .. '9' )+ )
-            // InternalComputation.g:996:12: ( '0' .. '9' )+
+            // InternalComputation.g:1080:10: ( ( '0' .. '9' )+ )
+            // InternalComputation.g:1080:12: ( '0' .. '9' )+
             {
-            // InternalComputation.g:996:12: ( '0' .. '9' )+
+            // InternalComputation.g:1080:12: ( '0' .. '9' )+
             int cnt3=0;
             loop3:
             do {
@@ -565,7 +587,7 @@ public class InternalComputationLexer extends Lexer {
 
                 switch (alt3) {
             	case 1 :
-            	    // InternalComputation.g:996:13: '0' .. '9'
+            	    // InternalComputation.g:1080:13: '0' .. '9'
             	    {
             	    matchRange('0','9'); 
 
@@ -597,10 +619,10 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:998:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
-            // InternalComputation.g:998:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalComputation.g:1082:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+            // InternalComputation.g:1082:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
             {
-            // InternalComputation.g:998:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalComputation.g:1082:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
             int alt6=2;
             int LA6_0 = input.LA(1);
 
@@ -618,10 +640,10 @@ public class InternalComputationLexer extends Lexer {
             }
             switch (alt6) {
                 case 1 :
-                    // InternalComputation.g:998:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+                    // InternalComputation.g:1082:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
                     {
                     match('\"'); 
-                    // InternalComputation.g:998:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // InternalComputation.g:1082:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop4:
                     do {
                         int alt4=3;
@@ -637,7 +659,7 @@ public class InternalComputationLexer extends Lexer {
 
                         switch (alt4) {
                     	case 1 :
-                    	    // InternalComputation.g:998:21: '\\\\' .
+                    	    // InternalComputation.g:1082:21: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -645,7 +667,7 @@ public class InternalComputationLexer extends Lexer {
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalComputation.g:998:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    // InternalComputation.g:1082:28: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -670,10 +692,10 @@ public class InternalComputationLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // InternalComputation.g:998:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+                    // InternalComputation.g:1082:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
                     {
                     match('\''); 
-                    // InternalComputation.g:998:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // InternalComputation.g:1082:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop5:
                     do {
                         int alt5=3;
@@ -689,7 +711,7 @@ public class InternalComputationLexer extends Lexer {
 
                         switch (alt5) {
                     	case 1 :
-                    	    // InternalComputation.g:998:54: '\\\\' .
+                    	    // InternalComputation.g:1082:54: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -697,7 +719,7 @@ public class InternalComputationLexer extends Lexer {
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalComputation.g:998:61: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // InternalComputation.g:1082:61: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -740,12 +762,12 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:1000:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalComputation.g:1000:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalComputation.g:1084:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalComputation.g:1084:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalComputation.g:1000:24: ( options {greedy=false; } : . )*
+            // InternalComputation.g:1084:24: ( options {greedy=false; } : . )*
             loop7:
             do {
                 int alt7=2;
@@ -770,7 +792,7 @@ public class InternalComputationLexer extends Lexer {
 
                 switch (alt7) {
             	case 1 :
-            	    // InternalComputation.g:1000:52: .
+            	    // InternalComputation.g:1084:52: .
             	    {
             	    matchAny(); 
 
@@ -800,12 +822,12 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:1002:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalComputation.g:1002:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalComputation.g:1086:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalComputation.g:1086:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalComputation.g:1002:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalComputation.g:1086:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop8:
             do {
                 int alt8=2;
@@ -818,7 +840,7 @@ public class InternalComputationLexer extends Lexer {
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalComputation.g:1002:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalComputation.g:1086:24: ~ ( ( '\\n' | '\\r' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -838,7 +860,7 @@ public class InternalComputationLexer extends Lexer {
                 }
             } while (true);
 
-            // InternalComputation.g:1002:40: ( ( '\\r' )? '\\n' )?
+            // InternalComputation.g:1086:40: ( ( '\\r' )? '\\n' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -847,9 +869,9 @@ public class InternalComputationLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // InternalComputation.g:1002:41: ( '\\r' )? '\\n'
+                    // InternalComputation.g:1086:41: ( '\\r' )? '\\n'
                     {
-                    // InternalComputation.g:1002:41: ( '\\r' )?
+                    // InternalComputation.g:1086:41: ( '\\r' )?
                     int alt9=2;
                     int LA9_0 = input.LA(1);
 
@@ -858,7 +880,7 @@ public class InternalComputationLexer extends Lexer {
                     }
                     switch (alt9) {
                         case 1 :
-                            // InternalComputation.g:1002:41: '\\r'
+                            // InternalComputation.g:1086:41: '\\r'
                             {
                             match('\r'); 
 
@@ -890,10 +912,10 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:1004:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalComputation.g:1004:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalComputation.g:1088:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalComputation.g:1088:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalComputation.g:1004:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalComputation.g:1088:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt11=0;
             loop11:
             do {
@@ -947,8 +969,8 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:1006:16: ( . )
-            // InternalComputation.g:1006:18: .
+            // InternalComputation.g:1090:16: ( . )
+            // InternalComputation.g:1090:18: .
             {
             matchAny(); 
 
@@ -963,8 +985,8 @@ public class InternalComputationLexer extends Lexer {
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalComputation.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt12=27;
+        // InternalComputation.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt12=28;
         alt12 = dfa12.predict(input);
         switch (alt12) {
             case 1 :
@@ -1108,49 +1130,56 @@ public class InternalComputationLexer extends Lexer {
                 }
                 break;
             case 21 :
-                // InternalComputation.g:1:130: RULE_ID
+                // InternalComputation.g:1:130: T__31
                 {
-                mRULE_ID(); 
+                mT__31(); 
 
                 }
                 break;
             case 22 :
-                // InternalComputation.g:1:138: RULE_INT
+                // InternalComputation.g:1:136: RULE_ID
                 {
-                mRULE_INT(); 
+                mRULE_ID(); 
 
                 }
                 break;
             case 23 :
-                // InternalComputation.g:1:147: RULE_STRING
+                // InternalComputation.g:1:144: RULE_INT
                 {
-                mRULE_STRING(); 
+                mRULE_INT(); 
 
                 }
                 break;
             case 24 :
-                // InternalComputation.g:1:159: RULE_ML_COMMENT
+                // InternalComputation.g:1:153: RULE_STRING
                 {
-                mRULE_ML_COMMENT(); 
+                mRULE_STRING(); 
 
                 }
                 break;
             case 25 :
-                // InternalComputation.g:1:175: RULE_SL_COMMENT
+                // InternalComputation.g:1:165: RULE_ML_COMMENT
                 {
-                mRULE_SL_COMMENT(); 
+                mRULE_ML_COMMENT(); 
 
                 }
                 break;
             case 26 :
-                // InternalComputation.g:1:191: RULE_WS
+                // InternalComputation.g:1:181: RULE_SL_COMMENT
                 {
-                mRULE_WS(); 
+                mRULE_SL_COMMENT(); 
 
                 }
                 break;
             case 27 :
-                // InternalComputation.g:1:199: RULE_ANY_OTHER
+                // InternalComputation.g:1:197: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 28 :
+                // InternalComputation.g:1:205: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -1164,122 +1193,126 @@ public class InternalComputationLexer extends Lexer {
 
     protected DFA12 dfa12 = new DFA12(this);
     static final String DFA12_eotS =
-        "\1\uffff\1\35\2\uffff\1\35\1\uffff\2\35\1\uffff\3\35\1\uffff\1\52\1\35\4\uffff\1\32\2\uffff\3\32\2\uffff\2\35\3\uffff\1\35\1\uffff\2\35\1\72\1\uffff\3\35\2\uffff\1\35\11\uffff\5\35\1\uffff\1\35\1\105\1\106\1\107\6\35\3\uffff\1\116\4\35\1\123\1\uffff\1\35\1\125\2\35\1\uffff\1\35\1\uffff\6\35\1\137\2\35\1\uffff\1\35\1\143\1\35\1\uffff\3\35\1\150\1\uffff";
+        "\1\uffff\1\36\2\uffff\1\36\1\uffff\2\36\1\uffff\3\36\1\uffff\1\53\1\36\3\uffff\1\36\1\uffff\1\33\2\uffff\3\33\2\uffff\2\36\3\uffff\1\36\1\uffff\2\36\1\74\1\uffff\3\36\2\uffff\1\36\3\uffff\1\36\6\uffff\5\36\1\uffff\1\36\1\110\1\111\1\112\1\113\6\36\4\uffff\1\122\4\36\1\127\1\uffff\1\36\1\131\2\36\1\uffff\1\36\1\uffff\6\36\1\143\2\36\1\uffff\1\36\1\147\1\36\1\uffff\3\36\1\154\1\uffff";
     static final String DFA12_eofS =
-        "\151\uffff";
+        "\155\uffff";
     static final String DFA12_minS =
-        "\1\0\1\141\2\uffff\1\141\1\uffff\1\162\1\160\1\uffff\1\154\1\104\1\125\1\uffff\1\60\1\141\4\uffff\1\101\2\uffff\2\0\1\52\2\uffff\1\162\1\157\3\uffff\1\162\1\uffff\1\145\1\164\1\60\1\uffff\1\157\1\104\1\114\2\uffff\1\170\11\uffff\1\141\1\142\1\147\1\161\1\160\1\uffff\1\143\3\60\1\155\1\154\1\145\2\165\1\153\3\uffff\1\60\1\145\1\164\1\145\1\164\1\60\1\uffff\1\155\1\60\1\156\1\163\1\uffff\1\123\1\uffff\1\143\1\120\1\151\1\171\1\145\1\172\1\60\1\162\1\145\1\uffff\1\103\1\60\1\171\1\uffff\1\143\1\154\1\145\1\60\1\uffff";
+        "\1\0\1\141\2\uffff\1\141\1\uffff\1\162\1\160\1\uffff\1\154\1\104\1\125\1\uffff\1\60\1\141\3\uffff\1\165\1\uffff\1\101\2\uffff\2\0\1\52\2\uffff\1\162\1\157\3\uffff\1\162\1\uffff\1\145\1\164\1\60\1\uffff\1\157\1\104\1\114\2\uffff\1\170\3\uffff\1\155\6\uffff\1\141\1\142\1\147\1\161\1\160\1\uffff\1\143\4\60\1\155\1\154\1\145\2\165\1\153\4\uffff\1\60\1\145\1\164\1\145\1\164\1\60\1\uffff\1\155\1\60\1\156\1\163\1\uffff\1\123\1\uffff\1\143\1\120\1\151\1\171\1\145\1\172\1\60\1\162\1\145\1\uffff\1\103\1\60\1\171\1\uffff\1\143\1\154\1\145\1\60\1\uffff";
     static final String DFA12_maxS =
-        "\1\uffff\1\162\2\uffff\1\141\1\uffff\1\162\1\165\1\uffff\1\154\1\104\1\125\1\uffff\1\172\1\141\4\uffff\1\172\2\uffff\2\uffff\1\57\2\uffff\1\162\1\157\3\uffff\1\162\1\uffff\1\145\1\164\1\172\1\uffff\1\157\1\104\1\114\2\uffff\1\170\11\uffff\1\141\1\142\1\147\1\161\1\160\1\uffff\1\143\3\172\1\155\1\154\1\145\2\165\1\153\3\uffff\1\172\1\145\1\164\1\145\1\164\1\172\1\uffff\1\155\1\172\1\156\1\163\1\uffff\1\123\1\uffff\1\143\1\120\1\151\1\171\1\145\2\172\1\162\1\145\1\uffff\1\103\1\172\1\171\1\uffff\1\143\1\154\1\145\1\172\1\uffff";
+        "\1\uffff\1\162\2\uffff\1\141\1\uffff\1\162\1\165\1\uffff\1\154\1\104\1\125\1\uffff\1\172\1\141\3\uffff\1\165\1\uffff\1\172\2\uffff\2\uffff\1\57\2\uffff\1\162\1\157\3\uffff\1\162\1\uffff\1\145\1\164\1\172\1\uffff\1\157\1\104\1\114\2\uffff\1\170\3\uffff\1\155\6\uffff\1\141\1\142\1\147\1\161\1\160\1\uffff\1\143\4\172\1\155\1\154\1\145\2\165\1\153\4\uffff\1\172\1\145\1\164\1\145\1\164\1\172\1\uffff\1\155\1\172\1\156\1\163\1\uffff\1\123\1\uffff\1\143\1\120\1\151\1\171\1\145\2\172\1\162\1\145\1\uffff\1\103\1\172\1\171\1\uffff\1\143\1\154\1\145\1\172\1\uffff";
     static final String DFA12_acceptS =
-        "\2\uffff\1\2\1\3\1\uffff\1\5\2\uffff\1\11\3\uffff\1\15\2\uffff\1\21\1\22\1\23\1\24\1\uffff\1\25\1\26\3\uffff\1\32\1\33\2\uffff\1\25\1\2\1\3\1\uffff\1\5\3\uffff\1\11\3\uffff\1\15\1\17\1\uffff\1\21\1\22\1\23\1\24\1\26\1\27\1\30\1\31\1\32\5\uffff\1\16\12\uffff\1\13\1\14\1\20\6\uffff\1\1\4\uffff\1\12\1\uffff\1\4\11\uffff\1\6\3\uffff\1\10\4\uffff\1\7";
+        "\2\uffff\1\2\1\3\1\uffff\1\5\2\uffff\1\11\3\uffff\1\15\2\uffff\1\21\1\22\1\23\1\uffff\1\25\1\uffff\1\26\1\27\3\uffff\1\33\1\34\2\uffff\1\26\1\2\1\3\1\uffff\1\5\3\uffff\1\11\3\uffff\1\15\1\17\1\uffff\1\21\1\22\1\23\1\uffff\1\25\1\27\1\30\1\31\1\32\1\33\5\uffff\1\16\13\uffff\1\13\1\14\1\20\1\24\6\uffff\1\1\4\uffff\1\12\1\uffff\1\4\11\uffff\1\6\3\uffff\1\10\4\uffff\1\7";
     static final String DFA12_specialS =
-        "\1\0\25\uffff\1\2\1\1\121\uffff}>";
+        "\1\0\26\uffff\1\2\1\1\124\uffff}>";
     static final String[] DFA12_transitionS = {
-            "\11\32\2\31\2\32\1\31\22\32\1\31\1\32\1\26\4\32\1\27\1\17\1\21\1\32\1\22\1\20\2\32\1\30\12\25\1\14\1\3\1\32\1\2\3\32\1\12\13\24\1\13\15\24\3\32\1\23\1\24\1\32\1\24\1\11\3\24\1\6\6\24\1\16\1\24\1\7\1\1\3\24\1\4\3\24\1\15\2\24\1\5\1\32\1\10\uff82\32",
-            "\1\33\20\uffff\1\34",
+            "\11\33\2\32\2\33\1\32\22\33\1\32\1\33\1\27\4\33\1\30\1\17\1\21\1\33\1\23\1\20\2\33\1\31\12\26\1\14\1\3\1\33\1\2\3\33\1\12\13\25\1\13\15\25\3\33\1\24\1\25\1\33\1\25\1\11\3\25\1\6\6\25\1\16\1\25\1\7\1\1\2\25\1\22\1\4\3\25\1\15\2\25\1\5\1\33\1\10\uff82\33",
+            "\1\34\20\uffff\1\35",
             "",
             "",
-            "\1\40",
+            "\1\41",
             "",
-            "\1\42",
-            "\1\44\4\uffff\1\43",
+            "\1\43",
+            "\1\45\4\uffff\1\44",
             "",
-            "\1\46",
             "\1\47",
             "\1\50",
+            "\1\51",
             "",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
-            "\1\53",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
+            "\1\54",
             "",
             "",
             "",
+            "\1\60",
             "",
-            "\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\32\36\4\uffff\1\36\1\uffff\32\36",
             "",
             "",
-            "\0\61",
-            "\0\61",
-            "\1\62\4\uffff\1\63",
+            "\0\63",
+            "\0\63",
+            "\1\64\4\uffff\1\65",
             "",
             "",
-            "\1\65",
-            "\1\66",
-            "",
+            "\1\67",
+            "\1\70",
             "",
             "",
-            "\1\67",
             "",
-            "\1\70",
             "\1\71",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
             "",
+            "\1\72",
             "\1\73",
-            "\1\74",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
+            "",
             "\1\75",
+            "\1\76",
+            "\1\77",
             "",
             "",
-            "\1\76",
+            "\1\100",
             "",
             "",
             "",
+            "\1\101",
             "",
             "",
             "",
             "",
             "",
             "",
-            "\1\77",
-            "\1\100",
-            "\1\101",
             "\1\102",
             "\1\103",
-            "",
             "\1\104",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
-            "\1\110",
-            "\1\111",
-            "\1\112",
-            "\1\113",
+            "\1\105",
+            "\1\106",
+            "",
+            "\1\107",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
             "\1\114",
             "\1\115",
-            "",
-            "",
-            "",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\1\116",
             "\1\117",
             "\1\120",
             "\1\121",
-            "\1\122",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
             "",
+            "",
+            "",
+            "",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
+            "\1\123",
             "\1\124",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\1\125",
             "\1\126",
-            "\1\127",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
             "",
             "\1\130",
-            "",
-            "\1\131",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
             "\1\132",
             "\1\133",
+            "",
             "\1\134",
+            "",
             "\1\135",
             "\1\136",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\1\137",
             "\1\140",
             "\1\141",
-            "",
             "\1\142",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
             "\1\144",
-            "",
             "\1\145",
+            "",
             "\1\146",
-            "\1\147",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
+            "\1\150",
+            "",
+            "\1\151",
+            "\1\152",
+            "\1\153",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
             ""
     };
 
@@ -1313,7 +1346,7 @@ public class InternalComputationLexer extends Lexer {
             this.transition = DFA12_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
@@ -1357,43 +1390,45 @@ public class InternalComputationLexer extends Lexer {
 
                         else if ( (LA12_0==')') ) {s = 17;}
 
-                        else if ( (LA12_0=='+') ) {s = 18;}
+                        else if ( (LA12_0=='s') ) {s = 18;}
+
+                        else if ( (LA12_0=='+') ) {s = 19;}
 
-                        else if ( (LA12_0=='^') ) {s = 19;}
+                        else if ( (LA12_0=='^') ) {s = 20;}
 
-                        else if ( ((LA12_0>='B' && LA12_0<='L')||(LA12_0>='N' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='a'||(LA12_0>='c' && LA12_0<='e')||(LA12_0>='g' && LA12_0<='l')||LA12_0=='n'||(LA12_0>='q' && LA12_0<='s')||(LA12_0>='u' && LA12_0<='w')||(LA12_0>='y' && LA12_0<='z')) ) {s = 20;}
+                        else if ( ((LA12_0>='B' && LA12_0<='L')||(LA12_0>='N' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='a'||(LA12_0>='c' && LA12_0<='e')||(LA12_0>='g' && LA12_0<='l')||LA12_0=='n'||(LA12_0>='q' && LA12_0<='r')||(LA12_0>='u' && LA12_0<='w')||(LA12_0>='y' && LA12_0<='z')) ) {s = 21;}
 
-                        else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 21;}
+                        else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 22;}
 
-                        else if ( (LA12_0=='\"') ) {s = 22;}
+                        else if ( (LA12_0=='\"') ) {s = 23;}
 
-                        else if ( (LA12_0=='\'') ) {s = 23;}
+                        else if ( (LA12_0=='\'') ) {s = 24;}
 
-                        else if ( (LA12_0=='/') ) {s = 24;}
+                        else if ( (LA12_0=='/') ) {s = 25;}
 
-                        else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 25;}
+                        else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 26;}
 
-                        else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||LA12_0=='*'||(LA12_0>='-' && LA12_0<='.')||LA12_0=='<'||(LA12_0>='>' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 26;}
+                        else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||LA12_0=='*'||(LA12_0>='-' && LA12_0<='.')||LA12_0=='<'||(LA12_0>='>' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 27;}
 
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA12_23 = input.LA(1);
+                        int LA12_24 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA12_23>='\u0000' && LA12_23<='\uFFFF')) ) {s = 49;}
+                        if ( ((LA12_24>='\u0000' && LA12_24<='\uFFFF')) ) {s = 51;}
 
-                        else s = 26;
+                        else s = 27;
 
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA12_22 = input.LA(1);
+                        int LA12_23 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA12_22>='\u0000' && LA12_22<='\uFFFF')) ) {s = 49;}
+                        if ( ((LA12_23>='\u0000' && LA12_23<='\uFFFF')) ) {s = 51;}
 
-                        else s = 26;
+                        else s = 27;
 
                         if ( s>=0 ) return s;
                         break;
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputationParser.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputationParser.java
index f93d483..0c82ea5 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputationParser.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputationParser.java
@@ -21,7 +21,7 @@ import java.util.ArrayList;
 @SuppressWarnings("all")
 public class InternalComputationParser extends AbstractInternalAntlrParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'param'", "'='", "';'", "'target'", "'{'", "'frequency'", "'outputsPerCycle'", "'problemSize'", "'}'", "'block'", "'ADD'", "'MUL'", "':'", "'op'", "'x'", "'max'", "'('", "','", "')'", "'+'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'param'", "'='", "';'", "'target'", "'{'", "'frequency'", "'outputsPerCycle'", "'problemSize'", "'}'", "'block'", "'ADD'", "'MUL'", "':'", "'op'", "'x'", "'max'", "'('", "','", "')'", "'sum'", "'+'"
     };
     public static final int RULE_STRING=6;
     public static final int RULE_SL_COMMENT=8;
@@ -36,6 +36,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
     public static final int T__14=14;
     public static final int EOF=-1;
     public static final int T__30=30;
+    public static final int T__31=31;
     public static final int RULE_ID=4;
     public static final int RULE_WS=9;
     public static final int RULE_ANY_OTHER=10;
@@ -1238,70 +1239,101 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleOperandExpression"
-    // InternalComputation.g:556:1: ruleOperandExpression returns [EObject current=null] : (this_MaxExpression_0= ruleMaxExpression | this_TerminalOperandExpression_1= ruleTerminalOperandExpression ) ;
+    // InternalComputation.g:556:1: ruleOperandExpression returns [EObject current=null] : (this_SumExpression_0= ruleSumExpression | this_MaxExpression_1= ruleMaxExpression | this_TerminalOperandExpression_2= ruleTerminalOperandExpression ) ;
     public final EObject ruleOperandExpression() throws RecognitionException {
         EObject current = null;
 
-        EObject this_MaxExpression_0 = null;
+        EObject this_SumExpression_0 = null;
 
-        EObject this_TerminalOperandExpression_1 = null;
+        EObject this_MaxExpression_1 = null;
+
+        EObject this_TerminalOperandExpression_2 = null;
 
 
 
         	enterRule();
 
         try {
-            // InternalComputation.g:562:2: ( (this_MaxExpression_0= ruleMaxExpression | this_TerminalOperandExpression_1= ruleTerminalOperandExpression ) )
-            // InternalComputation.g:563:2: (this_MaxExpression_0= ruleMaxExpression | this_TerminalOperandExpression_1= ruleTerminalOperandExpression )
-            {
-            // InternalComputation.g:563:2: (this_MaxExpression_0= ruleMaxExpression | this_TerminalOperandExpression_1= ruleTerminalOperandExpression )
-            int alt5=2;
-            int LA5_0 = input.LA(1);
-
-            if ( (LA5_0==26) ) {
+            // InternalComputation.g:562:2: ( (this_SumExpression_0= ruleSumExpression | this_MaxExpression_1= ruleMaxExpression | this_TerminalOperandExpression_2= ruleTerminalOperandExpression ) )
+            // InternalComputation.g:563:2: (this_SumExpression_0= ruleSumExpression | this_MaxExpression_1= ruleMaxExpression | this_TerminalOperandExpression_2= ruleTerminalOperandExpression )
+            {
+            // InternalComputation.g:563:2: (this_SumExpression_0= ruleSumExpression | this_MaxExpression_1= ruleMaxExpression | this_TerminalOperandExpression_2= ruleTerminalOperandExpression )
+            int alt5=3;
+            switch ( input.LA(1) ) {
+            case 30:
+                {
                 alt5=1;
-            }
-            else if ( ((LA5_0>=RULE_ID && LA5_0<=RULE_INT)||LA5_0==27) ) {
+                }
+                break;
+            case 26:
+                {
                 alt5=2;
-            }
-            else {
+                }
+                break;
+            case RULE_ID:
+            case RULE_INT:
+            case 27:
+                {
+                alt5=3;
+                }
+                break;
+            default:
                 NoViableAltException nvae =
                     new NoViableAltException("", 5, 0, input);
 
                 throw nvae;
             }
+
             switch (alt5) {
                 case 1 :
-                    // InternalComputation.g:564:3: this_MaxExpression_0= ruleMaxExpression
+                    // InternalComputation.g:564:3: this_SumExpression_0= ruleSumExpression
                     {
 
-                    			newCompositeNode(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_0());
+                    			newCompositeNode(grammarAccess.getOperandExpressionAccess().getSumExpressionParserRuleCall_0());
                     		
                     pushFollow(FOLLOW_2);
-                    this_MaxExpression_0=ruleMaxExpression();
+                    this_SumExpression_0=ruleSumExpression();
 
                     state._fsp--;
 
 
-                    			current = this_MaxExpression_0;
+                    			current = this_SumExpression_0;
                     			afterParserOrEnumRuleCall();
                     		
 
                     }
                     break;
                 case 2 :
-                    // InternalComputation.g:573:3: this_TerminalOperandExpression_1= ruleTerminalOperandExpression
+                    // InternalComputation.g:573:3: this_MaxExpression_1= ruleMaxExpression
+                    {
+
+                    			newCompositeNode(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_1());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_MaxExpression_1=ruleMaxExpression();
+
+                    state._fsp--;
+
+
+                    			current = this_MaxExpression_1;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 3 :
+                    // InternalComputation.g:582:3: this_TerminalOperandExpression_2= ruleTerminalOperandExpression
                     {
 
-                    			newCompositeNode(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_1());
+                    			newCompositeNode(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_2());
                     		
                     pushFollow(FOLLOW_2);
-                    this_TerminalOperandExpression_1=ruleTerminalOperandExpression();
+                    this_TerminalOperandExpression_2=ruleTerminalOperandExpression();
 
                     state._fsp--;
 
 
-                    			current = this_TerminalOperandExpression_1;
+                    			current = this_TerminalOperandExpression_2;
                     			afterParserOrEnumRuleCall();
                     		
 
@@ -1330,7 +1362,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleMaxExpression"
-    // InternalComputation.g:585:1: entryRuleMaxExpression returns [EObject current=null] : iv_ruleMaxExpression= ruleMaxExpression EOF ;
+    // InternalComputation.g:594:1: entryRuleMaxExpression returns [EObject current=null] : iv_ruleMaxExpression= ruleMaxExpression EOF ;
     public final EObject entryRuleMaxExpression() throws RecognitionException {
         EObject current = null;
 
@@ -1338,8 +1370,8 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalComputation.g:585:54: (iv_ruleMaxExpression= ruleMaxExpression EOF )
-            // InternalComputation.g:586:2: iv_ruleMaxExpression= ruleMaxExpression EOF
+            // InternalComputation.g:594:54: (iv_ruleMaxExpression= ruleMaxExpression EOF )
+            // InternalComputation.g:595:2: iv_ruleMaxExpression= ruleMaxExpression EOF
             {
              newCompositeNode(grammarAccess.getMaxExpressionRule()); 
             pushFollow(FOLLOW_1);
@@ -1366,7 +1398,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleMaxExpression"
-    // InternalComputation.g:592:1: ruleMaxExpression returns [EObject current=null] : (otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' ) ;
+    // InternalComputation.g:601:1: ruleMaxExpression returns [EObject current=null] : (otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' ) ;
     public final EObject ruleMaxExpression() throws RecognitionException {
         EObject current = null;
 
@@ -1383,11 +1415,11 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalComputation.g:598:2: ( (otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' ) )
-            // InternalComputation.g:599:2: (otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' )
+            // InternalComputation.g:607:2: ( (otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' ) )
+            // InternalComputation.g:608:2: (otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' )
             {
-            // InternalComputation.g:599:2: (otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' )
-            // InternalComputation.g:600:3: otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')'
+            // InternalComputation.g:608:2: (otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' )
+            // InternalComputation.g:609:3: otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')'
             {
             otherlv_0=(Token)match(input,26,FOLLOW_22); 
 
@@ -1397,11 +1429,11 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
             			newLeafNode(otherlv_1, grammarAccess.getMaxExpressionAccess().getLeftParenthesisKeyword_1());
             		
-            // InternalComputation.g:608:3: ( (lv_exprs_2_0= ruleTerminalOperandExpression ) )
-            // InternalComputation.g:609:4: (lv_exprs_2_0= ruleTerminalOperandExpression )
+            // InternalComputation.g:617:3: ( (lv_exprs_2_0= ruleTerminalOperandExpression ) )
+            // InternalComputation.g:618:4: (lv_exprs_2_0= ruleTerminalOperandExpression )
             {
-            // InternalComputation.g:609:4: (lv_exprs_2_0= ruleTerminalOperandExpression )
-            // InternalComputation.g:610:5: lv_exprs_2_0= ruleTerminalOperandExpression
+            // InternalComputation.g:618:4: (lv_exprs_2_0= ruleTerminalOperandExpression )
+            // InternalComputation.g:619:5: lv_exprs_2_0= ruleTerminalOperandExpression
             {
 
             					newCompositeNode(grammarAccess.getMaxExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_2_0());
@@ -1428,7 +1460,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalComputation.g:627:3: (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+
+            // InternalComputation.g:636:3: (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+
             int cnt6=0;
             loop6:
             do {
@@ -1442,17 +1474,17 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
                 switch (alt6) {
             	case 1 :
-            	    // InternalComputation.g:628:4: otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) )
+            	    // InternalComputation.g:637:4: otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) )
             	    {
             	    otherlv_3=(Token)match(input,28,FOLLOW_19); 
 
             	    				newLeafNode(otherlv_3, grammarAccess.getMaxExpressionAccess().getCommaKeyword_3_0());
             	    			
-            	    // InternalComputation.g:632:4: ( (lv_exprs_4_0= ruleTerminalOperandExpression ) )
-            	    // InternalComputation.g:633:5: (lv_exprs_4_0= ruleTerminalOperandExpression )
+            	    // InternalComputation.g:641:4: ( (lv_exprs_4_0= ruleTerminalOperandExpression ) )
+            	    // InternalComputation.g:642:5: (lv_exprs_4_0= ruleTerminalOperandExpression )
             	    {
-            	    // InternalComputation.g:633:5: (lv_exprs_4_0= ruleTerminalOperandExpression )
-            	    // InternalComputation.g:634:6: lv_exprs_4_0= ruleTerminalOperandExpression
+            	    // InternalComputation.g:642:5: (lv_exprs_4_0= ruleTerminalOperandExpression )
+            	    // InternalComputation.g:643:6: lv_exprs_4_0= ruleTerminalOperandExpression
             	    {
 
             	    						newCompositeNode(grammarAccess.getMaxExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_3_1_0());
@@ -1518,8 +1550,197 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
     // $ANTLR end "ruleMaxExpression"
 
 
+    // $ANTLR start "entryRuleSumExpression"
+    // InternalComputation.g:669:1: entryRuleSumExpression returns [EObject current=null] : iv_ruleSumExpression= ruleSumExpression EOF ;
+    public final EObject entryRuleSumExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleSumExpression = null;
+
+
+        try {
+            // InternalComputation.g:669:54: (iv_ruleSumExpression= ruleSumExpression EOF )
+            // InternalComputation.g:670:2: iv_ruleSumExpression= ruleSumExpression EOF
+            {
+             newCompositeNode(grammarAccess.getSumExpressionRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleSumExpression=ruleSumExpression();
+
+            state._fsp--;
+
+             current =iv_ruleSumExpression; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleSumExpression"
+
+
+    // $ANTLR start "ruleSumExpression"
+    // InternalComputation.g:676:1: ruleSumExpression returns [EObject current=null] : (otherlv_0= 'sum' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' ) ;
+    public final EObject ruleSumExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        EObject lv_exprs_2_0 = null;
+
+        EObject lv_exprs_4_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalComputation.g:682:2: ( (otherlv_0= 'sum' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' ) )
+            // InternalComputation.g:683:2: (otherlv_0= 'sum' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' )
+            {
+            // InternalComputation.g:683:2: (otherlv_0= 'sum' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' )
+            // InternalComputation.g:684:3: otherlv_0= 'sum' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')'
+            {
+            otherlv_0=(Token)match(input,30,FOLLOW_22); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getSumExpressionAccess().getSumKeyword_0());
+            		
+            otherlv_1=(Token)match(input,27,FOLLOW_19); 
+
+            			newLeafNode(otherlv_1, grammarAccess.getSumExpressionAccess().getLeftParenthesisKeyword_1());
+            		
+            // InternalComputation.g:692:3: ( (lv_exprs_2_0= ruleTerminalOperandExpression ) )
+            // InternalComputation.g:693:4: (lv_exprs_2_0= ruleTerminalOperandExpression )
+            {
+            // InternalComputation.g:693:4: (lv_exprs_2_0= ruleTerminalOperandExpression )
+            // InternalComputation.g:694:5: lv_exprs_2_0= ruleTerminalOperandExpression
+            {
+
+            					newCompositeNode(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_2_0());
+            				
+            pushFollow(FOLLOW_23);
+            lv_exprs_2_0=ruleTerminalOperandExpression();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getSumExpressionRule());
+            					}
+            					add(
+            						current,
+            						"exprs",
+            						lv_exprs_2_0,
+            						"fr.irisa.cairn.gecos.typeexploration.Computation.TerminalOperandExpression");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+            // InternalComputation.g:711:3: (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+
+            int cnt7=0;
+            loop7:
+            do {
+                int alt7=2;
+                int LA7_0 = input.LA(1);
+
+                if ( (LA7_0==28) ) {
+                    alt7=1;
+                }
+
+
+                switch (alt7) {
+            	case 1 :
+            	    // InternalComputation.g:712:4: otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) )
+            	    {
+            	    otherlv_3=(Token)match(input,28,FOLLOW_19); 
+
+            	    				newLeafNode(otherlv_3, grammarAccess.getSumExpressionAccess().getCommaKeyword_3_0());
+            	    			
+            	    // InternalComputation.g:716:4: ( (lv_exprs_4_0= ruleTerminalOperandExpression ) )
+            	    // InternalComputation.g:717:5: (lv_exprs_4_0= ruleTerminalOperandExpression )
+            	    {
+            	    // InternalComputation.g:717:5: (lv_exprs_4_0= ruleTerminalOperandExpression )
+            	    // InternalComputation.g:718:6: lv_exprs_4_0= ruleTerminalOperandExpression
+            	    {
+
+            	    						newCompositeNode(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_3_1_0());
+            	    					
+            	    pushFollow(FOLLOW_24);
+            	    lv_exprs_4_0=ruleTerminalOperandExpression();
+
+            	    state._fsp--;
+
+
+            	    						if (current==null) {
+            	    							current = createModelElementForParent(grammarAccess.getSumExpressionRule());
+            	    						}
+            	    						add(
+            	    							current,
+            	    							"exprs",
+            	    							lv_exprs_4_0,
+            	    							"fr.irisa.cairn.gecos.typeexploration.Computation.TerminalOperandExpression");
+            	    						afterParserOrEnumRuleCall();
+            	    					
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt7 >= 1 ) break loop7;
+                        EarlyExitException eee =
+                            new EarlyExitException(7, input);
+                        throw eee;
+                }
+                cnt7++;
+            } while (true);
+
+            otherlv_5=(Token)match(input,29,FOLLOW_2); 
+
+            			newLeafNode(otherlv_5, grammarAccess.getSumExpressionAccess().getRightParenthesisKeyword_4());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleSumExpression"
+
+
     // $ANTLR start "entryRuleTerminalOperandExpression"
-    // InternalComputation.g:660:1: entryRuleTerminalOperandExpression returns [EObject current=null] : iv_ruleTerminalOperandExpression= ruleTerminalOperandExpression EOF ;
+    // InternalComputation.g:744:1: entryRuleTerminalOperandExpression returns [EObject current=null] : iv_ruleTerminalOperandExpression= ruleTerminalOperandExpression EOF ;
     public final EObject entryRuleTerminalOperandExpression() throws RecognitionException {
         EObject current = null;
 
@@ -1527,8 +1748,8 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalComputation.g:660:66: (iv_ruleTerminalOperandExpression= ruleTerminalOperandExpression EOF )
-            // InternalComputation.g:661:2: iv_ruleTerminalOperandExpression= ruleTerminalOperandExpression EOF
+            // InternalComputation.g:744:66: (iv_ruleTerminalOperandExpression= ruleTerminalOperandExpression EOF )
+            // InternalComputation.g:745:2: iv_ruleTerminalOperandExpression= ruleTerminalOperandExpression EOF
             {
              newCompositeNode(grammarAccess.getTerminalOperandExpressionRule()); 
             pushFollow(FOLLOW_1);
@@ -1555,7 +1776,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleTerminalOperandExpression"
-    // InternalComputation.g:667:1: ruleTerminalOperandExpression returns [EObject current=null] : (this_AddExpression_0= ruleAddExpression | this_OperandTerm_1= ruleOperandTerm ) ;
+    // InternalComputation.g:751:1: ruleTerminalOperandExpression returns [EObject current=null] : (this_AddExpression_0= ruleAddExpression | this_OperandTerm_1= ruleOperandTerm ) ;
     public final EObject ruleTerminalOperandExpression() throws RecognitionException {
         EObject current = null;
 
@@ -1568,28 +1789,28 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalComputation.g:673:2: ( (this_AddExpression_0= ruleAddExpression | this_OperandTerm_1= ruleOperandTerm ) )
-            // InternalComputation.g:674:2: (this_AddExpression_0= ruleAddExpression | this_OperandTerm_1= ruleOperandTerm )
+            // InternalComputation.g:757:2: ( (this_AddExpression_0= ruleAddExpression | this_OperandTerm_1= ruleOperandTerm ) )
+            // InternalComputation.g:758:2: (this_AddExpression_0= ruleAddExpression | this_OperandTerm_1= ruleOperandTerm )
             {
-            // InternalComputation.g:674:2: (this_AddExpression_0= ruleAddExpression | this_OperandTerm_1= ruleOperandTerm )
-            int alt7=2;
-            int LA7_0 = input.LA(1);
+            // InternalComputation.g:758:2: (this_AddExpression_0= ruleAddExpression | this_OperandTerm_1= ruleOperandTerm )
+            int alt8=2;
+            int LA8_0 = input.LA(1);
 
-            if ( (LA7_0==27) ) {
-                alt7=1;
+            if ( (LA8_0==27) ) {
+                alt8=1;
             }
-            else if ( ((LA7_0>=RULE_ID && LA7_0<=RULE_INT)) ) {
-                alt7=2;
+            else if ( ((LA8_0>=RULE_ID && LA8_0<=RULE_INT)) ) {
+                alt8=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 7, 0, input);
+                    new NoViableAltException("", 8, 0, input);
 
                 throw nvae;
             }
-            switch (alt7) {
+            switch (alt8) {
                 case 1 :
-                    // InternalComputation.g:675:3: this_AddExpression_0= ruleAddExpression
+                    // InternalComputation.g:759:3: this_AddExpression_0= ruleAddExpression
                     {
 
                     			newCompositeNode(grammarAccess.getTerminalOperandExpressionAccess().getAddExpressionParserRuleCall_0());
@@ -1607,7 +1828,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalComputation.g:684:3: this_OperandTerm_1= ruleOperandTerm
+                    // InternalComputation.g:768:3: this_OperandTerm_1= ruleOperandTerm
                     {
 
                     			newCompositeNode(grammarAccess.getTerminalOperandExpressionAccess().getOperandTermParserRuleCall_1());
@@ -1647,7 +1868,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleAddExpression"
-    // InternalComputation.g:696:1: entryRuleAddExpression returns [EObject current=null] : iv_ruleAddExpression= ruleAddExpression EOF ;
+    // InternalComputation.g:780:1: entryRuleAddExpression returns [EObject current=null] : iv_ruleAddExpression= ruleAddExpression EOF ;
     public final EObject entryRuleAddExpression() throws RecognitionException {
         EObject current = null;
 
@@ -1655,8 +1876,8 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalComputation.g:696:54: (iv_ruleAddExpression= ruleAddExpression EOF )
-            // InternalComputation.g:697:2: iv_ruleAddExpression= ruleAddExpression EOF
+            // InternalComputation.g:780:54: (iv_ruleAddExpression= ruleAddExpression EOF )
+            // InternalComputation.g:781:2: iv_ruleAddExpression= ruleAddExpression EOF
             {
              newCompositeNode(grammarAccess.getAddExpressionRule()); 
             pushFollow(FOLLOW_1);
@@ -1683,7 +1904,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleAddExpression"
-    // InternalComputation.g:703:1: ruleAddExpression returns [EObject current=null] : (otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')' ) ;
+    // InternalComputation.g:787:1: ruleAddExpression returns [EObject current=null] : (otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')' ) ;
     public final EObject ruleAddExpression() throws RecognitionException {
         EObject current = null;
 
@@ -1699,21 +1920,21 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalComputation.g:709:2: ( (otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')' ) )
-            // InternalComputation.g:710:2: (otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')' )
+            // InternalComputation.g:793:2: ( (otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')' ) )
+            // InternalComputation.g:794:2: (otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')' )
             {
-            // InternalComputation.g:710:2: (otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')' )
-            // InternalComputation.g:711:3: otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')'
+            // InternalComputation.g:794:2: (otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')' )
+            // InternalComputation.g:795:3: otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')'
             {
             otherlv_0=(Token)match(input,27,FOLLOW_19); 
 
             			newLeafNode(otherlv_0, grammarAccess.getAddExpressionAccess().getLeftParenthesisKeyword_0());
             		
-            // InternalComputation.g:715:3: ( (lv_op1_1_0= ruleOperandExpression ) )
-            // InternalComputation.g:716:4: (lv_op1_1_0= ruleOperandExpression )
+            // InternalComputation.g:799:3: ( (lv_op1_1_0= ruleOperandExpression ) )
+            // InternalComputation.g:800:4: (lv_op1_1_0= ruleOperandExpression )
             {
-            // InternalComputation.g:716:4: (lv_op1_1_0= ruleOperandExpression )
-            // InternalComputation.g:717:5: lv_op1_1_0= ruleOperandExpression
+            // InternalComputation.g:800:4: (lv_op1_1_0= ruleOperandExpression )
+            // InternalComputation.g:801:5: lv_op1_1_0= ruleOperandExpression
             {
 
             					newCompositeNode(grammarAccess.getAddExpressionAccess().getOp1OperandExpressionParserRuleCall_1_0());
@@ -1740,15 +1961,15 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_2=(Token)match(input,30,FOLLOW_19); 
+            otherlv_2=(Token)match(input,31,FOLLOW_19); 
 
             			newLeafNode(otherlv_2, grammarAccess.getAddExpressionAccess().getPlusSignKeyword_2());
             		
-            // InternalComputation.g:738:3: ( (lv_op2_3_0= ruleOperandExpression ) )
-            // InternalComputation.g:739:4: (lv_op2_3_0= ruleOperandExpression )
+            // InternalComputation.g:822:3: ( (lv_op2_3_0= ruleOperandExpression ) )
+            // InternalComputation.g:823:4: (lv_op2_3_0= ruleOperandExpression )
             {
-            // InternalComputation.g:739:4: (lv_op2_3_0= ruleOperandExpression )
-            // InternalComputation.g:740:5: lv_op2_3_0= ruleOperandExpression
+            // InternalComputation.g:823:4: (lv_op2_3_0= ruleOperandExpression )
+            // InternalComputation.g:824:5: lv_op2_3_0= ruleOperandExpression
             {
 
             					newCompositeNode(grammarAccess.getAddExpressionAccess().getOp2OperandExpressionParserRuleCall_3_0());
@@ -1802,7 +2023,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleOperandTerm"
-    // InternalComputation.g:765:1: entryRuleOperandTerm returns [EObject current=null] : iv_ruleOperandTerm= ruleOperandTerm EOF ;
+    // InternalComputation.g:849:1: entryRuleOperandTerm returns [EObject current=null] : iv_ruleOperandTerm= ruleOperandTerm EOF ;
     public final EObject entryRuleOperandTerm() throws RecognitionException {
         EObject current = null;
 
@@ -1810,8 +2031,8 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalComputation.g:765:52: (iv_ruleOperandTerm= ruleOperandTerm EOF )
-            // InternalComputation.g:766:2: iv_ruleOperandTerm= ruleOperandTerm EOF
+            // InternalComputation.g:849:52: (iv_ruleOperandTerm= ruleOperandTerm EOF )
+            // InternalComputation.g:850:2: iv_ruleOperandTerm= ruleOperandTerm EOF
             {
              newCompositeNode(grammarAccess.getOperandTermRule()); 
             pushFollow(FOLLOW_1);
@@ -1838,7 +2059,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleOperandTerm"
-    // InternalComputation.g:772:1: ruleOperandTerm returns [EObject current=null] : ( ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) ) ) ;
+    // InternalComputation.g:856:1: ruleOperandTerm returns [EObject current=null] : ( ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) ) ) ;
     public final EObject ruleOperandTerm() throws RecognitionException {
         EObject current = null;
 
@@ -1849,25 +2070,25 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalComputation.g:778:2: ( ( ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) ) ) )
-            // InternalComputation.g:779:2: ( ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) ) )
+            // InternalComputation.g:862:2: ( ( ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) ) ) )
+            // InternalComputation.g:863:2: ( ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) ) )
             {
-            // InternalComputation.g:779:2: ( ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) ) )
-            // InternalComputation.g:780:3: ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) )
+            // InternalComputation.g:863:2: ( ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) ) )
+            // InternalComputation.g:864:3: ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) )
             {
-            // InternalComputation.g:780:3: ( (lv_coef_0_0= RULE_INT ) )?
-            int alt8=2;
-            int LA8_0 = input.LA(1);
+            // InternalComputation.g:864:3: ( (lv_coef_0_0= RULE_INT ) )?
+            int alt9=2;
+            int LA9_0 = input.LA(1);
 
-            if ( (LA8_0==RULE_INT) ) {
-                alt8=1;
+            if ( (LA9_0==RULE_INT) ) {
+                alt9=1;
             }
-            switch (alt8) {
+            switch (alt9) {
                 case 1 :
-                    // InternalComputation.g:781:4: (lv_coef_0_0= RULE_INT )
+                    // InternalComputation.g:865:4: (lv_coef_0_0= RULE_INT )
                     {
-                    // InternalComputation.g:781:4: (lv_coef_0_0= RULE_INT )
-                    // InternalComputation.g:782:5: lv_coef_0_0= RULE_INT
+                    // InternalComputation.g:865:4: (lv_coef_0_0= RULE_INT )
+                    // InternalComputation.g:866:5: lv_coef_0_0= RULE_INT
                     {
                     lv_coef_0_0=(Token)match(input,RULE_INT,FOLLOW_6); 
 
@@ -1892,11 +2113,11 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalComputation.g:798:3: ( (lv_name_1_0= RULE_ID ) )
-            // InternalComputation.g:799:4: (lv_name_1_0= RULE_ID )
+            // InternalComputation.g:882:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalComputation.g:883:4: (lv_name_1_0= RULE_ID )
             {
-            // InternalComputation.g:799:4: (lv_name_1_0= RULE_ID )
-            // InternalComputation.g:800:5: lv_name_1_0= RULE_ID
+            // InternalComputation.g:883:4: (lv_name_1_0= RULE_ID )
+            // InternalComputation.g:884:5: lv_name_1_0= RULE_ID
             {
             lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_2); 
 
@@ -1941,7 +2162,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleSummationExpression"
-    // InternalComputation.g:820:1: entryRuleSummationExpression returns [EObject current=null] : iv_ruleSummationExpression= ruleSummationExpression EOF ;
+    // InternalComputation.g:904:1: entryRuleSummationExpression returns [EObject current=null] : iv_ruleSummationExpression= ruleSummationExpression EOF ;
     public final EObject entryRuleSummationExpression() throws RecognitionException {
         EObject current = null;
 
@@ -1949,8 +2170,8 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalComputation.g:820:60: (iv_ruleSummationExpression= ruleSummationExpression EOF )
-            // InternalComputation.g:821:2: iv_ruleSummationExpression= ruleSummationExpression EOF
+            // InternalComputation.g:904:60: (iv_ruleSummationExpression= ruleSummationExpression EOF )
+            // InternalComputation.g:905:2: iv_ruleSummationExpression= ruleSummationExpression EOF
             {
              newCompositeNode(grammarAccess.getSummationExpressionRule()); 
             pushFollow(FOLLOW_1);
@@ -1977,7 +2198,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleSummationExpression"
-    // InternalComputation.g:827:1: ruleSummationExpression returns [EObject current=null] : ( ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? ) | ( (lv_constant_5_0= RULE_INT ) ) ) ;
+    // InternalComputation.g:911:1: ruleSummationExpression returns [EObject current=null] : ( ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? ) | ( (lv_constant_5_0= RULE_INT ) ) ) ;
     public final EObject ruleSummationExpression() throws RecognitionException {
         EObject current = null;
 
@@ -1994,53 +2215,53 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalComputation.g:833:2: ( ( ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? ) | ( (lv_constant_5_0= RULE_INT ) ) ) )
-            // InternalComputation.g:834:2: ( ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? ) | ( (lv_constant_5_0= RULE_INT ) ) )
+            // InternalComputation.g:917:2: ( ( ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? ) | ( (lv_constant_5_0= RULE_INT ) ) ) )
+            // InternalComputation.g:918:2: ( ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? ) | ( (lv_constant_5_0= RULE_INT ) ) )
             {
-            // InternalComputation.g:834:2: ( ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? ) | ( (lv_constant_5_0= RULE_INT ) ) )
-            int alt11=2;
-            int LA11_0 = input.LA(1);
+            // InternalComputation.g:918:2: ( ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? ) | ( (lv_constant_5_0= RULE_INT ) ) )
+            int alt12=2;
+            int LA12_0 = input.LA(1);
 
-            if ( (LA11_0==RULE_INT) ) {
-                int LA11_1 = input.LA(2);
+            if ( (LA12_0==RULE_INT) ) {
+                int LA12_1 = input.LA(2);
 
-                if ( (LA11_1==EOF||LA11_1==13||LA11_1==19) ) {
-                    alt11=2;
+                if ( (LA12_1==RULE_ID) ) {
+                    alt12=1;
                 }
-                else if ( (LA11_1==RULE_ID) ) {
-                    alt11=1;
+                else if ( (LA12_1==EOF||LA12_1==13||LA12_1==19) ) {
+                    alt12=2;
                 }
                 else {
                     NoViableAltException nvae =
-                        new NoViableAltException("", 11, 1, input);
+                        new NoViableAltException("", 12, 1, input);
 
                     throw nvae;
                 }
             }
-            else if ( (LA11_0==RULE_ID) ) {
-                alt11=1;
+            else if ( (LA12_0==RULE_ID) ) {
+                alt12=1;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 11, 0, input);
+                    new NoViableAltException("", 12, 0, input);
 
                 throw nvae;
             }
-            switch (alt11) {
+            switch (alt12) {
                 case 1 :
-                    // InternalComputation.g:835:3: ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? )
+                    // InternalComputation.g:919:3: ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? )
                     {
-                    // InternalComputation.g:835:3: ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? )
-                    // InternalComputation.g:836:4: ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )?
+                    // InternalComputation.g:919:3: ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? )
+                    // InternalComputation.g:920:4: ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )?
                     {
-                    // InternalComputation.g:836:4: ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* )
-                    // InternalComputation.g:837:5: ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )*
+                    // InternalComputation.g:920:4: ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* )
+                    // InternalComputation.g:921:5: ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )*
                     {
-                    // InternalComputation.g:837:5: ( (lv_terms_0_0= ruleProductExpression ) )
-                    // InternalComputation.g:838:6: (lv_terms_0_0= ruleProductExpression )
+                    // InternalComputation.g:921:5: ( (lv_terms_0_0= ruleProductExpression ) )
+                    // InternalComputation.g:922:6: (lv_terms_0_0= ruleProductExpression )
                     {
-                    // InternalComputation.g:838:6: (lv_terms_0_0= ruleProductExpression )
-                    // InternalComputation.g:839:7: lv_terms_0_0= ruleProductExpression
+                    // InternalComputation.g:922:6: (lv_terms_0_0= ruleProductExpression )
+                    // InternalComputation.g:923:7: lv_terms_0_0= ruleProductExpression
                     {
 
                     							newCompositeNode(grammarAccess.getSummationExpressionAccess().getTermsProductExpressionParserRuleCall_0_0_0_0());
@@ -2067,45 +2288,45 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
                     }
 
-                    // InternalComputation.g:856:5: (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )*
-                    loop9:
+                    // InternalComputation.g:940:5: (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )*
+                    loop10:
                     do {
-                        int alt9=2;
-                        int LA9_0 = input.LA(1);
+                        int alt10=2;
+                        int LA10_0 = input.LA(1);
 
-                        if ( (LA9_0==30) ) {
-                            int LA9_1 = input.LA(2);
+                        if ( (LA10_0==31) ) {
+                            int LA10_1 = input.LA(2);
 
-                            if ( (LA9_1==RULE_INT) ) {
-                                int LA9_3 = input.LA(3);
+                            if ( (LA10_1==RULE_INT) ) {
+                                int LA10_3 = input.LA(3);
 
-                                if ( (LA9_3==RULE_ID) ) {
-                                    alt9=1;
+                                if ( (LA10_3==RULE_ID) ) {
+                                    alt10=1;
                                 }
 
 
                             }
-                            else if ( (LA9_1==RULE_ID) ) {
-                                alt9=1;
+                            else if ( (LA10_1==RULE_ID) ) {
+                                alt10=1;
                             }
 
 
                         }
 
 
-                        switch (alt9) {
+                        switch (alt10) {
                     	case 1 :
-                    	    // InternalComputation.g:857:6: otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) )
+                    	    // InternalComputation.g:941:6: otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) )
                     	    {
-                    	    otherlv_1=(Token)match(input,30,FOLLOW_14); 
+                    	    otherlv_1=(Token)match(input,31,FOLLOW_14); 
 
                     	    						newLeafNode(otherlv_1, grammarAccess.getSummationExpressionAccess().getPlusSignKeyword_0_0_1_0());
                     	    					
-                    	    // InternalComputation.g:861:6: ( (lv_terms_2_0= ruleProductExpression ) )
-                    	    // InternalComputation.g:862:7: (lv_terms_2_0= ruleProductExpression )
+                    	    // InternalComputation.g:945:6: ( (lv_terms_2_0= ruleProductExpression ) )
+                    	    // InternalComputation.g:946:7: (lv_terms_2_0= ruleProductExpression )
                     	    {
-                    	    // InternalComputation.g:862:7: (lv_terms_2_0= ruleProductExpression )
-                    	    // InternalComputation.g:863:8: lv_terms_2_0= ruleProductExpression
+                    	    // InternalComputation.g:946:7: (lv_terms_2_0= ruleProductExpression )
+                    	    // InternalComputation.g:947:8: lv_terms_2_0= ruleProductExpression
                     	    {
 
                     	    								newCompositeNode(grammarAccess.getSummationExpressionAccess().getTermsProductExpressionParserRuleCall_0_0_1_1_0());
@@ -2137,33 +2358,33 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
                     	    break;
 
                     	default :
-                    	    break loop9;
+                    	    break loop10;
                         }
                     } while (true);
 
 
                     }
 
-                    // InternalComputation.g:882:4: (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )?
-                    int alt10=2;
-                    int LA10_0 = input.LA(1);
+                    // InternalComputation.g:966:4: (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )?
+                    int alt11=2;
+                    int LA11_0 = input.LA(1);
 
-                    if ( (LA10_0==30) ) {
-                        alt10=1;
+                    if ( (LA11_0==31) ) {
+                        alt11=1;
                     }
-                    switch (alt10) {
+                    switch (alt11) {
                         case 1 :
-                            // InternalComputation.g:883:5: otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) )
+                            // InternalComputation.g:967:5: otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) )
                             {
-                            otherlv_3=(Token)match(input,30,FOLLOW_8); 
+                            otherlv_3=(Token)match(input,31,FOLLOW_8); 
 
                             					newLeafNode(otherlv_3, grammarAccess.getSummationExpressionAccess().getPlusSignKeyword_0_1_0());
                             				
-                            // InternalComputation.g:887:5: ( (lv_constant_4_0= RULE_INT ) )
-                            // InternalComputation.g:888:6: (lv_constant_4_0= RULE_INT )
+                            // InternalComputation.g:971:5: ( (lv_constant_4_0= RULE_INT ) )
+                            // InternalComputation.g:972:6: (lv_constant_4_0= RULE_INT )
                             {
-                            // InternalComputation.g:888:6: (lv_constant_4_0= RULE_INT )
-                            // InternalComputation.g:889:7: lv_constant_4_0= RULE_INT
+                            // InternalComputation.g:972:6: (lv_constant_4_0= RULE_INT )
+                            // InternalComputation.g:973:7: lv_constant_4_0= RULE_INT
                             {
                             lv_constant_4_0=(Token)match(input,RULE_INT,FOLLOW_2); 
 
@@ -2198,13 +2419,13 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalComputation.g:908:3: ( (lv_constant_5_0= RULE_INT ) )
+                    // InternalComputation.g:992:3: ( (lv_constant_5_0= RULE_INT ) )
                     {
-                    // InternalComputation.g:908:3: ( (lv_constant_5_0= RULE_INT ) )
-                    // InternalComputation.g:909:4: (lv_constant_5_0= RULE_INT )
+                    // InternalComputation.g:992:3: ( (lv_constant_5_0= RULE_INT ) )
+                    // InternalComputation.g:993:4: (lv_constant_5_0= RULE_INT )
                     {
-                    // InternalComputation.g:909:4: (lv_constant_5_0= RULE_INT )
-                    // InternalComputation.g:910:5: lv_constant_5_0= RULE_INT
+                    // InternalComputation.g:993:4: (lv_constant_5_0= RULE_INT )
+                    // InternalComputation.g:994:5: lv_constant_5_0= RULE_INT
                     {
                     lv_constant_5_0=(Token)match(input,RULE_INT,FOLLOW_2); 
 
@@ -2252,7 +2473,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleProductExpression"
-    // InternalComputation.g:930:1: entryRuleProductExpression returns [EObject current=null] : iv_ruleProductExpression= ruleProductExpression EOF ;
+    // InternalComputation.g:1014:1: entryRuleProductExpression returns [EObject current=null] : iv_ruleProductExpression= ruleProductExpression EOF ;
     public final EObject entryRuleProductExpression() throws RecognitionException {
         EObject current = null;
 
@@ -2260,8 +2481,8 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalComputation.g:930:58: (iv_ruleProductExpression= ruleProductExpression EOF )
-            // InternalComputation.g:931:2: iv_ruleProductExpression= ruleProductExpression EOF
+            // InternalComputation.g:1014:58: (iv_ruleProductExpression= ruleProductExpression EOF )
+            // InternalComputation.g:1015:2: iv_ruleProductExpression= ruleProductExpression EOF
             {
              newCompositeNode(grammarAccess.getProductExpressionRule()); 
             pushFollow(FOLLOW_1);
@@ -2288,7 +2509,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleProductExpression"
-    // InternalComputation.g:937:1: ruleProductExpression returns [EObject current=null] : ( ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* ) ) ;
+    // InternalComputation.g:1021:1: ruleProductExpression returns [EObject current=null] : ( ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* ) ) ;
     public final EObject ruleProductExpression() throws RecognitionException {
         EObject current = null;
 
@@ -2300,25 +2521,25 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalComputation.g:943:2: ( ( ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* ) ) )
-            // InternalComputation.g:944:2: ( ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* ) )
+            // InternalComputation.g:1027:2: ( ( ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* ) ) )
+            // InternalComputation.g:1028:2: ( ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* ) )
             {
-            // InternalComputation.g:944:2: ( ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* ) )
-            // InternalComputation.g:945:3: ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* )
+            // InternalComputation.g:1028:2: ( ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* ) )
+            // InternalComputation.g:1029:3: ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* )
             {
-            // InternalComputation.g:945:3: ( (lv_constant_0_0= RULE_INT ) )?
-            int alt12=2;
-            int LA12_0 = input.LA(1);
+            // InternalComputation.g:1029:3: ( (lv_constant_0_0= RULE_INT ) )?
+            int alt13=2;
+            int LA13_0 = input.LA(1);
 
-            if ( (LA12_0==RULE_INT) ) {
-                alt12=1;
+            if ( (LA13_0==RULE_INT) ) {
+                alt13=1;
             }
-            switch (alt12) {
+            switch (alt13) {
                 case 1 :
-                    // InternalComputation.g:946:4: (lv_constant_0_0= RULE_INT )
+                    // InternalComputation.g:1030:4: (lv_constant_0_0= RULE_INT )
                     {
-                    // InternalComputation.g:946:4: (lv_constant_0_0= RULE_INT )
-                    // InternalComputation.g:947:5: lv_constant_0_0= RULE_INT
+                    // InternalComputation.g:1030:4: (lv_constant_0_0= RULE_INT )
+                    // InternalComputation.g:1031:5: lv_constant_0_0= RULE_INT
                     {
                     lv_constant_0_0=(Token)match(input,RULE_INT,FOLLOW_6); 
 
@@ -2343,14 +2564,14 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalComputation.g:963:3: ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* )
-            // InternalComputation.g:964:4: ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )*
+            // InternalComputation.g:1047:3: ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* )
+            // InternalComputation.g:1048:4: ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )*
             {
-            // InternalComputation.g:964:4: ( (otherlv_1= RULE_ID ) )
-            // InternalComputation.g:965:5: (otherlv_1= RULE_ID )
+            // InternalComputation.g:1048:4: ( (otherlv_1= RULE_ID ) )
+            // InternalComputation.g:1049:5: (otherlv_1= RULE_ID )
             {
-            // InternalComputation.g:965:5: (otherlv_1= RULE_ID )
-            // InternalComputation.g:966:6: otherlv_1= RULE_ID
+            // InternalComputation.g:1049:5: (otherlv_1= RULE_ID )
+            // InternalComputation.g:1050:6: otherlv_1= RULE_ID
             {
 
             						if (current==null) {
@@ -2367,23 +2588,23 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalComputation.g:977:4: ( (otherlv_2= RULE_ID ) )*
-            loop13:
+            // InternalComputation.g:1061:4: ( (otherlv_2= RULE_ID ) )*
+            loop14:
             do {
-                int alt13=2;
-                int LA13_0 = input.LA(1);
+                int alt14=2;
+                int LA14_0 = input.LA(1);
 
-                if ( (LA13_0==RULE_ID) ) {
-                    alt13=1;
+                if ( (LA14_0==RULE_ID) ) {
+                    alt14=1;
                 }
 
 
-                switch (alt13) {
+                switch (alt14) {
             	case 1 :
-            	    // InternalComputation.g:978:5: (otherlv_2= RULE_ID )
+            	    // InternalComputation.g:1062:5: (otherlv_2= RULE_ID )
             	    {
-            	    // InternalComputation.g:978:5: (otherlv_2= RULE_ID )
-            	    // InternalComputation.g:979:6: otherlv_2= RULE_ID
+            	    // InternalComputation.g:1062:5: (otherlv_2= RULE_ID )
+            	    // InternalComputation.g:1063:6: otherlv_2= RULE_ID
             	    {
 
             	    						if (current==null) {
@@ -2402,7 +2623,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
             	    break;
 
             	default :
-            	    break loop13;
+            	    break loop14;
                 }
             } while (true);
 
@@ -2453,15 +2674,15 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
     public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000600000L});
     public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000680000L});
     public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x000000000C000030L});
+    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x000000004C000030L});
     public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000001000000L});
     public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000002000000L});
     public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000008000000L});
     public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000010000000L});
     public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000030000000L});
-    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000040000000L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000080000000L});
     public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000020000000L});
-    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000040000002L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000080000002L});
     public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000000000012L});
 
 }
\ No newline at end of file
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/serializer/ComputationSemanticSequencer.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/serializer/ComputationSemanticSequencer.java
index 1aa86f6..130f977 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/serializer/ComputationSemanticSequencer.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/serializer/ComputationSemanticSequencer.java
@@ -24,6 +24,7 @@ import typeexploration.computation.MaxExpression;
 import typeexploration.computation.OperandTerm;
 import typeexploration.computation.Operation;
 import typeexploration.computation.ProductExpression;
+import typeexploration.computation.SumExpression;
 import typeexploration.computation.SummationExpression;
 
 @SuppressWarnings("all")
@@ -67,6 +68,9 @@ public class ComputationSemanticSequencer extends AbstractDelegatingSemanticSequ
 			case ComputationPackage.PRODUCT_EXPRESSION:
 				sequence_ProductExpression(context, (ProductExpression) semanticObject); 
 				return; 
+			case ComputationPackage.SUM_EXPRESSION:
+				sequence_SumExpression(context, (SumExpression) semanticObject); 
+				return; 
 			case ComputationPackage.SUMMATION_EXPRESSION:
 				sequence_SummationExpression(context, (SummationExpression) semanticObject); 
 				return; 
@@ -236,6 +240,19 @@ public class ComputationSemanticSequencer extends AbstractDelegatingSemanticSequ
 	}
 	
 	
+	/**
+	 * Contexts:
+	 *     OperandExpression returns SumExpression
+	 *     SumExpression returns SumExpression
+	 *
+	 * Constraint:
+	 *     (exprs+=TerminalOperandExpression exprs+=TerminalOperandExpression+)
+	 */
+	protected void sequence_SumExpression(ISerializationContext context, SumExpression semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
 	/**
 	 * Contexts:
 	 *     SummationExpression returns SummationExpression
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/services/ComputationGrammarAccess.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/services/ComputationGrammarAccess.java
index aab1313..b2a3dbf 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/services/ComputationGrammarAccess.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/services/ComputationGrammarAccess.java
@@ -311,21 +311,25 @@ public class ComputationGrammarAccess extends AbstractGrammarElementFinder {
 	public class OperandExpressionElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irisa.cairn.gecos.typeexploration.Computation.OperandExpression");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
-		private final RuleCall cMaxExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
-		private final RuleCall cTerminalOperandExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cSumExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cMaxExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cTerminalOperandExpressionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
 		
 		//OperandExpression:
-		//	MaxExpression | TerminalOperandExpression;
+		//	SumExpression | MaxExpression | TerminalOperandExpression;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//MaxExpression | TerminalOperandExpression
+		//SumExpression | MaxExpression | TerminalOperandExpression
 		public Alternatives getAlternatives() { return cAlternatives; }
 		
+		//SumExpression
+		public RuleCall getSumExpressionParserRuleCall_0() { return cSumExpressionParserRuleCall_0; }
+		
 		//MaxExpression
-		public RuleCall getMaxExpressionParserRuleCall_0() { return cMaxExpressionParserRuleCall_0; }
+		public RuleCall getMaxExpressionParserRuleCall_1() { return cMaxExpressionParserRuleCall_1; }
 		
 		//TerminalOperandExpression
-		public RuleCall getTerminalOperandExpressionParserRuleCall_1() { return cTerminalOperandExpressionParserRuleCall_1; }
+		public RuleCall getTerminalOperandExpressionParserRuleCall_2() { return cTerminalOperandExpressionParserRuleCall_2; }
 	}
 	public class MaxExpressionElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irisa.cairn.gecos.typeexploration.Computation.MaxExpression");
@@ -374,6 +378,53 @@ public class ComputationGrammarAccess extends AbstractGrammarElementFinder {
 		//')'
 		public Keyword getRightParenthesisKeyword_4() { return cRightParenthesisKeyword_4; }
 	}
+	public class SumExpressionElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irisa.cairn.gecos.typeexploration.Computation.SumExpression");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cSumKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cExprsAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cExprsTerminalOperandExpressionParserRuleCall_2_0 = (RuleCall)cExprsAssignment_2.eContents().get(0);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cCommaKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cExprsAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final RuleCall cExprsTerminalOperandExpressionParserRuleCall_3_1_0 = (RuleCall)cExprsAssignment_3_1.eContents().get(0);
+		private final Keyword cRightParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		
+		//SumExpression:
+		//	'sum' '(' exprs+=TerminalOperandExpression (',' exprs+=TerminalOperandExpression)+ ')';
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'sum' '(' exprs+=TerminalOperandExpression (',' exprs+=TerminalOperandExpression)+ ')'
+		public Group getGroup() { return cGroup; }
+		
+		//'sum'
+		public Keyword getSumKeyword_0() { return cSumKeyword_0; }
+		
+		//'('
+		public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
+		
+		//exprs+=TerminalOperandExpression
+		public Assignment getExprsAssignment_2() { return cExprsAssignment_2; }
+		
+		//TerminalOperandExpression
+		public RuleCall getExprsTerminalOperandExpressionParserRuleCall_2_0() { return cExprsTerminalOperandExpressionParserRuleCall_2_0; }
+		
+		//(',' exprs+=TerminalOperandExpression)+
+		public Group getGroup_3() { return cGroup_3; }
+		
+		//','
+		public Keyword getCommaKeyword_3_0() { return cCommaKeyword_3_0; }
+		
+		//exprs+=TerminalOperandExpression
+		public Assignment getExprsAssignment_3_1() { return cExprsAssignment_3_1; }
+		
+		//TerminalOperandExpression
+		public RuleCall getExprsTerminalOperandExpressionParserRuleCall_3_1_0() { return cExprsTerminalOperandExpressionParserRuleCall_3_1_0; }
+		
+		//')'
+		public Keyword getRightParenthesisKeyword_4() { return cRightParenthesisKeyword_4; }
+	}
 	public class TerminalOperandExpressionElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irisa.cairn.gecos.typeexploration.Computation.TerminalOperandExpression");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
@@ -583,6 +634,7 @@ public class ComputationGrammarAccess extends AbstractGrammarElementFinder {
 	private final OperationElements pOperation;
 	private final OperandExpressionElements pOperandExpression;
 	private final MaxExpressionElements pMaxExpression;
+	private final SumExpressionElements pSumExpression;
 	private final TerminalOperandExpressionElements pTerminalOperandExpression;
 	private final AddExpressionElements pAddExpression;
 	private final OperandTermElements pOperandTerm;
@@ -606,6 +658,7 @@ public class ComputationGrammarAccess extends AbstractGrammarElementFinder {
 		this.pOperation = new OperationElements();
 		this.pOperandExpression = new OperandExpressionElements();
 		this.pMaxExpression = new MaxExpressionElements();
+		this.pSumExpression = new SumExpressionElements();
 		this.pTerminalOperandExpression = new TerminalOperandExpressionElements();
 		this.pAddExpression = new AddExpressionElements();
 		this.pOperandTerm = new OperandTermElements();
@@ -710,7 +763,7 @@ public class ComputationGrammarAccess extends AbstractGrammarElementFinder {
 	}
 	
 	//OperandExpression:
-	//	MaxExpression | TerminalOperandExpression;
+	//	SumExpression | MaxExpression | TerminalOperandExpression;
 	public OperandExpressionElements getOperandExpressionAccess() {
 		return pOperandExpression;
 	}
@@ -729,6 +782,16 @@ public class ComputationGrammarAccess extends AbstractGrammarElementFinder {
 		return getMaxExpressionAccess().getRule();
 	}
 	
+	//SumExpression:
+	//	'sum' '(' exprs+=TerminalOperandExpression (',' exprs+=TerminalOperandExpression)+ ')';
+	public SumExpressionElements getSumExpressionAccess() {
+		return pSumExpression;
+	}
+	
+	public ParserRule getSumExpressionRule() {
+		return getSumExpressionAccess().getRule();
+	}
+	
 	//TerminalOperandExpression OperandExpression:
 	//	AddExpression | OperandTerm;
 	public TerminalOperandExpressionElements getTerminalOperandExpressionAccess() {
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src/fr/irisa/cairn/gecos/typeexploration/Computation.xtext b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src/fr/irisa/cairn/gecos/typeexploration/Computation.xtext
index 4a80770..94d4fef 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src/fr/irisa/cairn/gecos/typeexploration/Computation.xtext
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src/fr/irisa/cairn/gecos/typeexploration/Computation.xtext
@@ -38,13 +38,18 @@ Operation:
 ;
 
 OperandExpression:
-	MaxExpression|TerminalOperandExpression
+	SumExpression|MaxExpression|TerminalOperandExpression
 ;
 
 MaxExpression:
 	'max' '(' exprs+=TerminalOperandExpression (',' exprs+=TerminalOperandExpression)+ ')'
 ;
 
+// FIXME Update code: Phu
+SumExpression:
+	'sum' '(' exprs+=TerminalOperandExpression (',' exprs+=TerminalOperandExpression)+ ')'
+;
+
 TerminalOperandExpression returns OperandExpression:
 	AddExpression | OperandTerm
 ;
-- 
GitLab


From d75731907deb7375685a411b1fd67c7bffd64f43 Mon Sep 17 00:00:00 2001
From: phuhv <van-phu.ha@inria.fr>
Date: Fri, 25 Jan 2019 12:09:08 +0100
Subject: [PATCH 03/11] fixed validity check of operation BWs at
 ConcreteOperation constructor

---
 .../concrete/ConcreteOperation.java           | 21 +++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src/typeexploration/computation/concrete/ConcreteOperation.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src/typeexploration/computation/concrete/ConcreteOperation.java
index 7b70f33..caa2183 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src/typeexploration/computation/concrete/ConcreteOperation.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src/typeexploration/computation/concrete/ConcreteOperation.java
@@ -16,16 +16,25 @@ public class ConcreteOperation {
 		//FIXME
 		if (BWin1 > 16) { System.err.println("Input1 of concrete operation reduced from " + BWin1 + " to 16 due to library limitations."); BWin1 = 16; }
 		if (BWin2 > 16) { System.err.println("Input2 of concrete operation reduced from " + BWin2 + " to 16 due to library limitations."); BWin2 = 16; }
-		if (BWout > 16) { System.err.println("Output of concrete operation reduced from " + BWout + " to 16 due to library limitations."); BWout = 16; }
+		// FIXME Update code: Phu
+		if (BWout > 32) { System.err.println("Output of concrete operation reduced from " + BWout + " to 32 due to library limitations."); BWout = 32; }
 		
 		//FIXME library supports even sizes
-		BWin1 = (int)(2*Math.ceil(BWin1/2));
-		BWin2 = (int)(2*Math.ceil(BWin2/2));
-		BWout = (int)(2*Math.ceil(BWout/2));
-		
+		BWin1 = (int)(2*Math.ceil(BWin1/2.0));
+		BWin2 = (int)(2*Math.ceil(BWin2/2.0));
+		BWout = (int)(2*Math.ceil(BWout/2.0));
+			
 		//FIXME force output of mult to be higher than inputs
 		if (type == HWOpType.MUL) {
-			BWout = Math.max(Math.max(BWin1, BWin2), BWout);
+			// FIXME Update code: Phu
+			// BWout = Math.max(Math.max(BWin1, BWin2), BWout);
+			BWout = Math.min(Math.max(Math.max(BWin1, BWin2), BWout), BWin1+BWin2);
+		}
+		
+		// FIXME Update code: Phu
+		//FIXME force output of add to not be higher than inputs
+		if (type == HWOpType.ADD) {
+			BWout = Math.min(BWout, Math.max(BWin1, BWin2));
 		}
 		
 		if (BWin2 > BWin1) {
-- 
GitLab


From da5e24b2ba8a2dc1e268637d371775c8062e26e6 Mon Sep 17 00:00:00 2001
From: phuhv <van-phu.ha@inria.fr>
Date: Fri, 25 Jan 2019 13:51:13 +0100
Subject: [PATCH 04/11] change the order of arguments of evaluate in
 SSIMEvaluatorForFiles to be consistent with SSIMEvaluator

---
 .../src/SSIMEvaluatorForFiles.java                         | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration/src/SSIMEvaluatorForFiles.java b/bundles/fr.irisa.cairn.gecos.typeexploration/src/SSIMEvaluatorForFiles.java
index dea00a7..42e0b3a 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration/src/SSIMEvaluatorForFiles.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration/src/SSIMEvaluatorForFiles.java
@@ -18,10 +18,9 @@ public class SSIMEvaluatorForFiles {
 	public static void main(String[] args) {
 		Path path1 = Paths.get("/Users/tyuki/projects/GeCoS/gecos-float2fix/bundles/fr.irisa.cairn.gecos.typeexploration.demo/demos/nlm_png/outputs/nlm/2018-09-12-10:54:32/exploration/simulations/ref/profiling-files");
 		Path path2 = Paths.get("/Users/tyuki/projects/GeCoS/gecos-float2fix/bundles/fr.irisa.cairn.gecos.typeexploration.demo/demos/nlm_png/outputs/nlm/2018-09-12-10:54:32/exploration/simulations/sol1/profiling-files");
-		
+
 		double ssim = evaluate(384, 512, path1, path2);
 		System.out.println(ssim);
-		
 	}
 	
 	private static double evaluate(int H, int W, Path dir1, Path dir2) {
@@ -40,7 +39,7 @@ public class SSIMEvaluatorForFiles {
 			Number[] array1 = profilingInfo1.getSnapshot(0);
 			Number[] array2 = profilingInfo2.getSnapshot(0);
 			
-			SSIMEvaluator ssimEval = new SSIMEvaluator(H, W, array1, array2);
+			SSIMEvaluator ssimEval = new SSIMEvaluator(W, H, array1, array2);
 			return ssimEval.evaluate();
 		} catch(Exception e) {
 			e.printStackTrace();
@@ -48,4 +47,4 @@ public class SSIMEvaluatorForFiles {
 		
 		return -1;
 	}
-}
+}
\ No newline at end of file
-- 
GitLab


From 2eb657f72c6144f2ddb2551aa67c61da6217d216 Mon Sep 17 00:00:00 2001
From: phuhv <van-phu.ha@inria.fr>
Date: Fri, 25 Jan 2019 14:56:37 +0100
Subject: [PATCH 05/11] add sum expression to ComputationModelEvaluator

---
 .../typeexploration/cost/ComputationModelEvaluator.java   | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration/src/fr/irisa/cairn/gecos/typeexploration/cost/ComputationModelEvaluator.java b/bundles/fr.irisa.cairn.gecos.typeexploration/src/fr/irisa/cairn/gecos/typeexploration/cost/ComputationModelEvaluator.java
index 1203d4f..c85b7fe 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration/src/fr/irisa/cairn/gecos/typeexploration/cost/ComputationModelEvaluator.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration/src/fr/irisa/cairn/gecos/typeexploration/cost/ComputationModelEvaluator.java
@@ -9,6 +9,8 @@ import typeexploration.computation.AddExpression;
 import typeexploration.computation.ComputationBlock;
 import typeexploration.computation.ComputationModel;
 import typeexploration.computation.MaxExpression;
+//FIXME Update code: Phu
+import typeexploration.computation.SumExpression;
 import typeexploration.computation.OperandTerm;
 import typeexploration.computation.Operation;
 import typeexploration.computation.Parameter;
@@ -120,6 +122,12 @@ public class ComputationModelEvaluator implements ICostEvaluator {
 			return object.getExprs().stream().mapToLong((e)->doSwitch(e)).reduce((x,y)->Math.max(x, y)).getAsLong();
 		}
 		
+		// FIXME Update code: Phu
+		@Override
+		public Long caseSumExpression(SumExpression object) {
+			return object.getExprs().stream().mapToLong((e)->doSwitch(e)).reduce((x,y)->(x+y)).getAsLong();
+		}
+		
 		@Override
 		public Long caseAddExpression(AddExpression object) {
 			return doSwitch(object.getOp1()) + doSwitch(object.getOp2());
-- 
GitLab


From 31f517b88db0f0f2e96793635438df747e78fc07 Mon Sep 17 00:00:00 2001
From: phuhv <van-phu.ha@inria.fr>
Date: Fri, 25 Jan 2019 14:58:09 +0100
Subject: [PATCH 06/11] fixes by Phu for TabuSearch (change direction and keep
 optimal solution)

---
 .../typeexploration/dse/TabuExploration.java   | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration/src/fr/irisa/cairn/gecos/typeexploration/dse/TabuExploration.java b/bundles/fr.irisa.cairn.gecos.typeexploration/src/fr/irisa/cairn/gecos/typeexploration/dse/TabuExploration.java
index b4f7300..b09f298 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration/src/fr/irisa/cairn/gecos/typeexploration/dse/TabuExploration.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration/src/fr/irisa/cairn/gecos/typeexploration/dse/TabuExploration.java
@@ -20,7 +20,7 @@ import gecos.core.Symbol;
 import typeexploration.SolutionSpace;
 
 /**
- * @author aelmouss
+ * @author phuhv
  */
 public class TabuExploration extends AbstractExplorationAlgorithm {
 
@@ -108,12 +108,16 @@ public class TabuExploration extends AbstractExplorationAlgorithm {
 			}
 		}
 		
-		if(!getAccuracy(solution).isPresent() || !getCost(solution).isPresent())
+		// FIXME Update code: Phu
+		// if(!getAccuracy(solution).isPresent() || !getCost(solution).isPresent())
+		if(!getAccuracy(optimalSol).isPresent() || !getCost(optimalSol).isPresent())
 			throw new NoSolutionFoundException("Failed to find a solution likely because the minimun precision "
 					+ "configuration of some Symbols is too low, resulting in errors (like divide by zero for example).\n"
 					+ "Try rerun after enabling pruning or increasing the minimum W values of some symbols.");
 		
-		if(!userAccuracyConstraint.isValid(solution))
+		// FIXME Update code: Phu
+		// if(!userAccuracyConstraint.isValid(solution))
+		if(!userAccuracyConstraint.isValid(optimalSol))
 			throw new NoSolutionFoundException("No valid solution was found!");
 		
 		logger.info("Finished exploration.");
@@ -147,7 +151,6 @@ public class TabuExploration extends AbstractExplorationAlgorithm {
 					try {
 						evaluateAccuracy(nextSolution);
 						evaluateCost(nextSolution);
-						display(nextSolution);
 						synchronized (nextSolutionCandidates) {
 							nextSolutionCandidates.add(nextExplorer);
 						}
@@ -171,7 +174,9 @@ public class TabuExploration extends AbstractExplorationAlgorithm {
 						logger.warning("Skipping next solution (direction down) candidate: " + nextSolution.getID() + " cause: " + e.getMessage());
 					}
 				}
-				else { //already at max (min) and direction up (down)
+				// FIXME Update code: Phu
+				// else { //already at max (min) and direction up (down) 
+				else if (indexMax == 0) {
 					synchronized (finished) {
 						logger.fine(() -> "Symbol exploration finished; already at " + (directionUp? "max W & direction is up" : "min W & direction is down") + ": " + symbol);
 						newlyFinished.add(symbol);						
@@ -277,7 +282,8 @@ public class TabuExploration extends AbstractExplorationAlgorithm {
 		if(higherIsBetter)
 			diff = -diff;
 		
-		if (Math.abs(diff) < 0.0000001) {
+//		if (Math.abs(diff) < 0.0000001) {
+		if (Math.abs(diff) < 0.000000000001) {
 			diff = 0;
 		}
 		return diff + 1;
-- 
GitLab


From 8f6e40d38091d6258b7fa130d69793c7f8552d34 Mon Sep 17 00:00:00 2001
From: Tomofumi Yuki <tomofumi.yuki@gmail.com>
Date: Mon, 28 Jan 2019 11:57:04 +0100
Subject: [PATCH 07/11] Revert "Add sum expression in Computation.xcore"

This reverts commit b9e56a56ccde32956ec5e8b51a3ee929a08cabd2.
---
 .../model/Computation.xcore                   |   5 -
 .../computation/ComputationFactory.java       |   9 --
 .../computation/ComputationPackage.java       |  88 +---------
 .../computation/SumExpression.java            |  40 -----
 .../impl/ComputationFactoryImpl.java          |  11 --
 .../impl/ComputationPackageImpl.java          |  33 ----
 .../computation/impl/SumExpressionImpl.java   | 150 ------------------
 .../util/ComputationAdapterFactory.java       |  18 ---
 .../computation/util/ComputationSwitch.java   |  22 ---
 9 files changed, 6 insertions(+), 370 deletions(-)
 delete mode 100644 bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/SumExpression.java
 delete mode 100644 bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/SumExpressionImpl.java

diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/model/Computation.xcore b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/model/Computation.xcore
index 3f746a8..150a68e 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/model/Computation.xcore
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/model/Computation.xcore
@@ -51,11 +51,6 @@ class MaxExpression extends OperandExpression {
 	contains OperandExpression[] exprs
 }
 
-// FIXME Update code: Phu
-class SumExpression extends OperandExpression {
-	contains OperandExpression[] exprs
-}
-
 class AddExpression extends OperandExpression {
 	contains OperandExpression op1
 	contains OperandExpression op2
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/ComputationFactory.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/ComputationFactory.java
index 67707d8..f2bfef7 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/ComputationFactory.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/ComputationFactory.java
@@ -75,15 +75,6 @@ public interface ComputationFactory extends EFactory {
 	 */
 	MaxExpression createMaxExpression();
 
-	/**
-	 * Returns a new object of class '<em>Sum Expression</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Sum Expression</em>'.
-	 * @generated
-	 */
-	SumExpression createSumExpression();
-
 	/**
 	 * Returns a new object of class '<em>Add Expression</em>'.
 	 * <!-- begin-user-doc -->
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/ComputationPackage.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/ComputationPackage.java
index dc41226..fd58e4f 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/ComputationPackage.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/ComputationPackage.java
@@ -408,43 +408,6 @@ public interface ComputationPackage extends EPackage {
 	 */
 	int MAX_EXPRESSION_OPERATION_COUNT = OPERAND_EXPRESSION_OPERATION_COUNT + 0;
 
-	/**
-	 * The meta object id for the '{@link typeexploration.computation.impl.SumExpressionImpl <em>Sum Expression</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see typeexploration.computation.impl.SumExpressionImpl
-	 * @see typeexploration.computation.impl.ComputationPackageImpl#getSumExpression()
-	 * @generated
-	 */
-	int SUM_EXPRESSION = 7;
-
-	/**
-	 * The feature id for the '<em><b>Exprs</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SUM_EXPRESSION__EXPRS = OPERAND_EXPRESSION_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Sum Expression</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SUM_EXPRESSION_FEATURE_COUNT = OPERAND_EXPRESSION_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Sum Expression</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SUM_EXPRESSION_OPERATION_COUNT = OPERAND_EXPRESSION_OPERATION_COUNT + 0;
-
 	/**
 	 * The meta object id for the '{@link typeexploration.computation.impl.AddExpressionImpl <em>Add Expression</em>}' class.
 	 * <!-- begin-user-doc -->
@@ -453,7 +416,7 @@ public interface ComputationPackage extends EPackage {
 	 * @see typeexploration.computation.impl.ComputationPackageImpl#getAddExpression()
 	 * @generated
 	 */
-	int ADD_EXPRESSION = 8;
+	int ADD_EXPRESSION = 7;
 
 	/**
 	 * The feature id for the '<em><b>Op1</b></em>' containment reference.
@@ -499,7 +462,7 @@ public interface ComputationPackage extends EPackage {
 	 * @see typeexploration.computation.impl.ComputationPackageImpl#getOperandTerm()
 	 * @generated
 	 */
-	int OPERAND_TERM = 9;
+	int OPERAND_TERM = 8;
 
 	/**
 	 * The feature id for the '<em><b>Coef</b></em>' attribute.
@@ -545,7 +508,7 @@ public interface ComputationPackage extends EPackage {
 	 * @see typeexploration.computation.impl.ComputationPackageImpl#getSizeExpression()
 	 * @generated
 	 */
-	int SIZE_EXPRESSION = 10;
+	int SIZE_EXPRESSION = 9;
 
 	/**
 	 * The number of structural features of the '<em>Size Expression</em>' class.
@@ -582,7 +545,7 @@ public interface ComputationPackage extends EPackage {
 	 * @see typeexploration.computation.impl.ComputationPackageImpl#getSummationExpression()
 	 * @generated
 	 */
-	int SUMMATION_EXPRESSION = 11;
+	int SUMMATION_EXPRESSION = 10;
 
 	/**
 	 * The feature id for the '<em><b>Constant</b></em>' attribute.
@@ -637,7 +600,7 @@ public interface ComputationPackage extends EPackage {
 	 * @see typeexploration.computation.impl.ComputationPackageImpl#getProductExpression()
 	 * @generated
 	 */
-	int PRODUCT_EXPRESSION = 12;
+	int PRODUCT_EXPRESSION = 11;
 
 	/**
 	 * The feature id for the '<em><b>Constant</b></em>' attribute.
@@ -692,7 +655,7 @@ public interface ComputationPackage extends EPackage {
 	 * @see typeexploration.computation.impl.ComputationPackageImpl#getHWOpType()
 	 * @generated
 	 */
-	int HW_OP_TYPE = 13;
+	int HW_OP_TYPE = 12;
 
 
 	/**
@@ -952,27 +915,6 @@ public interface ComputationPackage extends EPackage {
 	 */
 	EReference getMaxExpression_Exprs();
 
-	/**
-	 * Returns the meta object for class '{@link typeexploration.computation.SumExpression <em>Sum Expression</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Sum Expression</em>'.
-	 * @see typeexploration.computation.SumExpression
-	 * @generated
-	 */
-	EClass getSumExpression();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link typeexploration.computation.SumExpression#getExprs <em>Exprs</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Exprs</em>'.
-	 * @see typeexploration.computation.SumExpression#getExprs()
-	 * @see #getSumExpression()
-	 * @generated
-	 */
-	EReference getSumExpression_Exprs();
-
 	/**
 	 * Returns the meta object for class '{@link typeexploration.computation.AddExpression <em>Add Expression</em>}'.
 	 * <!-- begin-user-doc -->
@@ -1380,24 +1322,6 @@ public interface ComputationPackage extends EPackage {
 		 */
 		EReference MAX_EXPRESSION__EXPRS = eINSTANCE.getMaxExpression_Exprs();
 
-		/**
-		 * The meta object literal for the '{@link typeexploration.computation.impl.SumExpressionImpl <em>Sum Expression</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see typeexploration.computation.impl.SumExpressionImpl
-		 * @see typeexploration.computation.impl.ComputationPackageImpl#getSumExpression()
-		 * @generated
-		 */
-		EClass SUM_EXPRESSION = eINSTANCE.getSumExpression();
-
-		/**
-		 * The meta object literal for the '<em><b>Exprs</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference SUM_EXPRESSION__EXPRS = eINSTANCE.getSumExpression_Exprs();
-
 		/**
 		 * The meta object literal for the '{@link typeexploration.computation.impl.AddExpressionImpl <em>Add Expression</em>}' class.
 		 * <!-- begin-user-doc -->
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/SumExpression.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/SumExpression.java
deleted file mode 100644
index 044a7eb..0000000
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/SumExpression.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- */
-package typeexploration.computation;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Sum Expression</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link typeexploration.computation.SumExpression#getExprs <em>Exprs</em>}</li>
- * </ul>
- *
- * @see typeexploration.computation.ComputationPackage#getSumExpression()
- * @model
- * @generated
- */
-public interface SumExpression extends OperandExpression {
-	/**
-	 * Returns the value of the '<em><b>Exprs</b></em>' containment reference list.
-	 * The list contents are of type {@link typeexploration.computation.OperandExpression}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Exprs</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Exprs</em>' containment reference list.
-	 * @see typeexploration.computation.ComputationPackage#getSumExpression_Exprs()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<OperandExpression> getExprs();
-
-} // SumExpression
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/ComputationFactoryImpl.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/ComputationFactoryImpl.java
index ce530b3..a4be979 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/ComputationFactoryImpl.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/ComputationFactoryImpl.java
@@ -63,7 +63,6 @@ public class ComputationFactoryImpl extends EFactoryImpl implements ComputationF
 			case ComputationPackage.COMPUTATION_BLOCK: return createComputationBlock();
 			case ComputationPackage.OPERATION: return createOperation();
 			case ComputationPackage.MAX_EXPRESSION: return createMaxExpression();
-			case ComputationPackage.SUM_EXPRESSION: return createSumExpression();
 			case ComputationPackage.ADD_EXPRESSION: return createAddExpression();
 			case ComputationPackage.OPERAND_TERM: return createOperandTerm();
 			case ComputationPackage.SUMMATION_EXPRESSION: return createSummationExpression();
@@ -163,16 +162,6 @@ public class ComputationFactoryImpl extends EFactoryImpl implements ComputationF
 		return maxExpression;
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SumExpression createSumExpression() {
-		SumExpressionImpl sumExpression = new SumExpressionImpl();
-		return sumExpression;
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/ComputationPackageImpl.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/ComputationPackageImpl.java
index 698c382..781fb3b 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/ComputationPackageImpl.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/ComputationPackageImpl.java
@@ -26,7 +26,6 @@ import typeexploration.computation.Operation;
 import typeexploration.computation.Parameter;
 import typeexploration.computation.ProductExpression;
 import typeexploration.computation.SizeExpression;
-import typeexploration.computation.SumExpression;
 import typeexploration.computation.SummationExpression;
 
 /**
@@ -85,13 +84,6 @@ public class ComputationPackageImpl extends EPackageImpl implements ComputationP
 	 */
 	private EClass maxExpressionEClass = null;
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass sumExpressionEClass = null;
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -414,24 +406,6 @@ public class ComputationPackageImpl extends EPackageImpl implements ComputationP
 		return (EReference)maxExpressionEClass.getEStructuralFeatures().get(0);
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getSumExpression() {
-		return sumExpressionEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getSumExpression_Exprs() {
-		return (EReference)sumExpressionEClass.getEStructuralFeatures().get(0);
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -644,9 +618,6 @@ public class ComputationPackageImpl extends EPackageImpl implements ComputationP
 		maxExpressionEClass = createEClass(MAX_EXPRESSION);
 		createEReference(maxExpressionEClass, MAX_EXPRESSION__EXPRS);
 
-		sumExpressionEClass = createEClass(SUM_EXPRESSION);
-		createEReference(sumExpressionEClass, SUM_EXPRESSION__EXPRS);
-
 		addExpressionEClass = createEClass(ADD_EXPRESSION);
 		createEReference(addExpressionEClass, ADD_EXPRESSION__OP1);
 		createEReference(addExpressionEClass, ADD_EXPRESSION__OP2);
@@ -704,7 +675,6 @@ public class ComputationPackageImpl extends EPackageImpl implements ComputationP
 
 		// Add supertypes to classes
 		maxExpressionEClass.getESuperTypes().add(this.getOperandExpression());
-		sumExpressionEClass.getESuperTypes().add(this.getOperandExpression());
 		addExpressionEClass.getESuperTypes().add(this.getOperandExpression());
 		operandTermEClass.getESuperTypes().add(this.getOperandExpression());
 		summationExpressionEClass.getESuperTypes().add(this.getSizeExpression());
@@ -742,9 +712,6 @@ public class ComputationPackageImpl extends EPackageImpl implements ComputationP
 		initEClass(maxExpressionEClass, MaxExpression.class, "MaxExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getMaxExpression_Exprs(), this.getOperandExpression(), null, "exprs", null, 0, -1, MaxExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEClass(sumExpressionEClass, SumExpression.class, "SumExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getSumExpression_Exprs(), this.getOperandExpression(), null, "exprs", null, 0, -1, SumExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
 		initEClass(addExpressionEClass, AddExpression.class, "AddExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getAddExpression_Op1(), this.getOperandExpression(), null, "op1", null, 0, 1, AddExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getAddExpression_Op2(), this.getOperandExpression(), null, "op2", null, 0, 1, AddExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/SumExpressionImpl.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/SumExpressionImpl.java
deleted file mode 100644
index cb4ed52..0000000
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/impl/SumExpressionImpl.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/**
- */
-package typeexploration.computation.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import typeexploration.computation.ComputationPackage;
-import typeexploration.computation.OperandExpression;
-import typeexploration.computation.SumExpression;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Sum Expression</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link typeexploration.computation.impl.SumExpressionImpl#getExprs <em>Exprs</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class SumExpressionImpl extends OperandExpressionImpl implements SumExpression {
-	/**
-	 * The cached value of the '{@link #getExprs() <em>Exprs</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getExprs()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<OperandExpression> exprs;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SumExpressionImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return ComputationPackage.Literals.SUM_EXPRESSION;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<OperandExpression> getExprs() {
-		if (exprs == null) {
-			exprs = new EObjectContainmentEList<OperandExpression>(OperandExpression.class, this, ComputationPackage.SUM_EXPRESSION__EXPRS);
-		}
-		return exprs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case ComputationPackage.SUM_EXPRESSION__EXPRS:
-				return ((InternalEList<?>)getExprs()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case ComputationPackage.SUM_EXPRESSION__EXPRS:
-				return getExprs();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case ComputationPackage.SUM_EXPRESSION__EXPRS:
-				getExprs().clear();
-				getExprs().addAll((Collection<? extends OperandExpression>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case ComputationPackage.SUM_EXPRESSION__EXPRS:
-				getExprs().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case ComputationPackage.SUM_EXPRESSION__EXPRS:
-				return exprs != null && !exprs.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //SumExpressionImpl
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/util/ComputationAdapterFactory.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/util/ComputationAdapterFactory.java
index c157c3d..3f7c227 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/util/ComputationAdapterFactory.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/util/ComputationAdapterFactory.java
@@ -96,10 +96,6 @@ public class ComputationAdapterFactory extends AdapterFactoryImpl {
 				return createMaxExpressionAdapter();
 			}
 			@Override
-			public Adapter caseSumExpression(SumExpression object) {
-				return createSumExpressionAdapter();
-			}
-			@Override
 			public Adapter caseAddExpression(AddExpression object) {
 				return createAddExpressionAdapter();
 			}
@@ -237,20 +233,6 @@ public class ComputationAdapterFactory extends AdapterFactoryImpl {
 		return null;
 	}
 
-	/**
-	 * Creates a new adapter for an object of class '{@link typeexploration.computation.SumExpression <em>Sum Expression</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see typeexploration.computation.SumExpression
-	 * @generated
-	 */
-	public Adapter createSumExpressionAdapter() {
-		return null;
-	}
-
 	/**
 	 * Creates a new adapter for an object of class '{@link typeexploration.computation.AddExpression <em>Add Expression</em>}'.
 	 * <!-- begin-user-doc -->
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/util/ComputationSwitch.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/util/ComputationSwitch.java
index 792f005..3bc275f 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/util/ComputationSwitch.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src-gen/typeexploration/computation/util/ComputationSwitch.java
@@ -109,13 +109,6 @@ public class ComputationSwitch<T> extends Switch<T> {
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case ComputationPackage.SUM_EXPRESSION: {
-				SumExpression sumExpression = (SumExpression)theEObject;
-				T result = caseSumExpression(sumExpression);
-				if (result == null) result = caseOperandExpression(sumExpression);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
 			case ComputationPackage.ADD_EXPRESSION: {
 				AddExpression addExpression = (AddExpression)theEObject;
 				T result = caseAddExpression(addExpression);
@@ -259,21 +252,6 @@ public class ComputationSwitch<T> extends Switch<T> {
 		return null;
 	}
 
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Sum Expression</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Sum Expression</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseSumExpression(SumExpression object) {
-		return null;
-	}
-
 	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Add Expression</em>'.
 	 * <!-- begin-user-doc -->
-- 
GitLab


From 4263a0739c2d8a17663ebec7ec229ca826b6c219 Mon Sep 17 00:00:00 2001
From: Tomofumi Yuki <tomofumi.yuki@gmail.com>
Date: Mon, 28 Jan 2019 11:58:35 +0100
Subject: [PATCH 08/11] Revert "Add sum expression to cost model DSL"

This reverts commit fe9648beb8befe1db4f285c972ee08fac9789e0a.
---
 .../antlr/ComputationParser.java              |    4 -
 .../antlr/internal/InternalComputation.g      |  265 +-
 .../antlr/internal/InternalComputation.tokens |    4 +-
 .../internal/InternalComputationLexer.java    |  297 +-
 .../internal/InternalComputationParser.java   | 2734 ++++++-----------
 .../AbstractComputationProposalProvider.java  |    6 -
 .../typeexploration/Computation.xtextbin      |  Bin 3656 -> 3494 bytes
 .../antlr/internal/InternalComputation.g      |   96 +-
 .../antlr/internal/InternalComputation.tokens |    4 +-
 .../internal/InternalComputationLexer.java    |  283 +-
 .../internal/InternalComputationParser.java   |  621 ++--
 .../ComputationSemanticSequencer.java         |   17 -
 .../services/ComputationGrammarAccess.java    |   77 +-
 .../gecos/typeexploration/Computation.xtext   |    7 +-
 14 files changed, 1453 insertions(+), 2962 deletions(-)

diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/ComputationParser.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/ComputationParser.java
index 3ef8df0..e82aa17 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/ComputationParser.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/ComputationParser.java
@@ -42,8 +42,6 @@ public class ComputationParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getOperationAccess().getGroup(), "rule__Operation__Group__0");
 			builder.put(grammarAccess.getMaxExpressionAccess().getGroup(), "rule__MaxExpression__Group__0");
 			builder.put(grammarAccess.getMaxExpressionAccess().getGroup_3(), "rule__MaxExpression__Group_3__0");
-			builder.put(grammarAccess.getSumExpressionAccess().getGroup(), "rule__SumExpression__Group__0");
-			builder.put(grammarAccess.getSumExpressionAccess().getGroup_3(), "rule__SumExpression__Group_3__0");
 			builder.put(grammarAccess.getAddExpressionAccess().getGroup(), "rule__AddExpression__Group__0");
 			builder.put(grammarAccess.getOperandTermAccess().getGroup(), "rule__OperandTerm__Group__0");
 			builder.put(grammarAccess.getSummationExpressionAccess().getGroup_0(), "rule__SummationExpression__Group_0__0");
@@ -69,8 +67,6 @@ public class ComputationParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getOperationAccess().getNumOpsAssignment_8(), "rule__Operation__NumOpsAssignment_8");
 			builder.put(grammarAccess.getMaxExpressionAccess().getExprsAssignment_2(), "rule__MaxExpression__ExprsAssignment_2");
 			builder.put(grammarAccess.getMaxExpressionAccess().getExprsAssignment_3_1(), "rule__MaxExpression__ExprsAssignment_3_1");
-			builder.put(grammarAccess.getSumExpressionAccess().getExprsAssignment_2(), "rule__SumExpression__ExprsAssignment_2");
-			builder.put(grammarAccess.getSumExpressionAccess().getExprsAssignment_3_1(), "rule__SumExpression__ExprsAssignment_3_1");
 			builder.put(grammarAccess.getAddExpressionAccess().getOp1Assignment_1(), "rule__AddExpression__Op1Assignment_1");
 			builder.put(grammarAccess.getAddExpressionAccess().getOp2Assignment_3(), "rule__AddExpression__Op2Assignment_3");
 			builder.put(grammarAccess.getOperandTermAccess().getCoefAssignment_0(), "rule__OperandTerm__CoefAssignment_0");
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputation.g b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputation.g
index 27afa2b..1a1d75d 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputation.g
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputation.g
@@ -249,31 +249,6 @@ finally {
 	restoreStackSize(stackSize);
 }
 
-// Entry rule entryRuleSumExpression
-entryRuleSumExpression
-:
-{ before(grammarAccess.getSumExpressionRule()); }
-	 ruleSumExpression
-{ after(grammarAccess.getSumExpressionRule()); } 
-	 EOF 
-;
-
-// Rule SumExpression
-ruleSumExpression 
-	@init {
-		int stackSize = keepStackSize();
-	}
-	:
-	(
-		{ before(grammarAccess.getSumExpressionAccess().getGroup()); }
-		(rule__SumExpression__Group__0)
-		{ after(grammarAccess.getSumExpressionAccess().getGroup()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
 // Entry rule entryRuleTerminalOperandExpression
 entryRuleTerminalOperandExpression
 :
@@ -426,21 +401,15 @@ rule__OperandExpression__Alternatives
 	}
 :
 	(
-		{ before(grammarAccess.getOperandExpressionAccess().getSumExpressionParserRuleCall_0()); }
-		ruleSumExpression
-		{ after(grammarAccess.getOperandExpressionAccess().getSumExpressionParserRuleCall_0()); }
-	)
-	|
-	(
-		{ before(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_1()); }
+		{ before(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_0()); }
 		ruleMaxExpression
-		{ after(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_1()); }
+		{ after(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_0()); }
 	)
 	|
 	(
-		{ before(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_2()); }
+		{ before(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_1()); }
 		ruleTerminalOperandExpression
-		{ after(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_2()); }
+		{ after(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_1()); }
 	)
 ;
 finally {
@@ -1644,202 +1613,6 @@ finally {
 }
 
 
-rule__SumExpression__Group__0
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__SumExpression__Group__0__Impl
-	rule__SumExpression__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SumExpression__Group__0__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getSumExpressionAccess().getSumKeyword_0()); }
-	'sum'
-	{ after(grammarAccess.getSumExpressionAccess().getSumKeyword_0()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SumExpression__Group__1
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__SumExpression__Group__1__Impl
-	rule__SumExpression__Group__2
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SumExpression__Group__1__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getSumExpressionAccess().getLeftParenthesisKeyword_1()); }
-	'('
-	{ after(grammarAccess.getSumExpressionAccess().getLeftParenthesisKeyword_1()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SumExpression__Group__2
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__SumExpression__Group__2__Impl
-	rule__SumExpression__Group__3
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SumExpression__Group__2__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getSumExpressionAccess().getExprsAssignment_2()); }
-	(rule__SumExpression__ExprsAssignment_2)
-	{ after(grammarAccess.getSumExpressionAccess().getExprsAssignment_2()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SumExpression__Group__3
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__SumExpression__Group__3__Impl
-	rule__SumExpression__Group__4
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SumExpression__Group__3__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	(
-		{ before(grammarAccess.getSumExpressionAccess().getGroup_3()); }
-		(rule__SumExpression__Group_3__0)
-		{ after(grammarAccess.getSumExpressionAccess().getGroup_3()); }
-	)
-	(
-		{ before(grammarAccess.getSumExpressionAccess().getGroup_3()); }
-		(rule__SumExpression__Group_3__0)*
-		{ after(grammarAccess.getSumExpressionAccess().getGroup_3()); }
-	)
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SumExpression__Group__4
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__SumExpression__Group__4__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SumExpression__Group__4__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getSumExpressionAccess().getRightParenthesisKeyword_4()); }
-	')'
-	{ after(grammarAccess.getSumExpressionAccess().getRightParenthesisKeyword_4()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__SumExpression__Group_3__0
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__SumExpression__Group_3__0__Impl
-	rule__SumExpression__Group_3__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SumExpression__Group_3__0__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getSumExpressionAccess().getCommaKeyword_3_0()); }
-	','
-	{ after(grammarAccess.getSumExpressionAccess().getCommaKeyword_3_0()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SumExpression__Group_3__1
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__SumExpression__Group_3__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SumExpression__Group_3__1__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getSumExpressionAccess().getExprsAssignment_3_1()); }
-	(rule__SumExpression__ExprsAssignment_3_1)
-	{ after(grammarAccess.getSumExpressionAccess().getExprsAssignment_3_1()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
 rule__AddExpression__Group__0
 	@init {
 		int stackSize = keepStackSize();
@@ -2608,36 +2381,6 @@ finally {
 	restoreStackSize(stackSize);
 }
 
-rule__SumExpression__ExprsAssignment_2
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	(
-		{ before(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_2_0()); }
-		ruleTerminalOperandExpression
-		{ after(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_2_0()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__SumExpression__ExprsAssignment_3_1
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	(
-		{ before(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_3_1_0()); }
-		ruleTerminalOperandExpression
-		{ after(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_3_1_0()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
 rule__AddExpression__Op1Assignment_1
 	@init {
 		int stackSize = keepStackSize();
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputation.tokens b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputation.tokens
index 154d386..cc724ad 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputation.tokens
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputation.tokens
@@ -1,6 +1,6 @@
 '('=27
 ')'=28
-'+'=31
+'+'=30
 ','=29
 ':'=23
 ';'=15
@@ -14,7 +14,6 @@
 'outputsPerCycle'=19
 'param'=13
 'problemSize'=20
-'sum'=30
 'target'=16
 'x'=25
 '{'=17
@@ -46,4 +45,3 @@ T__27=27
 T__28=28
 T__29=29
 T__30=30
-T__31=31
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputationLexer.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputationLexer.java
index 12726a2..2eb7ee6 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputationLexer.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputationLexer.java
@@ -25,7 +25,6 @@ public class InternalComputationLexer extends Lexer {
     public static final int T__14=14;
     public static final int EOF=-1;
     public static final int T__30=30;
-    public static final int T__31=31;
     public static final int RULE_ID=4;
     public static final int RULE_WS=9;
     public static final int RULE_ANY_OTHER=10;
@@ -450,29 +449,8 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = T__30;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:30:7: ( 'sum' )
-            // InternalComputation.g:30:9: 'sum'
-            {
-            match("sum"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__30"
-
-    // $ANTLR start "T__31"
-    public final void mT__31() throws RecognitionException {
-        try {
-            int _type = T__31;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:31:7: ( '+' )
-            // InternalComputation.g:31:9: '+'
+            // InternalComputation.g:30:7: ( '+' )
+            // InternalComputation.g:30:9: '+'
             {
             match('+'); 
 
@@ -484,17 +462,17 @@ public class InternalComputationLexer extends Lexer {
         finally {
         }
     }
-    // $ANTLR end "T__31"
+    // $ANTLR end "T__30"
 
     // $ANTLR start "RULE_ID"
     public final void mRULE_ID() throws RecognitionException {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:2814:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // InternalComputation.g:2814:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalComputation.g:2557:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalComputation.g:2557:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // InternalComputation.g:2814:11: ( '^' )?
+            // InternalComputation.g:2557:11: ( '^' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -503,7 +481,7 @@ public class InternalComputationLexer extends Lexer {
             }
             switch (alt1) {
                 case 1 :
-                    // InternalComputation.g:2814:11: '^'
+                    // InternalComputation.g:2557:11: '^'
                     {
                     match('^'); 
 
@@ -521,7 +499,7 @@ public class InternalComputationLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // InternalComputation.g:2814:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalComputation.g:2557:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop2:
             do {
                 int alt2=2;
@@ -570,10 +548,10 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:2816:10: ( ( '0' .. '9' )+ )
-            // InternalComputation.g:2816:12: ( '0' .. '9' )+
+            // InternalComputation.g:2559:10: ( ( '0' .. '9' )+ )
+            // InternalComputation.g:2559:12: ( '0' .. '9' )+
             {
-            // InternalComputation.g:2816:12: ( '0' .. '9' )+
+            // InternalComputation.g:2559:12: ( '0' .. '9' )+
             int cnt3=0;
             loop3:
             do {
@@ -587,7 +565,7 @@ public class InternalComputationLexer extends Lexer {
 
                 switch (alt3) {
             	case 1 :
-            	    // InternalComputation.g:2816:13: '0' .. '9'
+            	    // InternalComputation.g:2559:13: '0' .. '9'
             	    {
             	    matchRange('0','9'); 
 
@@ -619,10 +597,10 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:2818:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
-            // InternalComputation.g:2818:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalComputation.g:2561:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+            // InternalComputation.g:2561:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
             {
-            // InternalComputation.g:2818:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalComputation.g:2561:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
             int alt6=2;
             int LA6_0 = input.LA(1);
 
@@ -640,10 +618,10 @@ public class InternalComputationLexer extends Lexer {
             }
             switch (alt6) {
                 case 1 :
-                    // InternalComputation.g:2818:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+                    // InternalComputation.g:2561:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
                     {
                     match('\"'); 
-                    // InternalComputation.g:2818:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // InternalComputation.g:2561:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop4:
                     do {
                         int alt4=3;
@@ -659,7 +637,7 @@ public class InternalComputationLexer extends Lexer {
 
                         switch (alt4) {
                     	case 1 :
-                    	    // InternalComputation.g:2818:21: '\\\\' .
+                    	    // InternalComputation.g:2561:21: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -667,7 +645,7 @@ public class InternalComputationLexer extends Lexer {
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalComputation.g:2818:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    // InternalComputation.g:2561:28: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -692,10 +670,10 @@ public class InternalComputationLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // InternalComputation.g:2818:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+                    // InternalComputation.g:2561:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
                     {
                     match('\''); 
-                    // InternalComputation.g:2818:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // InternalComputation.g:2561:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop5:
                     do {
                         int alt5=3;
@@ -711,7 +689,7 @@ public class InternalComputationLexer extends Lexer {
 
                         switch (alt5) {
                     	case 1 :
-                    	    // InternalComputation.g:2818:54: '\\\\' .
+                    	    // InternalComputation.g:2561:54: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -719,7 +697,7 @@ public class InternalComputationLexer extends Lexer {
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalComputation.g:2818:61: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // InternalComputation.g:2561:61: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -762,12 +740,12 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:2820:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalComputation.g:2820:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalComputation.g:2563:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalComputation.g:2563:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalComputation.g:2820:24: ( options {greedy=false; } : . )*
+            // InternalComputation.g:2563:24: ( options {greedy=false; } : . )*
             loop7:
             do {
                 int alt7=2;
@@ -792,7 +770,7 @@ public class InternalComputationLexer extends Lexer {
 
                 switch (alt7) {
             	case 1 :
-            	    // InternalComputation.g:2820:52: .
+            	    // InternalComputation.g:2563:52: .
             	    {
             	    matchAny(); 
 
@@ -822,12 +800,12 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:2822:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalComputation.g:2822:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalComputation.g:2565:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalComputation.g:2565:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalComputation.g:2822:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalComputation.g:2565:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop8:
             do {
                 int alt8=2;
@@ -840,7 +818,7 @@ public class InternalComputationLexer extends Lexer {
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalComputation.g:2822:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalComputation.g:2565:24: ~ ( ( '\\n' | '\\r' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -860,7 +838,7 @@ public class InternalComputationLexer extends Lexer {
                 }
             } while (true);
 
-            // InternalComputation.g:2822:40: ( ( '\\r' )? '\\n' )?
+            // InternalComputation.g:2565:40: ( ( '\\r' )? '\\n' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -869,9 +847,9 @@ public class InternalComputationLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // InternalComputation.g:2822:41: ( '\\r' )? '\\n'
+                    // InternalComputation.g:2565:41: ( '\\r' )? '\\n'
                     {
-                    // InternalComputation.g:2822:41: ( '\\r' )?
+                    // InternalComputation.g:2565:41: ( '\\r' )?
                     int alt9=2;
                     int LA9_0 = input.LA(1);
 
@@ -880,7 +858,7 @@ public class InternalComputationLexer extends Lexer {
                     }
                     switch (alt9) {
                         case 1 :
-                            // InternalComputation.g:2822:41: '\\r'
+                            // InternalComputation.g:2565:41: '\\r'
                             {
                             match('\r'); 
 
@@ -912,10 +890,10 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:2824:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalComputation.g:2824:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalComputation.g:2567:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalComputation.g:2567:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalComputation.g:2824:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalComputation.g:2567:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt11=0;
             loop11:
             do {
@@ -969,8 +947,8 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:2826:16: ( . )
-            // InternalComputation.g:2826:18: .
+            // InternalComputation.g:2569:16: ( . )
+            // InternalComputation.g:2569:18: .
             {
             matchAny(); 
 
@@ -985,8 +963,8 @@ public class InternalComputationLexer extends Lexer {
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalComputation.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt12=28;
+        // InternalComputation.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt12=27;
         alt12 = dfa12.predict(input);
         switch (alt12) {
             case 1 :
@@ -1130,56 +1108,49 @@ public class InternalComputationLexer extends Lexer {
                 }
                 break;
             case 21 :
-                // InternalComputation.g:1:130: T__31
-                {
-                mT__31(); 
-
-                }
-                break;
-            case 22 :
-                // InternalComputation.g:1:136: RULE_ID
+                // InternalComputation.g:1:130: RULE_ID
                 {
                 mRULE_ID(); 
 
                 }
                 break;
-            case 23 :
-                // InternalComputation.g:1:144: RULE_INT
+            case 22 :
+                // InternalComputation.g:1:138: RULE_INT
                 {
                 mRULE_INT(); 
 
                 }
                 break;
-            case 24 :
-                // InternalComputation.g:1:153: RULE_STRING
+            case 23 :
+                // InternalComputation.g:1:147: RULE_STRING
                 {
                 mRULE_STRING(); 
 
                 }
                 break;
-            case 25 :
-                // InternalComputation.g:1:165: RULE_ML_COMMENT
+            case 24 :
+                // InternalComputation.g:1:159: RULE_ML_COMMENT
                 {
                 mRULE_ML_COMMENT(); 
 
                 }
                 break;
-            case 26 :
-                // InternalComputation.g:1:181: RULE_SL_COMMENT
+            case 25 :
+                // InternalComputation.g:1:175: RULE_SL_COMMENT
                 {
                 mRULE_SL_COMMENT(); 
 
                 }
                 break;
-            case 27 :
-                // InternalComputation.g:1:197: RULE_WS
+            case 26 :
+                // InternalComputation.g:1:191: RULE_WS
                 {
                 mRULE_WS(); 
 
                 }
                 break;
-            case 28 :
-                // InternalComputation.g:1:205: RULE_ANY_OTHER
+            case 27 :
+                // InternalComputation.g:1:199: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -1193,126 +1164,122 @@ public class InternalComputationLexer extends Lexer {
 
     protected DFA12 dfa12 = new DFA12(this);
     static final String DFA12_eotS =
-        "\1\uffff\3\35\2\uffff\1\35\1\uffff\2\35\1\uffff\1\35\1\uffff\1\53\1\35\3\uffff\1\35\1\uffff\1\33\2\uffff\3\33\2\uffff\1\35\1\uffff\3\35\2\uffff\1\35\1\uffff\2\35\1\76\1\uffff\1\35\2\uffff\1\35\3\uffff\1\35\6\uffff\1\102\1\103\5\35\1\uffff\1\35\1\112\1\113\2\uffff\6\35\2\uffff\1\122\4\35\1\127\1\uffff\1\35\1\131\2\35\1\uffff\1\35\1\uffff\6\35\1\143\2\35\1\uffff\1\35\1\147\1\35\1\uffff\3\35\1\154\1\uffff";
+        "\1\uffff\3\34\2\uffff\1\34\1\uffff\2\34\1\uffff\1\34\1\uffff\1\52\1\34\4\uffff\1\32\2\uffff\3\32\2\uffff\1\34\1\uffff\3\34\2\uffff\1\34\1\uffff\2\34\1\74\1\uffff\1\34\2\uffff\1\34\11\uffff\1\77\1\100\5\34\1\uffff\1\34\1\107\2\uffff\6\34\1\uffff\1\116\4\34\1\123\1\uffff\1\34\1\125\2\34\1\uffff\1\34\1\uffff\6\34\1\137\2\34\1\uffff\1\34\1\143\1\34\1\uffff\3\34\1\150\1\uffff";
     static final String DFA12_eofS =
-        "\155\uffff";
+        "\151\uffff";
     static final String DFA12_minS =
-        "\1\0\1\104\1\125\1\141\2\uffff\1\141\1\uffff\1\162\1\160\1\uffff\1\154\1\uffff\1\60\1\141\3\uffff\1\165\1\uffff\1\101\2\uffff\2\0\1\52\2\uffff\1\104\1\uffff\1\114\1\162\1\157\2\uffff\1\162\1\uffff\1\145\1\164\1\60\1\uffff\1\157\2\uffff\1\170\3\uffff\1\155\6\uffff\2\60\1\141\1\142\1\147\1\161\1\160\1\uffff\1\143\2\60\2\uffff\1\155\1\154\1\145\2\165\1\153\2\uffff\1\60\1\145\1\164\1\145\1\164\1\60\1\uffff\1\155\1\60\1\156\1\163\1\uffff\1\123\1\uffff\1\143\1\120\1\151\1\171\1\145\1\172\1\60\1\162\1\145\1\uffff\1\103\1\60\1\171\1\uffff\1\143\1\154\1\145\1\60\1\uffff";
+        "\1\0\1\104\1\125\1\141\2\uffff\1\141\1\uffff\1\162\1\160\1\uffff\1\154\1\uffff\1\60\1\141\4\uffff\1\101\2\uffff\2\0\1\52\2\uffff\1\104\1\uffff\1\114\1\162\1\157\2\uffff\1\162\1\uffff\1\145\1\164\1\60\1\uffff\1\157\2\uffff\1\170\11\uffff\2\60\1\141\1\142\1\147\1\161\1\160\1\uffff\1\143\1\60\2\uffff\1\155\1\154\1\145\2\165\1\153\1\uffff\1\60\1\145\1\164\1\145\1\164\1\60\1\uffff\1\155\1\60\1\156\1\163\1\uffff\1\123\1\uffff\1\143\1\120\1\151\1\171\1\145\1\172\1\60\1\162\1\145\1\uffff\1\103\1\60\1\171\1\uffff\1\143\1\154\1\145\1\60\1\uffff";
     static final String DFA12_maxS =
-        "\1\uffff\1\104\1\125\1\162\2\uffff\1\141\1\uffff\1\162\1\165\1\uffff\1\154\1\uffff\1\172\1\141\3\uffff\1\165\1\uffff\1\172\2\uffff\2\uffff\1\57\2\uffff\1\104\1\uffff\1\114\1\162\1\157\2\uffff\1\162\1\uffff\1\145\1\164\1\172\1\uffff\1\157\2\uffff\1\170\3\uffff\1\155\6\uffff\2\172\1\141\1\142\1\147\1\161\1\160\1\uffff\1\143\2\172\2\uffff\1\155\1\154\1\145\2\165\1\153\2\uffff\1\172\1\145\1\164\1\145\1\164\1\172\1\uffff\1\155\1\172\1\156\1\163\1\uffff\1\123\1\uffff\1\143\1\120\1\151\1\171\1\145\2\172\1\162\1\145\1\uffff\1\103\1\172\1\171\1\uffff\1\143\1\154\1\145\1\172\1\uffff";
+        "\1\uffff\1\104\1\125\1\162\2\uffff\1\141\1\uffff\1\162\1\165\1\uffff\1\154\1\uffff\1\172\1\141\4\uffff\1\172\2\uffff\2\uffff\1\57\2\uffff\1\104\1\uffff\1\114\1\162\1\157\2\uffff\1\162\1\uffff\1\145\1\164\1\172\1\uffff\1\157\2\uffff\1\170\11\uffff\2\172\1\141\1\142\1\147\1\161\1\160\1\uffff\1\143\1\172\2\uffff\1\155\1\154\1\145\2\165\1\153\1\uffff\1\172\1\145\1\164\1\145\1\164\1\172\1\uffff\1\155\1\172\1\156\1\163\1\uffff\1\123\1\uffff\1\143\1\120\1\151\1\171\1\145\2\172\1\162\1\145\1\uffff\1\103\1\172\1\171\1\uffff\1\143\1\154\1\145\1\172\1\uffff";
     static final String DFA12_acceptS =
-        "\4\uffff\1\4\1\5\1\uffff\1\7\2\uffff\1\13\1\uffff\1\15\2\uffff\1\21\1\22\1\23\1\uffff\1\25\1\uffff\1\26\1\27\3\uffff\1\33\1\34\1\uffff\1\26\3\uffff\1\4\1\5\1\uffff\1\7\3\uffff\1\13\1\uffff\1\15\1\17\1\uffff\1\21\1\22\1\23\1\uffff\1\25\1\27\1\30\1\31\1\32\1\33\7\uffff\1\16\3\uffff\1\1\1\2\6\uffff\1\20\1\24\6\uffff\1\3\4\uffff\1\14\1\uffff\1\6\11\uffff\1\10\3\uffff\1\12\4\uffff\1\11";
+        "\4\uffff\1\4\1\5\1\uffff\1\7\2\uffff\1\13\1\uffff\1\15\2\uffff\1\21\1\22\1\23\1\24\1\uffff\1\25\1\26\3\uffff\1\32\1\33\1\uffff\1\25\3\uffff\1\4\1\5\1\uffff\1\7\3\uffff\1\13\1\uffff\1\15\1\17\1\uffff\1\21\1\22\1\23\1\24\1\26\1\27\1\30\1\31\1\32\7\uffff\1\16\2\uffff\1\1\1\2\6\uffff\1\20\6\uffff\1\3\4\uffff\1\14\1\uffff\1\6\11\uffff\1\10\3\uffff\1\12\4\uffff\1\11";
     static final String DFA12_specialS =
-        "\1\1\26\uffff\1\2\1\0\124\uffff}>";
+        "\1\2\25\uffff\1\1\1\0\121\uffff}>";
     static final String[] DFA12_transitionS = {
-            "\11\33\2\32\2\33\1\32\22\33\1\32\1\33\1\27\4\33\1\30\1\17\1\20\1\33\1\23\1\21\2\33\1\31\12\26\1\14\1\5\1\33\1\4\3\33\1\1\13\25\1\2\15\25\3\33\1\24\1\25\1\33\1\25\1\13\3\25\1\10\6\25\1\16\1\25\1\11\1\3\2\25\1\22\1\6\3\25\1\15\2\25\1\7\1\33\1\12\uff82\33",
-            "\1\34",
-            "\1\36",
-            "\1\37\20\uffff\1\40",
+            "\11\32\2\31\2\32\1\31\22\32\1\31\1\32\1\26\4\32\1\27\1\17\1\20\1\32\1\22\1\21\2\32\1\30\12\25\1\14\1\5\1\32\1\4\3\32\1\1\13\24\1\2\15\24\3\32\1\23\1\24\1\32\1\24\1\13\3\24\1\10\6\24\1\16\1\24\1\11\1\3\3\24\1\6\3\24\1\15\2\24\1\7\1\32\1\12\uff82\32",
+            "\1\33",
+            "\1\35",
+            "\1\36\20\uffff\1\37",
             "",
             "",
-            "\1\43",
+            "\1\42",
             "",
-            "\1\45",
-            "\1\47\4\uffff\1\46",
+            "\1\44",
+            "\1\46\4\uffff\1\45",
             "",
-            "\1\51",
+            "\1\50",
             "",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
-            "\1\54",
+            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
+            "\1\53",
             "",
             "",
             "",
-            "\1\60",
             "",
-            "\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\32\34\4\uffff\1\34\1\uffff\32\34",
             "",
             "",
-            "\0\63",
-            "\0\63",
-            "\1\64\4\uffff\1\65",
+            "\0\61",
+            "\0\61",
+            "\1\62\4\uffff\1\63",
             "",
             "",
-            "\1\67",
+            "\1\65",
             "",
+            "\1\66",
+            "\1\67",
             "\1\70",
-            "\1\71",
-            "\1\72",
             "",
             "",
+            "\1\71",
+            "",
+            "\1\72",
             "\1\73",
+            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
             "",
-            "\1\74",
             "\1\75",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
             "",
-            "\1\77",
             "",
+            "\1\76",
             "",
-            "\1\100",
             "",
             "",
             "",
-            "\1\101",
             "",
             "",
             "",
             "",
             "",
-            "",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
+            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
+            "\1\101",
+            "\1\102",
+            "\1\103",
             "\1\104",
             "\1\105",
-            "\1\106",
-            "\1\107",
-            "\1\110",
             "",
-            "\1\111",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\1\106",
+            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
             "",
             "",
+            "\1\110",
+            "\1\111",
+            "\1\112",
+            "\1\113",
             "\1\114",
             "\1\115",
-            "\1\116",
+            "",
+            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
             "\1\117",
             "\1\120",
             "\1\121",
+            "\1\122",
+            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
             "",
-            "",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
-            "\1\123",
             "\1\124",
-            "\1\125",
+            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
             "\1\126",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\1\127",
             "",
             "\1\130",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "",
+            "\1\131",
             "\1\132",
             "\1\133",
-            "",
             "\1\134",
-            "",
             "\1\135",
             "\1\136",
-            "\1\137",
+            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
             "\1\140",
             "\1\141",
+            "",
             "\1\142",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
             "\1\144",
-            "\1\145",
             "",
+            "\1\145",
             "\1\146",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
-            "\1\150",
-            "",
-            "\1\151",
-            "\1\152",
-            "\1\153",
-            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\1\147",
+            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
             ""
     };
 
@@ -1346,23 +1313,33 @@ public class InternalComputationLexer extends Lexer {
             this.transition = DFA12_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA12_24 = input.LA(1);
+                        int LA12_23 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA12_24>='\u0000' && LA12_24<='\uFFFF')) ) {s = 51;}
+                        if ( ((LA12_23>='\u0000' && LA12_23<='\uFFFF')) ) {s = 49;}
 
-                        else s = 27;
+                        else s = 26;
 
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
+                        int LA12_22 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_22>='\u0000' && LA12_22<='\uFFFF')) ) {s = 49;}
+
+                        else s = 26;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
                         int LA12_0 = input.LA(1);
 
                         s = -1;
@@ -1400,35 +1377,23 @@ public class InternalComputationLexer extends Lexer {
 
                         else if ( (LA12_0==',') ) {s = 17;}
 
-                        else if ( (LA12_0=='s') ) {s = 18;}
+                        else if ( (LA12_0=='+') ) {s = 18;}
 
-                        else if ( (LA12_0=='+') ) {s = 19;}
+                        else if ( (LA12_0=='^') ) {s = 19;}
 
-                        else if ( (LA12_0=='^') ) {s = 20;}
+                        else if ( ((LA12_0>='B' && LA12_0<='L')||(LA12_0>='N' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='a'||(LA12_0>='c' && LA12_0<='e')||(LA12_0>='g' && LA12_0<='l')||LA12_0=='n'||(LA12_0>='q' && LA12_0<='s')||(LA12_0>='u' && LA12_0<='w')||(LA12_0>='y' && LA12_0<='z')) ) {s = 20;}
 
-                        else if ( ((LA12_0>='B' && LA12_0<='L')||(LA12_0>='N' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='a'||(LA12_0>='c' && LA12_0<='e')||(LA12_0>='g' && LA12_0<='l')||LA12_0=='n'||(LA12_0>='q' && LA12_0<='r')||(LA12_0>='u' && LA12_0<='w')||(LA12_0>='y' && LA12_0<='z')) ) {s = 21;}
+                        else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 21;}
 
-                        else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 22;}
+                        else if ( (LA12_0=='\"') ) {s = 22;}
 
-                        else if ( (LA12_0=='\"') ) {s = 23;}
+                        else if ( (LA12_0=='\'') ) {s = 23;}
 
-                        else if ( (LA12_0=='\'') ) {s = 24;}
+                        else if ( (LA12_0=='/') ) {s = 24;}
 
-                        else if ( (LA12_0=='/') ) {s = 25;}
-
-                        else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 26;}
-
-                        else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||LA12_0=='*'||(LA12_0>='-' && LA12_0<='.')||LA12_0=='<'||(LA12_0>='>' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 27;}
-
-                        if ( s>=0 ) return s;
-                        break;
-                    case 2 : 
-                        int LA12_23 = input.LA(1);
-
-                        s = -1;
-                        if ( ((LA12_23>='\u0000' && LA12_23<='\uFFFF')) ) {s = 51;}
+                        else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 25;}
 
-                        else s = 27;
+                        else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||LA12_0=='*'||(LA12_0>='-' && LA12_0<='.')||LA12_0=='<'||(LA12_0>='>' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 26;}
 
                         if ( s>=0 ) return s;
                         break;
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputationParser.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputationParser.java
index f3a6987..7bde495 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputationParser.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ide/src-gen/fr/irisa/cairn/gecos/typeexploration/ide/contentassist/antlr/internal/InternalComputationParser.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
 @SuppressWarnings("all")
 public class InternalComputationParser extends AbstractInternalContentAssistParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'ADD'", "'MUL'", "'param'", "'='", "';'", "'target'", "'{'", "'frequency'", "'outputsPerCycle'", "'problemSize'", "'}'", "'block'", "':'", "'op'", "'x'", "'max'", "'('", "')'", "','", "'sum'", "'+'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'ADD'", "'MUL'", "'param'", "'='", "';'", "'target'", "'{'", "'frequency'", "'outputsPerCycle'", "'problemSize'", "'}'", "'block'", "':'", "'op'", "'x'", "'max'", "'('", "')'", "','", "'+'"
     };
     public static final int RULE_STRING=6;
     public static final int RULE_SL_COMMENT=8;
@@ -37,7 +37,6 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
     public static final int T__14=14;
     public static final int EOF=-1;
     public static final int T__30=30;
-    public static final int T__31=31;
     public static final int RULE_ID=4;
     public static final int RULE_WS=9;
     public static final int RULE_ANY_OTHER=10;
@@ -705,89 +704,12 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
     // $ANTLR end "ruleMaxExpression"
 
 
-    // $ANTLR start "entryRuleSumExpression"
-    // InternalComputation.g:253:1: entryRuleSumExpression : ruleSumExpression EOF ;
-    public final void entryRuleSumExpression() throws RecognitionException {
-        try {
-            // InternalComputation.g:254:1: ( ruleSumExpression EOF )
-            // InternalComputation.g:255:1: ruleSumExpression EOF
-            {
-             before(grammarAccess.getSumExpressionRule()); 
-            pushFollow(FOLLOW_1);
-            ruleSumExpression();
-
-            state._fsp--;
-
-             after(grammarAccess.getSumExpressionRule()); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleSumExpression"
-
-
-    // $ANTLR start "ruleSumExpression"
-    // InternalComputation.g:262:1: ruleSumExpression : ( ( rule__SumExpression__Group__0 ) ) ;
-    public final void ruleSumExpression() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalComputation.g:266:2: ( ( ( rule__SumExpression__Group__0 ) ) )
-            // InternalComputation.g:267:2: ( ( rule__SumExpression__Group__0 ) )
-            {
-            // InternalComputation.g:267:2: ( ( rule__SumExpression__Group__0 ) )
-            // InternalComputation.g:268:3: ( rule__SumExpression__Group__0 )
-            {
-             before(grammarAccess.getSumExpressionAccess().getGroup()); 
-            // InternalComputation.g:269:3: ( rule__SumExpression__Group__0 )
-            // InternalComputation.g:269:4: rule__SumExpression__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__SumExpression__Group__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getSumExpressionAccess().getGroup()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleSumExpression"
-
-
     // $ANTLR start "entryRuleTerminalOperandExpression"
-    // InternalComputation.g:278:1: entryRuleTerminalOperandExpression : ruleTerminalOperandExpression EOF ;
+    // InternalComputation.g:253:1: entryRuleTerminalOperandExpression : ruleTerminalOperandExpression EOF ;
     public final void entryRuleTerminalOperandExpression() throws RecognitionException {
         try {
-            // InternalComputation.g:279:1: ( ruleTerminalOperandExpression EOF )
-            // InternalComputation.g:280:1: ruleTerminalOperandExpression EOF
+            // InternalComputation.g:254:1: ( ruleTerminalOperandExpression EOF )
+            // InternalComputation.g:255:1: ruleTerminalOperandExpression EOF
             {
              before(grammarAccess.getTerminalOperandExpressionRule()); 
             pushFollow(FOLLOW_1);
@@ -813,21 +735,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "ruleTerminalOperandExpression"
-    // InternalComputation.g:287:1: ruleTerminalOperandExpression : ( ( rule__TerminalOperandExpression__Alternatives ) ) ;
+    // InternalComputation.g:262:1: ruleTerminalOperandExpression : ( ( rule__TerminalOperandExpression__Alternatives ) ) ;
     public final void ruleTerminalOperandExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:291:2: ( ( ( rule__TerminalOperandExpression__Alternatives ) ) )
-            // InternalComputation.g:292:2: ( ( rule__TerminalOperandExpression__Alternatives ) )
+            // InternalComputation.g:266:2: ( ( ( rule__TerminalOperandExpression__Alternatives ) ) )
+            // InternalComputation.g:267:2: ( ( rule__TerminalOperandExpression__Alternatives ) )
             {
-            // InternalComputation.g:292:2: ( ( rule__TerminalOperandExpression__Alternatives ) )
-            // InternalComputation.g:293:3: ( rule__TerminalOperandExpression__Alternatives )
+            // InternalComputation.g:267:2: ( ( rule__TerminalOperandExpression__Alternatives ) )
+            // InternalComputation.g:268:3: ( rule__TerminalOperandExpression__Alternatives )
             {
              before(grammarAccess.getTerminalOperandExpressionAccess().getAlternatives()); 
-            // InternalComputation.g:294:3: ( rule__TerminalOperandExpression__Alternatives )
-            // InternalComputation.g:294:4: rule__TerminalOperandExpression__Alternatives
+            // InternalComputation.g:269:3: ( rule__TerminalOperandExpression__Alternatives )
+            // InternalComputation.g:269:4: rule__TerminalOperandExpression__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__TerminalOperandExpression__Alternatives();
@@ -860,11 +782,11 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "entryRuleAddExpression"
-    // InternalComputation.g:303:1: entryRuleAddExpression : ruleAddExpression EOF ;
+    // InternalComputation.g:278:1: entryRuleAddExpression : ruleAddExpression EOF ;
     public final void entryRuleAddExpression() throws RecognitionException {
         try {
-            // InternalComputation.g:304:1: ( ruleAddExpression EOF )
-            // InternalComputation.g:305:1: ruleAddExpression EOF
+            // InternalComputation.g:279:1: ( ruleAddExpression EOF )
+            // InternalComputation.g:280:1: ruleAddExpression EOF
             {
              before(grammarAccess.getAddExpressionRule()); 
             pushFollow(FOLLOW_1);
@@ -890,21 +812,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "ruleAddExpression"
-    // InternalComputation.g:312:1: ruleAddExpression : ( ( rule__AddExpression__Group__0 ) ) ;
+    // InternalComputation.g:287:1: ruleAddExpression : ( ( rule__AddExpression__Group__0 ) ) ;
     public final void ruleAddExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:316:2: ( ( ( rule__AddExpression__Group__0 ) ) )
-            // InternalComputation.g:317:2: ( ( rule__AddExpression__Group__0 ) )
+            // InternalComputation.g:291:2: ( ( ( rule__AddExpression__Group__0 ) ) )
+            // InternalComputation.g:292:2: ( ( rule__AddExpression__Group__0 ) )
             {
-            // InternalComputation.g:317:2: ( ( rule__AddExpression__Group__0 ) )
-            // InternalComputation.g:318:3: ( rule__AddExpression__Group__0 )
+            // InternalComputation.g:292:2: ( ( rule__AddExpression__Group__0 ) )
+            // InternalComputation.g:293:3: ( rule__AddExpression__Group__0 )
             {
              before(grammarAccess.getAddExpressionAccess().getGroup()); 
-            // InternalComputation.g:319:3: ( rule__AddExpression__Group__0 )
-            // InternalComputation.g:319:4: rule__AddExpression__Group__0
+            // InternalComputation.g:294:3: ( rule__AddExpression__Group__0 )
+            // InternalComputation.g:294:4: rule__AddExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__AddExpression__Group__0();
@@ -937,11 +859,11 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "entryRuleOperandTerm"
-    // InternalComputation.g:328:1: entryRuleOperandTerm : ruleOperandTerm EOF ;
+    // InternalComputation.g:303:1: entryRuleOperandTerm : ruleOperandTerm EOF ;
     public final void entryRuleOperandTerm() throws RecognitionException {
         try {
-            // InternalComputation.g:329:1: ( ruleOperandTerm EOF )
-            // InternalComputation.g:330:1: ruleOperandTerm EOF
+            // InternalComputation.g:304:1: ( ruleOperandTerm EOF )
+            // InternalComputation.g:305:1: ruleOperandTerm EOF
             {
              before(grammarAccess.getOperandTermRule()); 
             pushFollow(FOLLOW_1);
@@ -967,21 +889,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "ruleOperandTerm"
-    // InternalComputation.g:337:1: ruleOperandTerm : ( ( rule__OperandTerm__Group__0 ) ) ;
+    // InternalComputation.g:312:1: ruleOperandTerm : ( ( rule__OperandTerm__Group__0 ) ) ;
     public final void ruleOperandTerm() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:341:2: ( ( ( rule__OperandTerm__Group__0 ) ) )
-            // InternalComputation.g:342:2: ( ( rule__OperandTerm__Group__0 ) )
+            // InternalComputation.g:316:2: ( ( ( rule__OperandTerm__Group__0 ) ) )
+            // InternalComputation.g:317:2: ( ( rule__OperandTerm__Group__0 ) )
             {
-            // InternalComputation.g:342:2: ( ( rule__OperandTerm__Group__0 ) )
-            // InternalComputation.g:343:3: ( rule__OperandTerm__Group__0 )
+            // InternalComputation.g:317:2: ( ( rule__OperandTerm__Group__0 ) )
+            // InternalComputation.g:318:3: ( rule__OperandTerm__Group__0 )
             {
              before(grammarAccess.getOperandTermAccess().getGroup()); 
-            // InternalComputation.g:344:3: ( rule__OperandTerm__Group__0 )
-            // InternalComputation.g:344:4: rule__OperandTerm__Group__0
+            // InternalComputation.g:319:3: ( rule__OperandTerm__Group__0 )
+            // InternalComputation.g:319:4: rule__OperandTerm__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__OperandTerm__Group__0();
@@ -1014,11 +936,11 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "entryRuleSummationExpression"
-    // InternalComputation.g:353:1: entryRuleSummationExpression : ruleSummationExpression EOF ;
+    // InternalComputation.g:328:1: entryRuleSummationExpression : ruleSummationExpression EOF ;
     public final void entryRuleSummationExpression() throws RecognitionException {
         try {
-            // InternalComputation.g:354:1: ( ruleSummationExpression EOF )
-            // InternalComputation.g:355:1: ruleSummationExpression EOF
+            // InternalComputation.g:329:1: ( ruleSummationExpression EOF )
+            // InternalComputation.g:330:1: ruleSummationExpression EOF
             {
              before(grammarAccess.getSummationExpressionRule()); 
             pushFollow(FOLLOW_1);
@@ -1044,21 +966,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "ruleSummationExpression"
-    // InternalComputation.g:362:1: ruleSummationExpression : ( ( rule__SummationExpression__Alternatives ) ) ;
+    // InternalComputation.g:337:1: ruleSummationExpression : ( ( rule__SummationExpression__Alternatives ) ) ;
     public final void ruleSummationExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:366:2: ( ( ( rule__SummationExpression__Alternatives ) ) )
-            // InternalComputation.g:367:2: ( ( rule__SummationExpression__Alternatives ) )
+            // InternalComputation.g:341:2: ( ( ( rule__SummationExpression__Alternatives ) ) )
+            // InternalComputation.g:342:2: ( ( rule__SummationExpression__Alternatives ) )
             {
-            // InternalComputation.g:367:2: ( ( rule__SummationExpression__Alternatives ) )
-            // InternalComputation.g:368:3: ( rule__SummationExpression__Alternatives )
+            // InternalComputation.g:342:2: ( ( rule__SummationExpression__Alternatives ) )
+            // InternalComputation.g:343:3: ( rule__SummationExpression__Alternatives )
             {
              before(grammarAccess.getSummationExpressionAccess().getAlternatives()); 
-            // InternalComputation.g:369:3: ( rule__SummationExpression__Alternatives )
-            // InternalComputation.g:369:4: rule__SummationExpression__Alternatives
+            // InternalComputation.g:344:3: ( rule__SummationExpression__Alternatives )
+            // InternalComputation.g:344:4: rule__SummationExpression__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__SummationExpression__Alternatives();
@@ -1091,11 +1013,11 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "entryRuleProductExpression"
-    // InternalComputation.g:378:1: entryRuleProductExpression : ruleProductExpression EOF ;
+    // InternalComputation.g:353:1: entryRuleProductExpression : ruleProductExpression EOF ;
     public final void entryRuleProductExpression() throws RecognitionException {
         try {
-            // InternalComputation.g:379:1: ( ruleProductExpression EOF )
-            // InternalComputation.g:380:1: ruleProductExpression EOF
+            // InternalComputation.g:354:1: ( ruleProductExpression EOF )
+            // InternalComputation.g:355:1: ruleProductExpression EOF
             {
              before(grammarAccess.getProductExpressionRule()); 
             pushFollow(FOLLOW_1);
@@ -1121,21 +1043,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "ruleProductExpression"
-    // InternalComputation.g:387:1: ruleProductExpression : ( ( rule__ProductExpression__Group__0 ) ) ;
+    // InternalComputation.g:362:1: ruleProductExpression : ( ( rule__ProductExpression__Group__0 ) ) ;
     public final void ruleProductExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:391:2: ( ( ( rule__ProductExpression__Group__0 ) ) )
-            // InternalComputation.g:392:2: ( ( rule__ProductExpression__Group__0 ) )
+            // InternalComputation.g:366:2: ( ( ( rule__ProductExpression__Group__0 ) ) )
+            // InternalComputation.g:367:2: ( ( rule__ProductExpression__Group__0 ) )
             {
-            // InternalComputation.g:392:2: ( ( rule__ProductExpression__Group__0 ) )
-            // InternalComputation.g:393:3: ( rule__ProductExpression__Group__0 )
+            // InternalComputation.g:367:2: ( ( rule__ProductExpression__Group__0 ) )
+            // InternalComputation.g:368:3: ( rule__ProductExpression__Group__0 )
             {
              before(grammarAccess.getProductExpressionAccess().getGroup()); 
-            // InternalComputation.g:394:3: ( rule__ProductExpression__Group__0 )
-            // InternalComputation.g:394:4: rule__ProductExpression__Group__0
+            // InternalComputation.g:369:3: ( rule__ProductExpression__Group__0 )
+            // InternalComputation.g:369:4: rule__ProductExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ProductExpression__Group__0();
@@ -1168,13 +1090,13 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__OP__Alternatives"
-    // InternalComputation.g:402:1: rule__OP__Alternatives : ( ( 'ADD' ) | ( 'MUL' ) );
+    // InternalComputation.g:377:1: rule__OP__Alternatives : ( ( 'ADD' ) | ( 'MUL' ) );
     public final void rule__OP__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:406:1: ( ( 'ADD' ) | ( 'MUL' ) )
+            // InternalComputation.g:381:1: ( ( 'ADD' ) | ( 'MUL' ) )
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -1192,10 +1114,10 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
             }
             switch (alt1) {
                 case 1 :
-                    // InternalComputation.g:407:2: ( 'ADD' )
+                    // InternalComputation.g:382:2: ( 'ADD' )
                     {
-                    // InternalComputation.g:407:2: ( 'ADD' )
-                    // InternalComputation.g:408:3: 'ADD'
+                    // InternalComputation.g:382:2: ( 'ADD' )
+                    // InternalComputation.g:383:3: 'ADD'
                     {
                      before(grammarAccess.getOPAccess().getADDKeyword_0()); 
                     match(input,11,FOLLOW_2); 
@@ -1207,10 +1129,10 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
                     }
                     break;
                 case 2 :
-                    // InternalComputation.g:413:2: ( 'MUL' )
+                    // InternalComputation.g:388:2: ( 'MUL' )
                     {
-                    // InternalComputation.g:413:2: ( 'MUL' )
-                    // InternalComputation.g:414:3: 'MUL'
+                    // InternalComputation.g:388:2: ( 'MUL' )
+                    // InternalComputation.g:389:3: 'MUL'
                     {
                      before(grammarAccess.getOPAccess().getMULKeyword_1()); 
                     match(input,12,FOLLOW_2); 
@@ -1239,91 +1161,61 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__OperandExpression__Alternatives"
-    // InternalComputation.g:423:1: rule__OperandExpression__Alternatives : ( ( ruleSumExpression ) | ( ruleMaxExpression ) | ( ruleTerminalOperandExpression ) );
+    // InternalComputation.g:398:1: rule__OperandExpression__Alternatives : ( ( ruleMaxExpression ) | ( ruleTerminalOperandExpression ) );
     public final void rule__OperandExpression__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:427:1: ( ( ruleSumExpression ) | ( ruleMaxExpression ) | ( ruleTerminalOperandExpression ) )
-            int alt2=3;
-            switch ( input.LA(1) ) {
-            case 30:
-                {
+            // InternalComputation.g:402:1: ( ( ruleMaxExpression ) | ( ruleTerminalOperandExpression ) )
+            int alt2=2;
+            int LA2_0 = input.LA(1);
+
+            if ( (LA2_0==26) ) {
                 alt2=1;
-                }
-                break;
-            case 26:
-                {
+            }
+            else if ( ((LA2_0>=RULE_ID && LA2_0<=RULE_INT)||LA2_0==27) ) {
                 alt2=2;
-                }
-                break;
-            case RULE_ID:
-            case RULE_INT:
-            case 27:
-                {
-                alt2=3;
-                }
-                break;
-            default:
+            }
+            else {
                 NoViableAltException nvae =
                     new NoViableAltException("", 2, 0, input);
 
                 throw nvae;
             }
-
             switch (alt2) {
                 case 1 :
-                    // InternalComputation.g:428:2: ( ruleSumExpression )
-                    {
-                    // InternalComputation.g:428:2: ( ruleSumExpression )
-                    // InternalComputation.g:429:3: ruleSumExpression
+                    // InternalComputation.g:403:2: ( ruleMaxExpression )
                     {
-                     before(grammarAccess.getOperandExpressionAccess().getSumExpressionParserRuleCall_0()); 
-                    pushFollow(FOLLOW_2);
-                    ruleSumExpression();
-
-                    state._fsp--;
-
-                     after(grammarAccess.getOperandExpressionAccess().getSumExpressionParserRuleCall_0()); 
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // InternalComputation.g:434:2: ( ruleMaxExpression )
-                    {
-                    // InternalComputation.g:434:2: ( ruleMaxExpression )
-                    // InternalComputation.g:435:3: ruleMaxExpression
+                    // InternalComputation.g:403:2: ( ruleMaxExpression )
+                    // InternalComputation.g:404:3: ruleMaxExpression
                     {
-                     before(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_1()); 
+                     before(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
                     ruleMaxExpression();
 
                     state._fsp--;
 
-                     after(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_1()); 
+                     after(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_0()); 
 
                     }
 
 
                     }
                     break;
-                case 3 :
-                    // InternalComputation.g:440:2: ( ruleTerminalOperandExpression )
+                case 2 :
+                    // InternalComputation.g:409:2: ( ruleTerminalOperandExpression )
                     {
-                    // InternalComputation.g:440:2: ( ruleTerminalOperandExpression )
-                    // InternalComputation.g:441:3: ruleTerminalOperandExpression
+                    // InternalComputation.g:409:2: ( ruleTerminalOperandExpression )
+                    // InternalComputation.g:410:3: ruleTerminalOperandExpression
                     {
-                     before(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_2()); 
+                     before(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
                     ruleTerminalOperandExpression();
 
                     state._fsp--;
 
-                     after(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_2()); 
+                     after(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_1()); 
 
                     }
 
@@ -1348,13 +1240,13 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__TerminalOperandExpression__Alternatives"
-    // InternalComputation.g:450:1: rule__TerminalOperandExpression__Alternatives : ( ( ruleAddExpression ) | ( ruleOperandTerm ) );
+    // InternalComputation.g:419:1: rule__TerminalOperandExpression__Alternatives : ( ( ruleAddExpression ) | ( ruleOperandTerm ) );
     public final void rule__TerminalOperandExpression__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:454:1: ( ( ruleAddExpression ) | ( ruleOperandTerm ) )
+            // InternalComputation.g:423:1: ( ( ruleAddExpression ) | ( ruleOperandTerm ) )
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -1372,10 +1264,10 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
             }
             switch (alt3) {
                 case 1 :
-                    // InternalComputation.g:455:2: ( ruleAddExpression )
+                    // InternalComputation.g:424:2: ( ruleAddExpression )
                     {
-                    // InternalComputation.g:455:2: ( ruleAddExpression )
-                    // InternalComputation.g:456:3: ruleAddExpression
+                    // InternalComputation.g:424:2: ( ruleAddExpression )
+                    // InternalComputation.g:425:3: ruleAddExpression
                     {
                      before(grammarAccess.getTerminalOperandExpressionAccess().getAddExpressionParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -1391,10 +1283,10 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
                     }
                     break;
                 case 2 :
-                    // InternalComputation.g:461:2: ( ruleOperandTerm )
+                    // InternalComputation.g:430:2: ( ruleOperandTerm )
                     {
-                    // InternalComputation.g:461:2: ( ruleOperandTerm )
-                    // InternalComputation.g:462:3: ruleOperandTerm
+                    // InternalComputation.g:430:2: ( ruleOperandTerm )
+                    // InternalComputation.g:431:3: ruleOperandTerm
                     {
                      before(grammarAccess.getTerminalOperandExpressionAccess().getOperandTermParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -1427,25 +1319,25 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Alternatives"
-    // InternalComputation.g:471:1: rule__SummationExpression__Alternatives : ( ( ( rule__SummationExpression__Group_0__0 ) ) | ( ( rule__SummationExpression__ConstantAssignment_1 ) ) );
+    // InternalComputation.g:440:1: rule__SummationExpression__Alternatives : ( ( ( rule__SummationExpression__Group_0__0 ) ) | ( ( rule__SummationExpression__ConstantAssignment_1 ) ) );
     public final void rule__SummationExpression__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:475:1: ( ( ( rule__SummationExpression__Group_0__0 ) ) | ( ( rule__SummationExpression__ConstantAssignment_1 ) ) )
+            // InternalComputation.g:444:1: ( ( ( rule__SummationExpression__Group_0__0 ) ) | ( ( rule__SummationExpression__ConstantAssignment_1 ) ) )
             int alt4=2;
             int LA4_0 = input.LA(1);
 
             if ( (LA4_0==RULE_INT) ) {
                 int LA4_1 = input.LA(2);
 
-                if ( (LA4_1==RULE_ID) ) {
-                    alt4=1;
-                }
-                else if ( (LA4_1==EOF||LA4_1==15||LA4_1==21) ) {
+                if ( (LA4_1==EOF||LA4_1==15||LA4_1==21) ) {
                     alt4=2;
                 }
+                else if ( (LA4_1==RULE_ID) ) {
+                    alt4=1;
+                }
                 else {
                     NoViableAltException nvae =
                         new NoViableAltException("", 4, 1, input);
@@ -1464,14 +1356,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
             }
             switch (alt4) {
                 case 1 :
-                    // InternalComputation.g:476:2: ( ( rule__SummationExpression__Group_0__0 ) )
+                    // InternalComputation.g:445:2: ( ( rule__SummationExpression__Group_0__0 ) )
                     {
-                    // InternalComputation.g:476:2: ( ( rule__SummationExpression__Group_0__0 ) )
-                    // InternalComputation.g:477:3: ( rule__SummationExpression__Group_0__0 )
+                    // InternalComputation.g:445:2: ( ( rule__SummationExpression__Group_0__0 ) )
+                    // InternalComputation.g:446:3: ( rule__SummationExpression__Group_0__0 )
                     {
                      before(grammarAccess.getSummationExpressionAccess().getGroup_0()); 
-                    // InternalComputation.g:478:3: ( rule__SummationExpression__Group_0__0 )
-                    // InternalComputation.g:478:4: rule__SummationExpression__Group_0__0
+                    // InternalComputation.g:447:3: ( rule__SummationExpression__Group_0__0 )
+                    // InternalComputation.g:447:4: rule__SummationExpression__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__SummationExpression__Group_0__0();
@@ -1489,14 +1381,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
                     }
                     break;
                 case 2 :
-                    // InternalComputation.g:482:2: ( ( rule__SummationExpression__ConstantAssignment_1 ) )
+                    // InternalComputation.g:451:2: ( ( rule__SummationExpression__ConstantAssignment_1 ) )
                     {
-                    // InternalComputation.g:482:2: ( ( rule__SummationExpression__ConstantAssignment_1 ) )
-                    // InternalComputation.g:483:3: ( rule__SummationExpression__ConstantAssignment_1 )
+                    // InternalComputation.g:451:2: ( ( rule__SummationExpression__ConstantAssignment_1 ) )
+                    // InternalComputation.g:452:3: ( rule__SummationExpression__ConstantAssignment_1 )
                     {
                      before(grammarAccess.getSummationExpressionAccess().getConstantAssignment_1()); 
-                    // InternalComputation.g:484:3: ( rule__SummationExpression__ConstantAssignment_1 )
-                    // InternalComputation.g:484:4: rule__SummationExpression__ConstantAssignment_1
+                    // InternalComputation.g:453:3: ( rule__SummationExpression__ConstantAssignment_1 )
+                    // InternalComputation.g:453:4: rule__SummationExpression__ConstantAssignment_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__SummationExpression__ConstantAssignment_1();
@@ -1531,14 +1423,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationModel__Group__0"
-    // InternalComputation.g:492:1: rule__ComputationModel__Group__0 : rule__ComputationModel__Group__0__Impl rule__ComputationModel__Group__1 ;
+    // InternalComputation.g:461:1: rule__ComputationModel__Group__0 : rule__ComputationModel__Group__0__Impl rule__ComputationModel__Group__1 ;
     public final void rule__ComputationModel__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:496:1: ( rule__ComputationModel__Group__0__Impl rule__ComputationModel__Group__1 )
-            // InternalComputation.g:497:2: rule__ComputationModel__Group__0__Impl rule__ComputationModel__Group__1
+            // InternalComputation.g:465:1: ( rule__ComputationModel__Group__0__Impl rule__ComputationModel__Group__1 )
+            // InternalComputation.g:466:2: rule__ComputationModel__Group__0__Impl rule__ComputationModel__Group__1
             {
             pushFollow(FOLLOW_3);
             rule__ComputationModel__Group__0__Impl();
@@ -1569,20 +1461,20 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationModel__Group__0__Impl"
-    // InternalComputation.g:504:1: rule__ComputationModel__Group__0__Impl : ( ( rule__ComputationModel__ParametersAssignment_0 )* ) ;
+    // InternalComputation.g:473:1: rule__ComputationModel__Group__0__Impl : ( ( rule__ComputationModel__ParametersAssignment_0 )* ) ;
     public final void rule__ComputationModel__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:508:1: ( ( ( rule__ComputationModel__ParametersAssignment_0 )* ) )
-            // InternalComputation.g:509:1: ( ( rule__ComputationModel__ParametersAssignment_0 )* )
+            // InternalComputation.g:477:1: ( ( ( rule__ComputationModel__ParametersAssignment_0 )* ) )
+            // InternalComputation.g:478:1: ( ( rule__ComputationModel__ParametersAssignment_0 )* )
             {
-            // InternalComputation.g:509:1: ( ( rule__ComputationModel__ParametersAssignment_0 )* )
-            // InternalComputation.g:510:2: ( rule__ComputationModel__ParametersAssignment_0 )*
+            // InternalComputation.g:478:1: ( ( rule__ComputationModel__ParametersAssignment_0 )* )
+            // InternalComputation.g:479:2: ( rule__ComputationModel__ParametersAssignment_0 )*
             {
              before(grammarAccess.getComputationModelAccess().getParametersAssignment_0()); 
-            // InternalComputation.g:511:2: ( rule__ComputationModel__ParametersAssignment_0 )*
+            // InternalComputation.g:480:2: ( rule__ComputationModel__ParametersAssignment_0 )*
             loop5:
             do {
                 int alt5=2;
@@ -1595,7 +1487,7 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
                 switch (alt5) {
             	case 1 :
-            	    // InternalComputation.g:511:3: rule__ComputationModel__ParametersAssignment_0
+            	    // InternalComputation.g:480:3: rule__ComputationModel__ParametersAssignment_0
             	    {
             	    pushFollow(FOLLOW_4);
             	    rule__ComputationModel__ParametersAssignment_0();
@@ -1634,14 +1526,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationModel__Group__1"
-    // InternalComputation.g:519:1: rule__ComputationModel__Group__1 : rule__ComputationModel__Group__1__Impl rule__ComputationModel__Group__2 ;
+    // InternalComputation.g:488:1: rule__ComputationModel__Group__1 : rule__ComputationModel__Group__1__Impl rule__ComputationModel__Group__2 ;
     public final void rule__ComputationModel__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:523:1: ( rule__ComputationModel__Group__1__Impl rule__ComputationModel__Group__2 )
-            // InternalComputation.g:524:2: rule__ComputationModel__Group__1__Impl rule__ComputationModel__Group__2
+            // InternalComputation.g:492:1: ( rule__ComputationModel__Group__1__Impl rule__ComputationModel__Group__2 )
+            // InternalComputation.g:493:2: rule__ComputationModel__Group__1__Impl rule__ComputationModel__Group__2
             {
             pushFollow(FOLLOW_5);
             rule__ComputationModel__Group__1__Impl();
@@ -1672,21 +1564,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationModel__Group__1__Impl"
-    // InternalComputation.g:531:1: rule__ComputationModel__Group__1__Impl : ( ( rule__ComputationModel__TargetDesignAssignment_1 ) ) ;
+    // InternalComputation.g:500:1: rule__ComputationModel__Group__1__Impl : ( ( rule__ComputationModel__TargetDesignAssignment_1 ) ) ;
     public final void rule__ComputationModel__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:535:1: ( ( ( rule__ComputationModel__TargetDesignAssignment_1 ) ) )
-            // InternalComputation.g:536:1: ( ( rule__ComputationModel__TargetDesignAssignment_1 ) )
+            // InternalComputation.g:504:1: ( ( ( rule__ComputationModel__TargetDesignAssignment_1 ) ) )
+            // InternalComputation.g:505:1: ( ( rule__ComputationModel__TargetDesignAssignment_1 ) )
             {
-            // InternalComputation.g:536:1: ( ( rule__ComputationModel__TargetDesignAssignment_1 ) )
-            // InternalComputation.g:537:2: ( rule__ComputationModel__TargetDesignAssignment_1 )
+            // InternalComputation.g:505:1: ( ( rule__ComputationModel__TargetDesignAssignment_1 ) )
+            // InternalComputation.g:506:2: ( rule__ComputationModel__TargetDesignAssignment_1 )
             {
              before(grammarAccess.getComputationModelAccess().getTargetDesignAssignment_1()); 
-            // InternalComputation.g:538:2: ( rule__ComputationModel__TargetDesignAssignment_1 )
-            // InternalComputation.g:538:3: rule__ComputationModel__TargetDesignAssignment_1
+            // InternalComputation.g:507:2: ( rule__ComputationModel__TargetDesignAssignment_1 )
+            // InternalComputation.g:507:3: rule__ComputationModel__TargetDesignAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ComputationModel__TargetDesignAssignment_1();
@@ -1719,14 +1611,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationModel__Group__2"
-    // InternalComputation.g:546:1: rule__ComputationModel__Group__2 : rule__ComputationModel__Group__2__Impl ;
+    // InternalComputation.g:515:1: rule__ComputationModel__Group__2 : rule__ComputationModel__Group__2__Impl ;
     public final void rule__ComputationModel__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:550:1: ( rule__ComputationModel__Group__2__Impl )
-            // InternalComputation.g:551:2: rule__ComputationModel__Group__2__Impl
+            // InternalComputation.g:519:1: ( rule__ComputationModel__Group__2__Impl )
+            // InternalComputation.g:520:2: rule__ComputationModel__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ComputationModel__Group__2__Impl();
@@ -1752,24 +1644,24 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationModel__Group__2__Impl"
-    // InternalComputation.g:557:1: rule__ComputationModel__Group__2__Impl : ( ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* ) ) ;
+    // InternalComputation.g:526:1: rule__ComputationModel__Group__2__Impl : ( ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* ) ) ;
     public final void rule__ComputationModel__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:561:1: ( ( ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* ) ) )
-            // InternalComputation.g:562:1: ( ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* ) )
+            // InternalComputation.g:530:1: ( ( ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* ) ) )
+            // InternalComputation.g:531:1: ( ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* ) )
             {
-            // InternalComputation.g:562:1: ( ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* ) )
-            // InternalComputation.g:563:2: ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* )
+            // InternalComputation.g:531:1: ( ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* ) )
+            // InternalComputation.g:532:2: ( ( rule__ComputationModel__BlocksAssignment_2 ) ) ( ( rule__ComputationModel__BlocksAssignment_2 )* )
             {
-            // InternalComputation.g:563:2: ( ( rule__ComputationModel__BlocksAssignment_2 ) )
-            // InternalComputation.g:564:3: ( rule__ComputationModel__BlocksAssignment_2 )
+            // InternalComputation.g:532:2: ( ( rule__ComputationModel__BlocksAssignment_2 ) )
+            // InternalComputation.g:533:3: ( rule__ComputationModel__BlocksAssignment_2 )
             {
              before(grammarAccess.getComputationModelAccess().getBlocksAssignment_2()); 
-            // InternalComputation.g:565:3: ( rule__ComputationModel__BlocksAssignment_2 )
-            // InternalComputation.g:565:4: rule__ComputationModel__BlocksAssignment_2
+            // InternalComputation.g:534:3: ( rule__ComputationModel__BlocksAssignment_2 )
+            // InternalComputation.g:534:4: rule__ComputationModel__BlocksAssignment_2
             {
             pushFollow(FOLLOW_6);
             rule__ComputationModel__BlocksAssignment_2();
@@ -1783,11 +1675,11 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
             }
 
-            // InternalComputation.g:568:2: ( ( rule__ComputationModel__BlocksAssignment_2 )* )
-            // InternalComputation.g:569:3: ( rule__ComputationModel__BlocksAssignment_2 )*
+            // InternalComputation.g:537:2: ( ( rule__ComputationModel__BlocksAssignment_2 )* )
+            // InternalComputation.g:538:3: ( rule__ComputationModel__BlocksAssignment_2 )*
             {
              before(grammarAccess.getComputationModelAccess().getBlocksAssignment_2()); 
-            // InternalComputation.g:570:3: ( rule__ComputationModel__BlocksAssignment_2 )*
+            // InternalComputation.g:539:3: ( rule__ComputationModel__BlocksAssignment_2 )*
             loop6:
             do {
                 int alt6=2;
@@ -1800,7 +1692,7 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
                 switch (alt6) {
             	case 1 :
-            	    // InternalComputation.g:570:4: rule__ComputationModel__BlocksAssignment_2
+            	    // InternalComputation.g:539:4: rule__ComputationModel__BlocksAssignment_2
             	    {
             	    pushFollow(FOLLOW_6);
             	    rule__ComputationModel__BlocksAssignment_2();
@@ -1842,14 +1734,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__0"
-    // InternalComputation.g:580:1: rule__Parameter__Group__0 : rule__Parameter__Group__0__Impl rule__Parameter__Group__1 ;
+    // InternalComputation.g:549:1: rule__Parameter__Group__0 : rule__Parameter__Group__0__Impl rule__Parameter__Group__1 ;
     public final void rule__Parameter__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:584:1: ( rule__Parameter__Group__0__Impl rule__Parameter__Group__1 )
-            // InternalComputation.g:585:2: rule__Parameter__Group__0__Impl rule__Parameter__Group__1
+            // InternalComputation.g:553:1: ( rule__Parameter__Group__0__Impl rule__Parameter__Group__1 )
+            // InternalComputation.g:554:2: rule__Parameter__Group__0__Impl rule__Parameter__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__Parameter__Group__0__Impl();
@@ -1880,17 +1772,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__0__Impl"
-    // InternalComputation.g:592:1: rule__Parameter__Group__0__Impl : ( 'param' ) ;
+    // InternalComputation.g:561:1: rule__Parameter__Group__0__Impl : ( 'param' ) ;
     public final void rule__Parameter__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:596:1: ( ( 'param' ) )
-            // InternalComputation.g:597:1: ( 'param' )
+            // InternalComputation.g:565:1: ( ( 'param' ) )
+            // InternalComputation.g:566:1: ( 'param' )
             {
-            // InternalComputation.g:597:1: ( 'param' )
-            // InternalComputation.g:598:2: 'param'
+            // InternalComputation.g:566:1: ( 'param' )
+            // InternalComputation.g:567:2: 'param'
             {
              before(grammarAccess.getParameterAccess().getParamKeyword_0()); 
             match(input,13,FOLLOW_2); 
@@ -1917,14 +1809,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__1"
-    // InternalComputation.g:607:1: rule__Parameter__Group__1 : rule__Parameter__Group__1__Impl rule__Parameter__Group__2 ;
+    // InternalComputation.g:576:1: rule__Parameter__Group__1 : rule__Parameter__Group__1__Impl rule__Parameter__Group__2 ;
     public final void rule__Parameter__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:611:1: ( rule__Parameter__Group__1__Impl rule__Parameter__Group__2 )
-            // InternalComputation.g:612:2: rule__Parameter__Group__1__Impl rule__Parameter__Group__2
+            // InternalComputation.g:580:1: ( rule__Parameter__Group__1__Impl rule__Parameter__Group__2 )
+            // InternalComputation.g:581:2: rule__Parameter__Group__1__Impl rule__Parameter__Group__2
             {
             pushFollow(FOLLOW_8);
             rule__Parameter__Group__1__Impl();
@@ -1955,21 +1847,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__1__Impl"
-    // InternalComputation.g:619:1: rule__Parameter__Group__1__Impl : ( ( rule__Parameter__NameAssignment_1 ) ) ;
+    // InternalComputation.g:588:1: rule__Parameter__Group__1__Impl : ( ( rule__Parameter__NameAssignment_1 ) ) ;
     public final void rule__Parameter__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:623:1: ( ( ( rule__Parameter__NameAssignment_1 ) ) )
-            // InternalComputation.g:624:1: ( ( rule__Parameter__NameAssignment_1 ) )
+            // InternalComputation.g:592:1: ( ( ( rule__Parameter__NameAssignment_1 ) ) )
+            // InternalComputation.g:593:1: ( ( rule__Parameter__NameAssignment_1 ) )
             {
-            // InternalComputation.g:624:1: ( ( rule__Parameter__NameAssignment_1 ) )
-            // InternalComputation.g:625:2: ( rule__Parameter__NameAssignment_1 )
+            // InternalComputation.g:593:1: ( ( rule__Parameter__NameAssignment_1 ) )
+            // InternalComputation.g:594:2: ( rule__Parameter__NameAssignment_1 )
             {
              before(grammarAccess.getParameterAccess().getNameAssignment_1()); 
-            // InternalComputation.g:626:2: ( rule__Parameter__NameAssignment_1 )
-            // InternalComputation.g:626:3: rule__Parameter__NameAssignment_1
+            // InternalComputation.g:595:2: ( rule__Parameter__NameAssignment_1 )
+            // InternalComputation.g:595:3: rule__Parameter__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__Parameter__NameAssignment_1();
@@ -2002,14 +1894,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__2"
-    // InternalComputation.g:634:1: rule__Parameter__Group__2 : rule__Parameter__Group__2__Impl rule__Parameter__Group__3 ;
+    // InternalComputation.g:603:1: rule__Parameter__Group__2 : rule__Parameter__Group__2__Impl rule__Parameter__Group__3 ;
     public final void rule__Parameter__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:638:1: ( rule__Parameter__Group__2__Impl rule__Parameter__Group__3 )
-            // InternalComputation.g:639:2: rule__Parameter__Group__2__Impl rule__Parameter__Group__3
+            // InternalComputation.g:607:1: ( rule__Parameter__Group__2__Impl rule__Parameter__Group__3 )
+            // InternalComputation.g:608:2: rule__Parameter__Group__2__Impl rule__Parameter__Group__3
             {
             pushFollow(FOLLOW_9);
             rule__Parameter__Group__2__Impl();
@@ -2040,17 +1932,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__2__Impl"
-    // InternalComputation.g:646:1: rule__Parameter__Group__2__Impl : ( '=' ) ;
+    // InternalComputation.g:615:1: rule__Parameter__Group__2__Impl : ( '=' ) ;
     public final void rule__Parameter__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:650:1: ( ( '=' ) )
-            // InternalComputation.g:651:1: ( '=' )
+            // InternalComputation.g:619:1: ( ( '=' ) )
+            // InternalComputation.g:620:1: ( '=' )
             {
-            // InternalComputation.g:651:1: ( '=' )
-            // InternalComputation.g:652:2: '='
+            // InternalComputation.g:620:1: ( '=' )
+            // InternalComputation.g:621:2: '='
             {
              before(grammarAccess.getParameterAccess().getEqualsSignKeyword_2()); 
             match(input,14,FOLLOW_2); 
@@ -2077,14 +1969,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__3"
-    // InternalComputation.g:661:1: rule__Parameter__Group__3 : rule__Parameter__Group__3__Impl rule__Parameter__Group__4 ;
+    // InternalComputation.g:630:1: rule__Parameter__Group__3 : rule__Parameter__Group__3__Impl rule__Parameter__Group__4 ;
     public final void rule__Parameter__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:665:1: ( rule__Parameter__Group__3__Impl rule__Parameter__Group__4 )
-            // InternalComputation.g:666:2: rule__Parameter__Group__3__Impl rule__Parameter__Group__4
+            // InternalComputation.g:634:1: ( rule__Parameter__Group__3__Impl rule__Parameter__Group__4 )
+            // InternalComputation.g:635:2: rule__Parameter__Group__3__Impl rule__Parameter__Group__4
             {
             pushFollow(FOLLOW_10);
             rule__Parameter__Group__3__Impl();
@@ -2115,21 +2007,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__3__Impl"
-    // InternalComputation.g:673:1: rule__Parameter__Group__3__Impl : ( ( rule__Parameter__ValueAssignment_3 ) ) ;
+    // InternalComputation.g:642:1: rule__Parameter__Group__3__Impl : ( ( rule__Parameter__ValueAssignment_3 ) ) ;
     public final void rule__Parameter__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:677:1: ( ( ( rule__Parameter__ValueAssignment_3 ) ) )
-            // InternalComputation.g:678:1: ( ( rule__Parameter__ValueAssignment_3 ) )
+            // InternalComputation.g:646:1: ( ( ( rule__Parameter__ValueAssignment_3 ) ) )
+            // InternalComputation.g:647:1: ( ( rule__Parameter__ValueAssignment_3 ) )
             {
-            // InternalComputation.g:678:1: ( ( rule__Parameter__ValueAssignment_3 ) )
-            // InternalComputation.g:679:2: ( rule__Parameter__ValueAssignment_3 )
+            // InternalComputation.g:647:1: ( ( rule__Parameter__ValueAssignment_3 ) )
+            // InternalComputation.g:648:2: ( rule__Parameter__ValueAssignment_3 )
             {
              before(grammarAccess.getParameterAccess().getValueAssignment_3()); 
-            // InternalComputation.g:680:2: ( rule__Parameter__ValueAssignment_3 )
-            // InternalComputation.g:680:3: rule__Parameter__ValueAssignment_3
+            // InternalComputation.g:649:2: ( rule__Parameter__ValueAssignment_3 )
+            // InternalComputation.g:649:3: rule__Parameter__ValueAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__Parameter__ValueAssignment_3();
@@ -2162,14 +2054,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__4"
-    // InternalComputation.g:688:1: rule__Parameter__Group__4 : rule__Parameter__Group__4__Impl ;
+    // InternalComputation.g:657:1: rule__Parameter__Group__4 : rule__Parameter__Group__4__Impl ;
     public final void rule__Parameter__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:692:1: ( rule__Parameter__Group__4__Impl )
-            // InternalComputation.g:693:2: rule__Parameter__Group__4__Impl
+            // InternalComputation.g:661:1: ( rule__Parameter__Group__4__Impl )
+            // InternalComputation.g:662:2: rule__Parameter__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Parameter__Group__4__Impl();
@@ -2195,17 +2087,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__Group__4__Impl"
-    // InternalComputation.g:699:1: rule__Parameter__Group__4__Impl : ( ';' ) ;
+    // InternalComputation.g:668:1: rule__Parameter__Group__4__Impl : ( ';' ) ;
     public final void rule__Parameter__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:703:1: ( ( ';' ) )
-            // InternalComputation.g:704:1: ( ';' )
+            // InternalComputation.g:672:1: ( ( ';' ) )
+            // InternalComputation.g:673:1: ( ';' )
             {
-            // InternalComputation.g:704:1: ( ';' )
-            // InternalComputation.g:705:2: ';'
+            // InternalComputation.g:673:1: ( ';' )
+            // InternalComputation.g:674:2: ';'
             {
              before(grammarAccess.getParameterAccess().getSemicolonKeyword_4()); 
             match(input,15,FOLLOW_2); 
@@ -2232,14 +2124,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__0"
-    // InternalComputation.g:715:1: rule__HWTargetDesign__Group__0 : rule__HWTargetDesign__Group__0__Impl rule__HWTargetDesign__Group__1 ;
+    // InternalComputation.g:684:1: rule__HWTargetDesign__Group__0 : rule__HWTargetDesign__Group__0__Impl rule__HWTargetDesign__Group__1 ;
     public final void rule__HWTargetDesign__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:719:1: ( rule__HWTargetDesign__Group__0__Impl rule__HWTargetDesign__Group__1 )
-            // InternalComputation.g:720:2: rule__HWTargetDesign__Group__0__Impl rule__HWTargetDesign__Group__1
+            // InternalComputation.g:688:1: ( rule__HWTargetDesign__Group__0__Impl rule__HWTargetDesign__Group__1 )
+            // InternalComputation.g:689:2: rule__HWTargetDesign__Group__0__Impl rule__HWTargetDesign__Group__1
             {
             pushFollow(FOLLOW_11);
             rule__HWTargetDesign__Group__0__Impl();
@@ -2270,17 +2162,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__0__Impl"
-    // InternalComputation.g:727:1: rule__HWTargetDesign__Group__0__Impl : ( 'target' ) ;
+    // InternalComputation.g:696:1: rule__HWTargetDesign__Group__0__Impl : ( 'target' ) ;
     public final void rule__HWTargetDesign__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:731:1: ( ( 'target' ) )
-            // InternalComputation.g:732:1: ( 'target' )
+            // InternalComputation.g:700:1: ( ( 'target' ) )
+            // InternalComputation.g:701:1: ( 'target' )
             {
-            // InternalComputation.g:732:1: ( 'target' )
-            // InternalComputation.g:733:2: 'target'
+            // InternalComputation.g:701:1: ( 'target' )
+            // InternalComputation.g:702:2: 'target'
             {
              before(grammarAccess.getHWTargetDesignAccess().getTargetKeyword_0()); 
             match(input,16,FOLLOW_2); 
@@ -2307,14 +2199,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__1"
-    // InternalComputation.g:742:1: rule__HWTargetDesign__Group__1 : rule__HWTargetDesign__Group__1__Impl rule__HWTargetDesign__Group__2 ;
+    // InternalComputation.g:711:1: rule__HWTargetDesign__Group__1 : rule__HWTargetDesign__Group__1__Impl rule__HWTargetDesign__Group__2 ;
     public final void rule__HWTargetDesign__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:746:1: ( rule__HWTargetDesign__Group__1__Impl rule__HWTargetDesign__Group__2 )
-            // InternalComputation.g:747:2: rule__HWTargetDesign__Group__1__Impl rule__HWTargetDesign__Group__2
+            // InternalComputation.g:715:1: ( rule__HWTargetDesign__Group__1__Impl rule__HWTargetDesign__Group__2 )
+            // InternalComputation.g:716:2: rule__HWTargetDesign__Group__1__Impl rule__HWTargetDesign__Group__2
             {
             pushFollow(FOLLOW_12);
             rule__HWTargetDesign__Group__1__Impl();
@@ -2345,17 +2237,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__1__Impl"
-    // InternalComputation.g:754:1: rule__HWTargetDesign__Group__1__Impl : ( '{' ) ;
+    // InternalComputation.g:723:1: rule__HWTargetDesign__Group__1__Impl : ( '{' ) ;
     public final void rule__HWTargetDesign__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:758:1: ( ( '{' ) )
-            // InternalComputation.g:759:1: ( '{' )
+            // InternalComputation.g:727:1: ( ( '{' ) )
+            // InternalComputation.g:728:1: ( '{' )
             {
-            // InternalComputation.g:759:1: ( '{' )
-            // InternalComputation.g:760:2: '{'
+            // InternalComputation.g:728:1: ( '{' )
+            // InternalComputation.g:729:2: '{'
             {
              before(grammarAccess.getHWTargetDesignAccess().getLeftCurlyBracketKeyword_1()); 
             match(input,17,FOLLOW_2); 
@@ -2382,14 +2274,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__2"
-    // InternalComputation.g:769:1: rule__HWTargetDesign__Group__2 : rule__HWTargetDesign__Group__2__Impl rule__HWTargetDesign__Group__3 ;
+    // InternalComputation.g:738:1: rule__HWTargetDesign__Group__2 : rule__HWTargetDesign__Group__2__Impl rule__HWTargetDesign__Group__3 ;
     public final void rule__HWTargetDesign__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:773:1: ( rule__HWTargetDesign__Group__2__Impl rule__HWTargetDesign__Group__3 )
-            // InternalComputation.g:774:2: rule__HWTargetDesign__Group__2__Impl rule__HWTargetDesign__Group__3
+            // InternalComputation.g:742:1: ( rule__HWTargetDesign__Group__2__Impl rule__HWTargetDesign__Group__3 )
+            // InternalComputation.g:743:2: rule__HWTargetDesign__Group__2__Impl rule__HWTargetDesign__Group__3
             {
             pushFollow(FOLLOW_8);
             rule__HWTargetDesign__Group__2__Impl();
@@ -2420,17 +2312,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__2__Impl"
-    // InternalComputation.g:781:1: rule__HWTargetDesign__Group__2__Impl : ( 'frequency' ) ;
+    // InternalComputation.g:750:1: rule__HWTargetDesign__Group__2__Impl : ( 'frequency' ) ;
     public final void rule__HWTargetDesign__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:785:1: ( ( 'frequency' ) )
-            // InternalComputation.g:786:1: ( 'frequency' )
+            // InternalComputation.g:754:1: ( ( 'frequency' ) )
+            // InternalComputation.g:755:1: ( 'frequency' )
             {
-            // InternalComputation.g:786:1: ( 'frequency' )
-            // InternalComputation.g:787:2: 'frequency'
+            // InternalComputation.g:755:1: ( 'frequency' )
+            // InternalComputation.g:756:2: 'frequency'
             {
              before(grammarAccess.getHWTargetDesignAccess().getFrequencyKeyword_2()); 
             match(input,18,FOLLOW_2); 
@@ -2457,14 +2349,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__3"
-    // InternalComputation.g:796:1: rule__HWTargetDesign__Group__3 : rule__HWTargetDesign__Group__3__Impl rule__HWTargetDesign__Group__4 ;
+    // InternalComputation.g:765:1: rule__HWTargetDesign__Group__3 : rule__HWTargetDesign__Group__3__Impl rule__HWTargetDesign__Group__4 ;
     public final void rule__HWTargetDesign__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:800:1: ( rule__HWTargetDesign__Group__3__Impl rule__HWTargetDesign__Group__4 )
-            // InternalComputation.g:801:2: rule__HWTargetDesign__Group__3__Impl rule__HWTargetDesign__Group__4
+            // InternalComputation.g:769:1: ( rule__HWTargetDesign__Group__3__Impl rule__HWTargetDesign__Group__4 )
+            // InternalComputation.g:770:2: rule__HWTargetDesign__Group__3__Impl rule__HWTargetDesign__Group__4
             {
             pushFollow(FOLLOW_9);
             rule__HWTargetDesign__Group__3__Impl();
@@ -2495,17 +2387,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__3__Impl"
-    // InternalComputation.g:808:1: rule__HWTargetDesign__Group__3__Impl : ( '=' ) ;
+    // InternalComputation.g:777:1: rule__HWTargetDesign__Group__3__Impl : ( '=' ) ;
     public final void rule__HWTargetDesign__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:812:1: ( ( '=' ) )
-            // InternalComputation.g:813:1: ( '=' )
+            // InternalComputation.g:781:1: ( ( '=' ) )
+            // InternalComputation.g:782:1: ( '=' )
             {
-            // InternalComputation.g:813:1: ( '=' )
-            // InternalComputation.g:814:2: '='
+            // InternalComputation.g:782:1: ( '=' )
+            // InternalComputation.g:783:2: '='
             {
              before(grammarAccess.getHWTargetDesignAccess().getEqualsSignKeyword_3()); 
             match(input,14,FOLLOW_2); 
@@ -2532,14 +2424,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__4"
-    // InternalComputation.g:823:1: rule__HWTargetDesign__Group__4 : rule__HWTargetDesign__Group__4__Impl rule__HWTargetDesign__Group__5 ;
+    // InternalComputation.g:792:1: rule__HWTargetDesign__Group__4 : rule__HWTargetDesign__Group__4__Impl rule__HWTargetDesign__Group__5 ;
     public final void rule__HWTargetDesign__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:827:1: ( rule__HWTargetDesign__Group__4__Impl rule__HWTargetDesign__Group__5 )
-            // InternalComputation.g:828:2: rule__HWTargetDesign__Group__4__Impl rule__HWTargetDesign__Group__5
+            // InternalComputation.g:796:1: ( rule__HWTargetDesign__Group__4__Impl rule__HWTargetDesign__Group__5 )
+            // InternalComputation.g:797:2: rule__HWTargetDesign__Group__4__Impl rule__HWTargetDesign__Group__5
             {
             pushFollow(FOLLOW_13);
             rule__HWTargetDesign__Group__4__Impl();
@@ -2570,21 +2462,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__4__Impl"
-    // InternalComputation.g:835:1: rule__HWTargetDesign__Group__4__Impl : ( ( rule__HWTargetDesign__FrequencyAssignment_4 ) ) ;
+    // InternalComputation.g:804:1: rule__HWTargetDesign__Group__4__Impl : ( ( rule__HWTargetDesign__FrequencyAssignment_4 ) ) ;
     public final void rule__HWTargetDesign__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:839:1: ( ( ( rule__HWTargetDesign__FrequencyAssignment_4 ) ) )
-            // InternalComputation.g:840:1: ( ( rule__HWTargetDesign__FrequencyAssignment_4 ) )
+            // InternalComputation.g:808:1: ( ( ( rule__HWTargetDesign__FrequencyAssignment_4 ) ) )
+            // InternalComputation.g:809:1: ( ( rule__HWTargetDesign__FrequencyAssignment_4 ) )
             {
-            // InternalComputation.g:840:1: ( ( rule__HWTargetDesign__FrequencyAssignment_4 ) )
-            // InternalComputation.g:841:2: ( rule__HWTargetDesign__FrequencyAssignment_4 )
+            // InternalComputation.g:809:1: ( ( rule__HWTargetDesign__FrequencyAssignment_4 ) )
+            // InternalComputation.g:810:2: ( rule__HWTargetDesign__FrequencyAssignment_4 )
             {
              before(grammarAccess.getHWTargetDesignAccess().getFrequencyAssignment_4()); 
-            // InternalComputation.g:842:2: ( rule__HWTargetDesign__FrequencyAssignment_4 )
-            // InternalComputation.g:842:3: rule__HWTargetDesign__FrequencyAssignment_4
+            // InternalComputation.g:811:2: ( rule__HWTargetDesign__FrequencyAssignment_4 )
+            // InternalComputation.g:811:3: rule__HWTargetDesign__FrequencyAssignment_4
             {
             pushFollow(FOLLOW_2);
             rule__HWTargetDesign__FrequencyAssignment_4();
@@ -2617,14 +2509,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__5"
-    // InternalComputation.g:850:1: rule__HWTargetDesign__Group__5 : rule__HWTargetDesign__Group__5__Impl rule__HWTargetDesign__Group__6 ;
+    // InternalComputation.g:819:1: rule__HWTargetDesign__Group__5 : rule__HWTargetDesign__Group__5__Impl rule__HWTargetDesign__Group__6 ;
     public final void rule__HWTargetDesign__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:854:1: ( rule__HWTargetDesign__Group__5__Impl rule__HWTargetDesign__Group__6 )
-            // InternalComputation.g:855:2: rule__HWTargetDesign__Group__5__Impl rule__HWTargetDesign__Group__6
+            // InternalComputation.g:823:1: ( rule__HWTargetDesign__Group__5__Impl rule__HWTargetDesign__Group__6 )
+            // InternalComputation.g:824:2: rule__HWTargetDesign__Group__5__Impl rule__HWTargetDesign__Group__6
             {
             pushFollow(FOLLOW_8);
             rule__HWTargetDesign__Group__5__Impl();
@@ -2655,17 +2547,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__5__Impl"
-    // InternalComputation.g:862:1: rule__HWTargetDesign__Group__5__Impl : ( 'outputsPerCycle' ) ;
+    // InternalComputation.g:831:1: rule__HWTargetDesign__Group__5__Impl : ( 'outputsPerCycle' ) ;
     public final void rule__HWTargetDesign__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:866:1: ( ( 'outputsPerCycle' ) )
-            // InternalComputation.g:867:1: ( 'outputsPerCycle' )
+            // InternalComputation.g:835:1: ( ( 'outputsPerCycle' ) )
+            // InternalComputation.g:836:1: ( 'outputsPerCycle' )
             {
-            // InternalComputation.g:867:1: ( 'outputsPerCycle' )
-            // InternalComputation.g:868:2: 'outputsPerCycle'
+            // InternalComputation.g:836:1: ( 'outputsPerCycle' )
+            // InternalComputation.g:837:2: 'outputsPerCycle'
             {
              before(grammarAccess.getHWTargetDesignAccess().getOutputsPerCycleKeyword_5()); 
             match(input,19,FOLLOW_2); 
@@ -2692,14 +2584,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__6"
-    // InternalComputation.g:877:1: rule__HWTargetDesign__Group__6 : rule__HWTargetDesign__Group__6__Impl rule__HWTargetDesign__Group__7 ;
+    // InternalComputation.g:846:1: rule__HWTargetDesign__Group__6 : rule__HWTargetDesign__Group__6__Impl rule__HWTargetDesign__Group__7 ;
     public final void rule__HWTargetDesign__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:881:1: ( rule__HWTargetDesign__Group__6__Impl rule__HWTargetDesign__Group__7 )
-            // InternalComputation.g:882:2: rule__HWTargetDesign__Group__6__Impl rule__HWTargetDesign__Group__7
+            // InternalComputation.g:850:1: ( rule__HWTargetDesign__Group__6__Impl rule__HWTargetDesign__Group__7 )
+            // InternalComputation.g:851:2: rule__HWTargetDesign__Group__6__Impl rule__HWTargetDesign__Group__7
             {
             pushFollow(FOLLOW_9);
             rule__HWTargetDesign__Group__6__Impl();
@@ -2730,17 +2622,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__6__Impl"
-    // InternalComputation.g:889:1: rule__HWTargetDesign__Group__6__Impl : ( '=' ) ;
+    // InternalComputation.g:858:1: rule__HWTargetDesign__Group__6__Impl : ( '=' ) ;
     public final void rule__HWTargetDesign__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:893:1: ( ( '=' ) )
-            // InternalComputation.g:894:1: ( '=' )
+            // InternalComputation.g:862:1: ( ( '=' ) )
+            // InternalComputation.g:863:1: ( '=' )
             {
-            // InternalComputation.g:894:1: ( '=' )
-            // InternalComputation.g:895:2: '='
+            // InternalComputation.g:863:1: ( '=' )
+            // InternalComputation.g:864:2: '='
             {
              before(grammarAccess.getHWTargetDesignAccess().getEqualsSignKeyword_6()); 
             match(input,14,FOLLOW_2); 
@@ -2767,14 +2659,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__7"
-    // InternalComputation.g:904:1: rule__HWTargetDesign__Group__7 : rule__HWTargetDesign__Group__7__Impl rule__HWTargetDesign__Group__8 ;
+    // InternalComputation.g:873:1: rule__HWTargetDesign__Group__7 : rule__HWTargetDesign__Group__7__Impl rule__HWTargetDesign__Group__8 ;
     public final void rule__HWTargetDesign__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:908:1: ( rule__HWTargetDesign__Group__7__Impl rule__HWTargetDesign__Group__8 )
-            // InternalComputation.g:909:2: rule__HWTargetDesign__Group__7__Impl rule__HWTargetDesign__Group__8
+            // InternalComputation.g:877:1: ( rule__HWTargetDesign__Group__7__Impl rule__HWTargetDesign__Group__8 )
+            // InternalComputation.g:878:2: rule__HWTargetDesign__Group__7__Impl rule__HWTargetDesign__Group__8
             {
             pushFollow(FOLLOW_14);
             rule__HWTargetDesign__Group__7__Impl();
@@ -2805,21 +2697,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__7__Impl"
-    // InternalComputation.g:916:1: rule__HWTargetDesign__Group__7__Impl : ( ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 ) ) ;
+    // InternalComputation.g:885:1: rule__HWTargetDesign__Group__7__Impl : ( ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 ) ) ;
     public final void rule__HWTargetDesign__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:920:1: ( ( ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 ) ) )
-            // InternalComputation.g:921:1: ( ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 ) )
+            // InternalComputation.g:889:1: ( ( ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 ) ) )
+            // InternalComputation.g:890:1: ( ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 ) )
             {
-            // InternalComputation.g:921:1: ( ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 ) )
-            // InternalComputation.g:922:2: ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 )
+            // InternalComputation.g:890:1: ( ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 ) )
+            // InternalComputation.g:891:2: ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 )
             {
              before(grammarAccess.getHWTargetDesignAccess().getOutputsPerCycleAssignment_7()); 
-            // InternalComputation.g:923:2: ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 )
-            // InternalComputation.g:923:3: rule__HWTargetDesign__OutputsPerCycleAssignment_7
+            // InternalComputation.g:892:2: ( rule__HWTargetDesign__OutputsPerCycleAssignment_7 )
+            // InternalComputation.g:892:3: rule__HWTargetDesign__OutputsPerCycleAssignment_7
             {
             pushFollow(FOLLOW_2);
             rule__HWTargetDesign__OutputsPerCycleAssignment_7();
@@ -2852,14 +2744,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__8"
-    // InternalComputation.g:931:1: rule__HWTargetDesign__Group__8 : rule__HWTargetDesign__Group__8__Impl rule__HWTargetDesign__Group__9 ;
+    // InternalComputation.g:900:1: rule__HWTargetDesign__Group__8 : rule__HWTargetDesign__Group__8__Impl rule__HWTargetDesign__Group__9 ;
     public final void rule__HWTargetDesign__Group__8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:935:1: ( rule__HWTargetDesign__Group__8__Impl rule__HWTargetDesign__Group__9 )
-            // InternalComputation.g:936:2: rule__HWTargetDesign__Group__8__Impl rule__HWTargetDesign__Group__9
+            // InternalComputation.g:904:1: ( rule__HWTargetDesign__Group__8__Impl rule__HWTargetDesign__Group__9 )
+            // InternalComputation.g:905:2: rule__HWTargetDesign__Group__8__Impl rule__HWTargetDesign__Group__9
             {
             pushFollow(FOLLOW_8);
             rule__HWTargetDesign__Group__8__Impl();
@@ -2890,17 +2782,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__8__Impl"
-    // InternalComputation.g:943:1: rule__HWTargetDesign__Group__8__Impl : ( 'problemSize' ) ;
+    // InternalComputation.g:912:1: rule__HWTargetDesign__Group__8__Impl : ( 'problemSize' ) ;
     public final void rule__HWTargetDesign__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:947:1: ( ( 'problemSize' ) )
-            // InternalComputation.g:948:1: ( 'problemSize' )
+            // InternalComputation.g:916:1: ( ( 'problemSize' ) )
+            // InternalComputation.g:917:1: ( 'problemSize' )
             {
-            // InternalComputation.g:948:1: ( 'problemSize' )
-            // InternalComputation.g:949:2: 'problemSize'
+            // InternalComputation.g:917:1: ( 'problemSize' )
+            // InternalComputation.g:918:2: 'problemSize'
             {
              before(grammarAccess.getHWTargetDesignAccess().getProblemSizeKeyword_8()); 
             match(input,20,FOLLOW_2); 
@@ -2927,14 +2819,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__9"
-    // InternalComputation.g:958:1: rule__HWTargetDesign__Group__9 : rule__HWTargetDesign__Group__9__Impl rule__HWTargetDesign__Group__10 ;
+    // InternalComputation.g:927:1: rule__HWTargetDesign__Group__9 : rule__HWTargetDesign__Group__9__Impl rule__HWTargetDesign__Group__10 ;
     public final void rule__HWTargetDesign__Group__9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:962:1: ( rule__HWTargetDesign__Group__9__Impl rule__HWTargetDesign__Group__10 )
-            // InternalComputation.g:963:2: rule__HWTargetDesign__Group__9__Impl rule__HWTargetDesign__Group__10
+            // InternalComputation.g:931:1: ( rule__HWTargetDesign__Group__9__Impl rule__HWTargetDesign__Group__10 )
+            // InternalComputation.g:932:2: rule__HWTargetDesign__Group__9__Impl rule__HWTargetDesign__Group__10
             {
             pushFollow(FOLLOW_15);
             rule__HWTargetDesign__Group__9__Impl();
@@ -2965,17 +2857,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__9__Impl"
-    // InternalComputation.g:970:1: rule__HWTargetDesign__Group__9__Impl : ( '=' ) ;
+    // InternalComputation.g:939:1: rule__HWTargetDesign__Group__9__Impl : ( '=' ) ;
     public final void rule__HWTargetDesign__Group__9__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:974:1: ( ( '=' ) )
-            // InternalComputation.g:975:1: ( '=' )
+            // InternalComputation.g:943:1: ( ( '=' ) )
+            // InternalComputation.g:944:1: ( '=' )
             {
-            // InternalComputation.g:975:1: ( '=' )
-            // InternalComputation.g:976:2: '='
+            // InternalComputation.g:944:1: ( '=' )
+            // InternalComputation.g:945:2: '='
             {
              before(grammarAccess.getHWTargetDesignAccess().getEqualsSignKeyword_9()); 
             match(input,14,FOLLOW_2); 
@@ -3002,14 +2894,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__10"
-    // InternalComputation.g:985:1: rule__HWTargetDesign__Group__10 : rule__HWTargetDesign__Group__10__Impl rule__HWTargetDesign__Group__11 ;
+    // InternalComputation.g:954:1: rule__HWTargetDesign__Group__10 : rule__HWTargetDesign__Group__10__Impl rule__HWTargetDesign__Group__11 ;
     public final void rule__HWTargetDesign__Group__10() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:989:1: ( rule__HWTargetDesign__Group__10__Impl rule__HWTargetDesign__Group__11 )
-            // InternalComputation.g:990:2: rule__HWTargetDesign__Group__10__Impl rule__HWTargetDesign__Group__11
+            // InternalComputation.g:958:1: ( rule__HWTargetDesign__Group__10__Impl rule__HWTargetDesign__Group__11 )
+            // InternalComputation.g:959:2: rule__HWTargetDesign__Group__10__Impl rule__HWTargetDesign__Group__11
             {
             pushFollow(FOLLOW_16);
             rule__HWTargetDesign__Group__10__Impl();
@@ -3040,21 +2932,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__10__Impl"
-    // InternalComputation.g:997:1: rule__HWTargetDesign__Group__10__Impl : ( ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 ) ) ;
+    // InternalComputation.g:966:1: rule__HWTargetDesign__Group__10__Impl : ( ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 ) ) ;
     public final void rule__HWTargetDesign__Group__10__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1001:1: ( ( ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 ) ) )
-            // InternalComputation.g:1002:1: ( ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 ) )
+            // InternalComputation.g:970:1: ( ( ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 ) ) )
+            // InternalComputation.g:971:1: ( ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 ) )
             {
-            // InternalComputation.g:1002:1: ( ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 ) )
-            // InternalComputation.g:1003:2: ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 )
+            // InternalComputation.g:971:1: ( ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 ) )
+            // InternalComputation.g:972:2: ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 )
             {
              before(grammarAccess.getHWTargetDesignAccess().getProblemSizeExprAssignment_10()); 
-            // InternalComputation.g:1004:2: ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 )
-            // InternalComputation.g:1004:3: rule__HWTargetDesign__ProblemSizeExprAssignment_10
+            // InternalComputation.g:973:2: ( rule__HWTargetDesign__ProblemSizeExprAssignment_10 )
+            // InternalComputation.g:973:3: rule__HWTargetDesign__ProblemSizeExprAssignment_10
             {
             pushFollow(FOLLOW_2);
             rule__HWTargetDesign__ProblemSizeExprAssignment_10();
@@ -3087,14 +2979,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__11"
-    // InternalComputation.g:1012:1: rule__HWTargetDesign__Group__11 : rule__HWTargetDesign__Group__11__Impl ;
+    // InternalComputation.g:981:1: rule__HWTargetDesign__Group__11 : rule__HWTargetDesign__Group__11__Impl ;
     public final void rule__HWTargetDesign__Group__11() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1016:1: ( rule__HWTargetDesign__Group__11__Impl )
-            // InternalComputation.g:1017:2: rule__HWTargetDesign__Group__11__Impl
+            // InternalComputation.g:985:1: ( rule__HWTargetDesign__Group__11__Impl )
+            // InternalComputation.g:986:2: rule__HWTargetDesign__Group__11__Impl
             {
             pushFollow(FOLLOW_2);
             rule__HWTargetDesign__Group__11__Impl();
@@ -3120,17 +3012,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__Group__11__Impl"
-    // InternalComputation.g:1023:1: rule__HWTargetDesign__Group__11__Impl : ( '}' ) ;
+    // InternalComputation.g:992:1: rule__HWTargetDesign__Group__11__Impl : ( '}' ) ;
     public final void rule__HWTargetDesign__Group__11__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1027:1: ( ( '}' ) )
-            // InternalComputation.g:1028:1: ( '}' )
+            // InternalComputation.g:996:1: ( ( '}' ) )
+            // InternalComputation.g:997:1: ( '}' )
             {
-            // InternalComputation.g:1028:1: ( '}' )
-            // InternalComputation.g:1029:2: '}'
+            // InternalComputation.g:997:1: ( '}' )
+            // InternalComputation.g:998:2: '}'
             {
              before(grammarAccess.getHWTargetDesignAccess().getRightCurlyBracketKeyword_11()); 
             match(input,21,FOLLOW_2); 
@@ -3157,14 +3049,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__0"
-    // InternalComputation.g:1039:1: rule__ComputationBlock__Group__0 : rule__ComputationBlock__Group__0__Impl rule__ComputationBlock__Group__1 ;
+    // InternalComputation.g:1008:1: rule__ComputationBlock__Group__0 : rule__ComputationBlock__Group__0__Impl rule__ComputationBlock__Group__1 ;
     public final void rule__ComputationBlock__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1043:1: ( rule__ComputationBlock__Group__0__Impl rule__ComputationBlock__Group__1 )
-            // InternalComputation.g:1044:2: rule__ComputationBlock__Group__0__Impl rule__ComputationBlock__Group__1
+            // InternalComputation.g:1012:1: ( rule__ComputationBlock__Group__0__Impl rule__ComputationBlock__Group__1 )
+            // InternalComputation.g:1013:2: rule__ComputationBlock__Group__0__Impl rule__ComputationBlock__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__ComputationBlock__Group__0__Impl();
@@ -3195,17 +3087,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__0__Impl"
-    // InternalComputation.g:1051:1: rule__ComputationBlock__Group__0__Impl : ( 'block' ) ;
+    // InternalComputation.g:1020:1: rule__ComputationBlock__Group__0__Impl : ( 'block' ) ;
     public final void rule__ComputationBlock__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1055:1: ( ( 'block' ) )
-            // InternalComputation.g:1056:1: ( 'block' )
+            // InternalComputation.g:1024:1: ( ( 'block' ) )
+            // InternalComputation.g:1025:1: ( 'block' )
             {
-            // InternalComputation.g:1056:1: ( 'block' )
-            // InternalComputation.g:1057:2: 'block'
+            // InternalComputation.g:1025:1: ( 'block' )
+            // InternalComputation.g:1026:2: 'block'
             {
              before(grammarAccess.getComputationBlockAccess().getBlockKeyword_0()); 
             match(input,22,FOLLOW_2); 
@@ -3232,14 +3124,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__1"
-    // InternalComputation.g:1066:1: rule__ComputationBlock__Group__1 : rule__ComputationBlock__Group__1__Impl rule__ComputationBlock__Group__2 ;
+    // InternalComputation.g:1035:1: rule__ComputationBlock__Group__1 : rule__ComputationBlock__Group__1__Impl rule__ComputationBlock__Group__2 ;
     public final void rule__ComputationBlock__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1070:1: ( rule__ComputationBlock__Group__1__Impl rule__ComputationBlock__Group__2 )
-            // InternalComputation.g:1071:2: rule__ComputationBlock__Group__1__Impl rule__ComputationBlock__Group__2
+            // InternalComputation.g:1039:1: ( rule__ComputationBlock__Group__1__Impl rule__ComputationBlock__Group__2 )
+            // InternalComputation.g:1040:2: rule__ComputationBlock__Group__1__Impl rule__ComputationBlock__Group__2
             {
             pushFollow(FOLLOW_11);
             rule__ComputationBlock__Group__1__Impl();
@@ -3270,21 +3162,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__1__Impl"
-    // InternalComputation.g:1078:1: rule__ComputationBlock__Group__1__Impl : ( ( rule__ComputationBlock__NameAssignment_1 ) ) ;
+    // InternalComputation.g:1047:1: rule__ComputationBlock__Group__1__Impl : ( ( rule__ComputationBlock__NameAssignment_1 ) ) ;
     public final void rule__ComputationBlock__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1082:1: ( ( ( rule__ComputationBlock__NameAssignment_1 ) ) )
-            // InternalComputation.g:1083:1: ( ( rule__ComputationBlock__NameAssignment_1 ) )
+            // InternalComputation.g:1051:1: ( ( ( rule__ComputationBlock__NameAssignment_1 ) ) )
+            // InternalComputation.g:1052:1: ( ( rule__ComputationBlock__NameAssignment_1 ) )
             {
-            // InternalComputation.g:1083:1: ( ( rule__ComputationBlock__NameAssignment_1 ) )
-            // InternalComputation.g:1084:2: ( rule__ComputationBlock__NameAssignment_1 )
+            // InternalComputation.g:1052:1: ( ( rule__ComputationBlock__NameAssignment_1 ) )
+            // InternalComputation.g:1053:2: ( rule__ComputationBlock__NameAssignment_1 )
             {
              before(grammarAccess.getComputationBlockAccess().getNameAssignment_1()); 
-            // InternalComputation.g:1085:2: ( rule__ComputationBlock__NameAssignment_1 )
-            // InternalComputation.g:1085:3: rule__ComputationBlock__NameAssignment_1
+            // InternalComputation.g:1054:2: ( rule__ComputationBlock__NameAssignment_1 )
+            // InternalComputation.g:1054:3: rule__ComputationBlock__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ComputationBlock__NameAssignment_1();
@@ -3317,14 +3209,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__2"
-    // InternalComputation.g:1093:1: rule__ComputationBlock__Group__2 : rule__ComputationBlock__Group__2__Impl rule__ComputationBlock__Group__3 ;
+    // InternalComputation.g:1062:1: rule__ComputationBlock__Group__2 : rule__ComputationBlock__Group__2__Impl rule__ComputationBlock__Group__3 ;
     public final void rule__ComputationBlock__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1097:1: ( rule__ComputationBlock__Group__2__Impl rule__ComputationBlock__Group__3 )
-            // InternalComputation.g:1098:2: rule__ComputationBlock__Group__2__Impl rule__ComputationBlock__Group__3
+            // InternalComputation.g:1066:1: ( rule__ComputationBlock__Group__2__Impl rule__ComputationBlock__Group__3 )
+            // InternalComputation.g:1067:2: rule__ComputationBlock__Group__2__Impl rule__ComputationBlock__Group__3
             {
             pushFollow(FOLLOW_17);
             rule__ComputationBlock__Group__2__Impl();
@@ -3355,17 +3247,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__2__Impl"
-    // InternalComputation.g:1105:1: rule__ComputationBlock__Group__2__Impl : ( '{' ) ;
+    // InternalComputation.g:1074:1: rule__ComputationBlock__Group__2__Impl : ( '{' ) ;
     public final void rule__ComputationBlock__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1109:1: ( ( '{' ) )
-            // InternalComputation.g:1110:1: ( '{' )
+            // InternalComputation.g:1078:1: ( ( '{' ) )
+            // InternalComputation.g:1079:1: ( '{' )
             {
-            // InternalComputation.g:1110:1: ( '{' )
-            // InternalComputation.g:1111:2: '{'
+            // InternalComputation.g:1079:1: ( '{' )
+            // InternalComputation.g:1080:2: '{'
             {
              before(grammarAccess.getComputationBlockAccess().getLeftCurlyBracketKeyword_2()); 
             match(input,17,FOLLOW_2); 
@@ -3392,14 +3284,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__3"
-    // InternalComputation.g:1120:1: rule__ComputationBlock__Group__3 : rule__ComputationBlock__Group__3__Impl rule__ComputationBlock__Group__4 ;
+    // InternalComputation.g:1089:1: rule__ComputationBlock__Group__3 : rule__ComputationBlock__Group__3__Impl rule__ComputationBlock__Group__4 ;
     public final void rule__ComputationBlock__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1124:1: ( rule__ComputationBlock__Group__3__Impl rule__ComputationBlock__Group__4 )
-            // InternalComputation.g:1125:2: rule__ComputationBlock__Group__3__Impl rule__ComputationBlock__Group__4
+            // InternalComputation.g:1093:1: ( rule__ComputationBlock__Group__3__Impl rule__ComputationBlock__Group__4 )
+            // InternalComputation.g:1094:2: rule__ComputationBlock__Group__3__Impl rule__ComputationBlock__Group__4
             {
             pushFollow(FOLLOW_16);
             rule__ComputationBlock__Group__3__Impl();
@@ -3430,24 +3322,24 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__3__Impl"
-    // InternalComputation.g:1132:1: rule__ComputationBlock__Group__3__Impl : ( ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* ) ) ;
+    // InternalComputation.g:1101:1: rule__ComputationBlock__Group__3__Impl : ( ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* ) ) ;
     public final void rule__ComputationBlock__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1136:1: ( ( ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* ) ) )
-            // InternalComputation.g:1137:1: ( ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* ) )
+            // InternalComputation.g:1105:1: ( ( ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* ) ) )
+            // InternalComputation.g:1106:1: ( ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* ) )
             {
-            // InternalComputation.g:1137:1: ( ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* ) )
-            // InternalComputation.g:1138:2: ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* )
+            // InternalComputation.g:1106:1: ( ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* ) )
+            // InternalComputation.g:1107:2: ( ( rule__ComputationBlock__OperationsAssignment_3 ) ) ( ( rule__ComputationBlock__OperationsAssignment_3 )* )
             {
-            // InternalComputation.g:1138:2: ( ( rule__ComputationBlock__OperationsAssignment_3 ) )
-            // InternalComputation.g:1139:3: ( rule__ComputationBlock__OperationsAssignment_3 )
+            // InternalComputation.g:1107:2: ( ( rule__ComputationBlock__OperationsAssignment_3 ) )
+            // InternalComputation.g:1108:3: ( rule__ComputationBlock__OperationsAssignment_3 )
             {
              before(grammarAccess.getComputationBlockAccess().getOperationsAssignment_3()); 
-            // InternalComputation.g:1140:3: ( rule__ComputationBlock__OperationsAssignment_3 )
-            // InternalComputation.g:1140:4: rule__ComputationBlock__OperationsAssignment_3
+            // InternalComputation.g:1109:3: ( rule__ComputationBlock__OperationsAssignment_3 )
+            // InternalComputation.g:1109:4: rule__ComputationBlock__OperationsAssignment_3
             {
             pushFollow(FOLLOW_18);
             rule__ComputationBlock__OperationsAssignment_3();
@@ -3461,11 +3353,11 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
             }
 
-            // InternalComputation.g:1143:2: ( ( rule__ComputationBlock__OperationsAssignment_3 )* )
-            // InternalComputation.g:1144:3: ( rule__ComputationBlock__OperationsAssignment_3 )*
+            // InternalComputation.g:1112:2: ( ( rule__ComputationBlock__OperationsAssignment_3 )* )
+            // InternalComputation.g:1113:3: ( rule__ComputationBlock__OperationsAssignment_3 )*
             {
              before(grammarAccess.getComputationBlockAccess().getOperationsAssignment_3()); 
-            // InternalComputation.g:1145:3: ( rule__ComputationBlock__OperationsAssignment_3 )*
+            // InternalComputation.g:1114:3: ( rule__ComputationBlock__OperationsAssignment_3 )*
             loop7:
             do {
                 int alt7=2;
@@ -3478,7 +3370,7 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
                 switch (alt7) {
             	case 1 :
-            	    // InternalComputation.g:1145:4: rule__ComputationBlock__OperationsAssignment_3
+            	    // InternalComputation.g:1114:4: rule__ComputationBlock__OperationsAssignment_3
             	    {
             	    pushFollow(FOLLOW_18);
             	    rule__ComputationBlock__OperationsAssignment_3();
@@ -3520,14 +3412,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__4"
-    // InternalComputation.g:1154:1: rule__ComputationBlock__Group__4 : rule__ComputationBlock__Group__4__Impl ;
+    // InternalComputation.g:1123:1: rule__ComputationBlock__Group__4 : rule__ComputationBlock__Group__4__Impl ;
     public final void rule__ComputationBlock__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1158:1: ( rule__ComputationBlock__Group__4__Impl )
-            // InternalComputation.g:1159:2: rule__ComputationBlock__Group__4__Impl
+            // InternalComputation.g:1127:1: ( rule__ComputationBlock__Group__4__Impl )
+            // InternalComputation.g:1128:2: rule__ComputationBlock__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ComputationBlock__Group__4__Impl();
@@ -3553,17 +3445,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__Group__4__Impl"
-    // InternalComputation.g:1165:1: rule__ComputationBlock__Group__4__Impl : ( '}' ) ;
+    // InternalComputation.g:1134:1: rule__ComputationBlock__Group__4__Impl : ( '}' ) ;
     public final void rule__ComputationBlock__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1169:1: ( ( '}' ) )
-            // InternalComputation.g:1170:1: ( '}' )
+            // InternalComputation.g:1138:1: ( ( '}' ) )
+            // InternalComputation.g:1139:1: ( '}' )
             {
-            // InternalComputation.g:1170:1: ( '}' )
-            // InternalComputation.g:1171:2: '}'
+            // InternalComputation.g:1139:1: ( '}' )
+            // InternalComputation.g:1140:2: '}'
             {
              before(grammarAccess.getComputationBlockAccess().getRightCurlyBracketKeyword_4()); 
             match(input,21,FOLLOW_2); 
@@ -3590,14 +3482,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__0"
-    // InternalComputation.g:1181:1: rule__Operation__Group__0 : rule__Operation__Group__0__Impl rule__Operation__Group__1 ;
+    // InternalComputation.g:1150:1: rule__Operation__Group__0 : rule__Operation__Group__0__Impl rule__Operation__Group__1 ;
     public final void rule__Operation__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1185:1: ( rule__Operation__Group__0__Impl rule__Operation__Group__1 )
-            // InternalComputation.g:1186:2: rule__Operation__Group__0__Impl rule__Operation__Group__1
+            // InternalComputation.g:1154:1: ( rule__Operation__Group__0__Impl rule__Operation__Group__1 )
+            // InternalComputation.g:1155:2: rule__Operation__Group__0__Impl rule__Operation__Group__1
             {
             pushFollow(FOLLOW_19);
             rule__Operation__Group__0__Impl();
@@ -3628,21 +3520,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__0__Impl"
-    // InternalComputation.g:1193:1: rule__Operation__Group__0__Impl : ( ( rule__Operation__OpTypeAssignment_0 ) ) ;
+    // InternalComputation.g:1162:1: rule__Operation__Group__0__Impl : ( ( rule__Operation__OpTypeAssignment_0 ) ) ;
     public final void rule__Operation__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1197:1: ( ( ( rule__Operation__OpTypeAssignment_0 ) ) )
-            // InternalComputation.g:1198:1: ( ( rule__Operation__OpTypeAssignment_0 ) )
+            // InternalComputation.g:1166:1: ( ( ( rule__Operation__OpTypeAssignment_0 ) ) )
+            // InternalComputation.g:1167:1: ( ( rule__Operation__OpTypeAssignment_0 ) )
             {
-            // InternalComputation.g:1198:1: ( ( rule__Operation__OpTypeAssignment_0 ) )
-            // InternalComputation.g:1199:2: ( rule__Operation__OpTypeAssignment_0 )
+            // InternalComputation.g:1167:1: ( ( rule__Operation__OpTypeAssignment_0 ) )
+            // InternalComputation.g:1168:2: ( rule__Operation__OpTypeAssignment_0 )
             {
              before(grammarAccess.getOperationAccess().getOpTypeAssignment_0()); 
-            // InternalComputation.g:1200:2: ( rule__Operation__OpTypeAssignment_0 )
-            // InternalComputation.g:1200:3: rule__Operation__OpTypeAssignment_0
+            // InternalComputation.g:1169:2: ( rule__Operation__OpTypeAssignment_0 )
+            // InternalComputation.g:1169:3: rule__Operation__OpTypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__Operation__OpTypeAssignment_0();
@@ -3675,14 +3567,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__1"
-    // InternalComputation.g:1208:1: rule__Operation__Group__1 : rule__Operation__Group__1__Impl rule__Operation__Group__2 ;
+    // InternalComputation.g:1177:1: rule__Operation__Group__1 : rule__Operation__Group__1__Impl rule__Operation__Group__2 ;
     public final void rule__Operation__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1212:1: ( rule__Operation__Group__1__Impl rule__Operation__Group__2 )
-            // InternalComputation.g:1213:2: rule__Operation__Group__1__Impl rule__Operation__Group__2
+            // InternalComputation.g:1181:1: ( rule__Operation__Group__1__Impl rule__Operation__Group__2 )
+            // InternalComputation.g:1182:2: rule__Operation__Group__1__Impl rule__Operation__Group__2
             {
             pushFollow(FOLLOW_20);
             rule__Operation__Group__1__Impl();
@@ -3713,17 +3605,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__1__Impl"
-    // InternalComputation.g:1220:1: rule__Operation__Group__1__Impl : ( ':' ) ;
+    // InternalComputation.g:1189:1: rule__Operation__Group__1__Impl : ( ':' ) ;
     public final void rule__Operation__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1224:1: ( ( ':' ) )
-            // InternalComputation.g:1225:1: ( ':' )
+            // InternalComputation.g:1193:1: ( ( ':' ) )
+            // InternalComputation.g:1194:1: ( ':' )
             {
-            // InternalComputation.g:1225:1: ( ':' )
-            // InternalComputation.g:1226:2: ':'
+            // InternalComputation.g:1194:1: ( ':' )
+            // InternalComputation.g:1195:2: ':'
             {
              before(grammarAccess.getOperationAccess().getColonKeyword_1()); 
             match(input,23,FOLLOW_2); 
@@ -3750,14 +3642,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__2"
-    // InternalComputation.g:1235:1: rule__Operation__Group__2 : rule__Operation__Group__2__Impl rule__Operation__Group__3 ;
+    // InternalComputation.g:1204:1: rule__Operation__Group__2 : rule__Operation__Group__2__Impl rule__Operation__Group__3 ;
     public final void rule__Operation__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1239:1: ( rule__Operation__Group__2__Impl rule__Operation__Group__3 )
-            // InternalComputation.g:1240:2: rule__Operation__Group__2__Impl rule__Operation__Group__3
+            // InternalComputation.g:1208:1: ( rule__Operation__Group__2__Impl rule__Operation__Group__3 )
+            // InternalComputation.g:1209:2: rule__Operation__Group__2__Impl rule__Operation__Group__3
             {
             pushFollow(FOLLOW_8);
             rule__Operation__Group__2__Impl();
@@ -3788,21 +3680,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__2__Impl"
-    // InternalComputation.g:1247:1: rule__Operation__Group__2__Impl : ( ( rule__Operation__OutputExprAssignment_2 ) ) ;
+    // InternalComputation.g:1216:1: rule__Operation__Group__2__Impl : ( ( rule__Operation__OutputExprAssignment_2 ) ) ;
     public final void rule__Operation__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1251:1: ( ( ( rule__Operation__OutputExprAssignment_2 ) ) )
-            // InternalComputation.g:1252:1: ( ( rule__Operation__OutputExprAssignment_2 ) )
+            // InternalComputation.g:1220:1: ( ( ( rule__Operation__OutputExprAssignment_2 ) ) )
+            // InternalComputation.g:1221:1: ( ( rule__Operation__OutputExprAssignment_2 ) )
             {
-            // InternalComputation.g:1252:1: ( ( rule__Operation__OutputExprAssignment_2 ) )
-            // InternalComputation.g:1253:2: ( rule__Operation__OutputExprAssignment_2 )
+            // InternalComputation.g:1221:1: ( ( rule__Operation__OutputExprAssignment_2 ) )
+            // InternalComputation.g:1222:2: ( rule__Operation__OutputExprAssignment_2 )
             {
              before(grammarAccess.getOperationAccess().getOutputExprAssignment_2()); 
-            // InternalComputation.g:1254:2: ( rule__Operation__OutputExprAssignment_2 )
-            // InternalComputation.g:1254:3: rule__Operation__OutputExprAssignment_2
+            // InternalComputation.g:1223:2: ( rule__Operation__OutputExprAssignment_2 )
+            // InternalComputation.g:1223:3: rule__Operation__OutputExprAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__Operation__OutputExprAssignment_2();
@@ -3835,14 +3727,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__3"
-    // InternalComputation.g:1262:1: rule__Operation__Group__3 : rule__Operation__Group__3__Impl rule__Operation__Group__4 ;
+    // InternalComputation.g:1231:1: rule__Operation__Group__3 : rule__Operation__Group__3__Impl rule__Operation__Group__4 ;
     public final void rule__Operation__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1266:1: ( rule__Operation__Group__3__Impl rule__Operation__Group__4 )
-            // InternalComputation.g:1267:2: rule__Operation__Group__3__Impl rule__Operation__Group__4
+            // InternalComputation.g:1235:1: ( rule__Operation__Group__3__Impl rule__Operation__Group__4 )
+            // InternalComputation.g:1236:2: rule__Operation__Group__3__Impl rule__Operation__Group__4
             {
             pushFollow(FOLLOW_20);
             rule__Operation__Group__3__Impl();
@@ -3873,17 +3765,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__3__Impl"
-    // InternalComputation.g:1274:1: rule__Operation__Group__3__Impl : ( '=' ) ;
+    // InternalComputation.g:1243:1: rule__Operation__Group__3__Impl : ( '=' ) ;
     public final void rule__Operation__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1278:1: ( ( '=' ) )
-            // InternalComputation.g:1279:1: ( '=' )
+            // InternalComputation.g:1247:1: ( ( '=' ) )
+            // InternalComputation.g:1248:1: ( '=' )
             {
-            // InternalComputation.g:1279:1: ( '=' )
-            // InternalComputation.g:1280:2: '='
+            // InternalComputation.g:1248:1: ( '=' )
+            // InternalComputation.g:1249:2: '='
             {
              before(grammarAccess.getOperationAccess().getEqualsSignKeyword_3()); 
             match(input,14,FOLLOW_2); 
@@ -3910,14 +3802,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__4"
-    // InternalComputation.g:1289:1: rule__Operation__Group__4 : rule__Operation__Group__4__Impl rule__Operation__Group__5 ;
+    // InternalComputation.g:1258:1: rule__Operation__Group__4 : rule__Operation__Group__4__Impl rule__Operation__Group__5 ;
     public final void rule__Operation__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1293:1: ( rule__Operation__Group__4__Impl rule__Operation__Group__5 )
-            // InternalComputation.g:1294:2: rule__Operation__Group__4__Impl rule__Operation__Group__5
+            // InternalComputation.g:1262:1: ( rule__Operation__Group__4__Impl rule__Operation__Group__5 )
+            // InternalComputation.g:1263:2: rule__Operation__Group__4__Impl rule__Operation__Group__5
             {
             pushFollow(FOLLOW_21);
             rule__Operation__Group__4__Impl();
@@ -3948,21 +3840,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__4__Impl"
-    // InternalComputation.g:1301:1: rule__Operation__Group__4__Impl : ( ( rule__Operation__InputExpr1Assignment_4 ) ) ;
+    // InternalComputation.g:1270:1: rule__Operation__Group__4__Impl : ( ( rule__Operation__InputExpr1Assignment_4 ) ) ;
     public final void rule__Operation__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1305:1: ( ( ( rule__Operation__InputExpr1Assignment_4 ) ) )
-            // InternalComputation.g:1306:1: ( ( rule__Operation__InputExpr1Assignment_4 ) )
+            // InternalComputation.g:1274:1: ( ( ( rule__Operation__InputExpr1Assignment_4 ) ) )
+            // InternalComputation.g:1275:1: ( ( rule__Operation__InputExpr1Assignment_4 ) )
             {
-            // InternalComputation.g:1306:1: ( ( rule__Operation__InputExpr1Assignment_4 ) )
-            // InternalComputation.g:1307:2: ( rule__Operation__InputExpr1Assignment_4 )
+            // InternalComputation.g:1275:1: ( ( rule__Operation__InputExpr1Assignment_4 ) )
+            // InternalComputation.g:1276:2: ( rule__Operation__InputExpr1Assignment_4 )
             {
              before(grammarAccess.getOperationAccess().getInputExpr1Assignment_4()); 
-            // InternalComputation.g:1308:2: ( rule__Operation__InputExpr1Assignment_4 )
-            // InternalComputation.g:1308:3: rule__Operation__InputExpr1Assignment_4
+            // InternalComputation.g:1277:2: ( rule__Operation__InputExpr1Assignment_4 )
+            // InternalComputation.g:1277:3: rule__Operation__InputExpr1Assignment_4
             {
             pushFollow(FOLLOW_2);
             rule__Operation__InputExpr1Assignment_4();
@@ -3995,14 +3887,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__5"
-    // InternalComputation.g:1316:1: rule__Operation__Group__5 : rule__Operation__Group__5__Impl rule__Operation__Group__6 ;
+    // InternalComputation.g:1285:1: rule__Operation__Group__5 : rule__Operation__Group__5__Impl rule__Operation__Group__6 ;
     public final void rule__Operation__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1320:1: ( rule__Operation__Group__5__Impl rule__Operation__Group__6 )
-            // InternalComputation.g:1321:2: rule__Operation__Group__5__Impl rule__Operation__Group__6
+            // InternalComputation.g:1289:1: ( rule__Operation__Group__5__Impl rule__Operation__Group__6 )
+            // InternalComputation.g:1290:2: rule__Operation__Group__5__Impl rule__Operation__Group__6
             {
             pushFollow(FOLLOW_20);
             rule__Operation__Group__5__Impl();
@@ -4033,17 +3925,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__5__Impl"
-    // InternalComputation.g:1328:1: rule__Operation__Group__5__Impl : ( 'op' ) ;
+    // InternalComputation.g:1297:1: rule__Operation__Group__5__Impl : ( 'op' ) ;
     public final void rule__Operation__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1332:1: ( ( 'op' ) )
-            // InternalComputation.g:1333:1: ( 'op' )
+            // InternalComputation.g:1301:1: ( ( 'op' ) )
+            // InternalComputation.g:1302:1: ( 'op' )
             {
-            // InternalComputation.g:1333:1: ( 'op' )
-            // InternalComputation.g:1334:2: 'op'
+            // InternalComputation.g:1302:1: ( 'op' )
+            // InternalComputation.g:1303:2: 'op'
             {
              before(grammarAccess.getOperationAccess().getOpKeyword_5()); 
             match(input,24,FOLLOW_2); 
@@ -4070,14 +3962,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__6"
-    // InternalComputation.g:1343:1: rule__Operation__Group__6 : rule__Operation__Group__6__Impl rule__Operation__Group__7 ;
+    // InternalComputation.g:1312:1: rule__Operation__Group__6 : rule__Operation__Group__6__Impl rule__Operation__Group__7 ;
     public final void rule__Operation__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1347:1: ( rule__Operation__Group__6__Impl rule__Operation__Group__7 )
-            // InternalComputation.g:1348:2: rule__Operation__Group__6__Impl rule__Operation__Group__7
+            // InternalComputation.g:1316:1: ( rule__Operation__Group__6__Impl rule__Operation__Group__7 )
+            // InternalComputation.g:1317:2: rule__Operation__Group__6__Impl rule__Operation__Group__7
             {
             pushFollow(FOLLOW_22);
             rule__Operation__Group__6__Impl();
@@ -4108,21 +4000,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__6__Impl"
-    // InternalComputation.g:1355:1: rule__Operation__Group__6__Impl : ( ( rule__Operation__InputExpr2Assignment_6 ) ) ;
+    // InternalComputation.g:1324:1: rule__Operation__Group__6__Impl : ( ( rule__Operation__InputExpr2Assignment_6 ) ) ;
     public final void rule__Operation__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1359:1: ( ( ( rule__Operation__InputExpr2Assignment_6 ) ) )
-            // InternalComputation.g:1360:1: ( ( rule__Operation__InputExpr2Assignment_6 ) )
+            // InternalComputation.g:1328:1: ( ( ( rule__Operation__InputExpr2Assignment_6 ) ) )
+            // InternalComputation.g:1329:1: ( ( rule__Operation__InputExpr2Assignment_6 ) )
             {
-            // InternalComputation.g:1360:1: ( ( rule__Operation__InputExpr2Assignment_6 ) )
-            // InternalComputation.g:1361:2: ( rule__Operation__InputExpr2Assignment_6 )
+            // InternalComputation.g:1329:1: ( ( rule__Operation__InputExpr2Assignment_6 ) )
+            // InternalComputation.g:1330:2: ( rule__Operation__InputExpr2Assignment_6 )
             {
              before(grammarAccess.getOperationAccess().getInputExpr2Assignment_6()); 
-            // InternalComputation.g:1362:2: ( rule__Operation__InputExpr2Assignment_6 )
-            // InternalComputation.g:1362:3: rule__Operation__InputExpr2Assignment_6
+            // InternalComputation.g:1331:2: ( rule__Operation__InputExpr2Assignment_6 )
+            // InternalComputation.g:1331:3: rule__Operation__InputExpr2Assignment_6
             {
             pushFollow(FOLLOW_2);
             rule__Operation__InputExpr2Assignment_6();
@@ -4155,14 +4047,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__7"
-    // InternalComputation.g:1370:1: rule__Operation__Group__7 : rule__Operation__Group__7__Impl rule__Operation__Group__8 ;
+    // InternalComputation.g:1339:1: rule__Operation__Group__7 : rule__Operation__Group__7__Impl rule__Operation__Group__8 ;
     public final void rule__Operation__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1374:1: ( rule__Operation__Group__7__Impl rule__Operation__Group__8 )
-            // InternalComputation.g:1375:2: rule__Operation__Group__7__Impl rule__Operation__Group__8
+            // InternalComputation.g:1343:1: ( rule__Operation__Group__7__Impl rule__Operation__Group__8 )
+            // InternalComputation.g:1344:2: rule__Operation__Group__7__Impl rule__Operation__Group__8
             {
             pushFollow(FOLLOW_15);
             rule__Operation__Group__7__Impl();
@@ -4193,17 +4085,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__7__Impl"
-    // InternalComputation.g:1382:1: rule__Operation__Group__7__Impl : ( 'x' ) ;
+    // InternalComputation.g:1351:1: rule__Operation__Group__7__Impl : ( 'x' ) ;
     public final void rule__Operation__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1386:1: ( ( 'x' ) )
-            // InternalComputation.g:1387:1: ( 'x' )
+            // InternalComputation.g:1355:1: ( ( 'x' ) )
+            // InternalComputation.g:1356:1: ( 'x' )
             {
-            // InternalComputation.g:1387:1: ( 'x' )
-            // InternalComputation.g:1388:2: 'x'
+            // InternalComputation.g:1356:1: ( 'x' )
+            // InternalComputation.g:1357:2: 'x'
             {
              before(grammarAccess.getOperationAccess().getXKeyword_7()); 
             match(input,25,FOLLOW_2); 
@@ -4230,14 +4122,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__8"
-    // InternalComputation.g:1397:1: rule__Operation__Group__8 : rule__Operation__Group__8__Impl rule__Operation__Group__9 ;
+    // InternalComputation.g:1366:1: rule__Operation__Group__8 : rule__Operation__Group__8__Impl rule__Operation__Group__9 ;
     public final void rule__Operation__Group__8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1401:1: ( rule__Operation__Group__8__Impl rule__Operation__Group__9 )
-            // InternalComputation.g:1402:2: rule__Operation__Group__8__Impl rule__Operation__Group__9
+            // InternalComputation.g:1370:1: ( rule__Operation__Group__8__Impl rule__Operation__Group__9 )
+            // InternalComputation.g:1371:2: rule__Operation__Group__8__Impl rule__Operation__Group__9
             {
             pushFollow(FOLLOW_10);
             rule__Operation__Group__8__Impl();
@@ -4268,21 +4160,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__8__Impl"
-    // InternalComputation.g:1409:1: rule__Operation__Group__8__Impl : ( ( rule__Operation__NumOpsAssignment_8 ) ) ;
+    // InternalComputation.g:1378:1: rule__Operation__Group__8__Impl : ( ( rule__Operation__NumOpsAssignment_8 ) ) ;
     public final void rule__Operation__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1413:1: ( ( ( rule__Operation__NumOpsAssignment_8 ) ) )
-            // InternalComputation.g:1414:1: ( ( rule__Operation__NumOpsAssignment_8 ) )
+            // InternalComputation.g:1382:1: ( ( ( rule__Operation__NumOpsAssignment_8 ) ) )
+            // InternalComputation.g:1383:1: ( ( rule__Operation__NumOpsAssignment_8 ) )
             {
-            // InternalComputation.g:1414:1: ( ( rule__Operation__NumOpsAssignment_8 ) )
-            // InternalComputation.g:1415:2: ( rule__Operation__NumOpsAssignment_8 )
+            // InternalComputation.g:1383:1: ( ( rule__Operation__NumOpsAssignment_8 ) )
+            // InternalComputation.g:1384:2: ( rule__Operation__NumOpsAssignment_8 )
             {
              before(grammarAccess.getOperationAccess().getNumOpsAssignment_8()); 
-            // InternalComputation.g:1416:2: ( rule__Operation__NumOpsAssignment_8 )
-            // InternalComputation.g:1416:3: rule__Operation__NumOpsAssignment_8
+            // InternalComputation.g:1385:2: ( rule__Operation__NumOpsAssignment_8 )
+            // InternalComputation.g:1385:3: rule__Operation__NumOpsAssignment_8
             {
             pushFollow(FOLLOW_2);
             rule__Operation__NumOpsAssignment_8();
@@ -4315,14 +4207,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__9"
-    // InternalComputation.g:1424:1: rule__Operation__Group__9 : rule__Operation__Group__9__Impl ;
+    // InternalComputation.g:1393:1: rule__Operation__Group__9 : rule__Operation__Group__9__Impl ;
     public final void rule__Operation__Group__9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1428:1: ( rule__Operation__Group__9__Impl )
-            // InternalComputation.g:1429:2: rule__Operation__Group__9__Impl
+            // InternalComputation.g:1397:1: ( rule__Operation__Group__9__Impl )
+            // InternalComputation.g:1398:2: rule__Operation__Group__9__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Operation__Group__9__Impl();
@@ -4348,17 +4240,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__Group__9__Impl"
-    // InternalComputation.g:1435:1: rule__Operation__Group__9__Impl : ( ';' ) ;
+    // InternalComputation.g:1404:1: rule__Operation__Group__9__Impl : ( ';' ) ;
     public final void rule__Operation__Group__9__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1439:1: ( ( ';' ) )
-            // InternalComputation.g:1440:1: ( ';' )
+            // InternalComputation.g:1408:1: ( ( ';' ) )
+            // InternalComputation.g:1409:1: ( ';' )
             {
-            // InternalComputation.g:1440:1: ( ';' )
-            // InternalComputation.g:1441:2: ';'
+            // InternalComputation.g:1409:1: ( ';' )
+            // InternalComputation.g:1410:2: ';'
             {
              before(grammarAccess.getOperationAccess().getSemicolonKeyword_9()); 
             match(input,15,FOLLOW_2); 
@@ -4385,14 +4277,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__0"
-    // InternalComputation.g:1451:1: rule__MaxExpression__Group__0 : rule__MaxExpression__Group__0__Impl rule__MaxExpression__Group__1 ;
+    // InternalComputation.g:1420:1: rule__MaxExpression__Group__0 : rule__MaxExpression__Group__0__Impl rule__MaxExpression__Group__1 ;
     public final void rule__MaxExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1455:1: ( rule__MaxExpression__Group__0__Impl rule__MaxExpression__Group__1 )
-            // InternalComputation.g:1456:2: rule__MaxExpression__Group__0__Impl rule__MaxExpression__Group__1
+            // InternalComputation.g:1424:1: ( rule__MaxExpression__Group__0__Impl rule__MaxExpression__Group__1 )
+            // InternalComputation.g:1425:2: rule__MaxExpression__Group__0__Impl rule__MaxExpression__Group__1
             {
             pushFollow(FOLLOW_23);
             rule__MaxExpression__Group__0__Impl();
@@ -4423,17 +4315,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__0__Impl"
-    // InternalComputation.g:1463:1: rule__MaxExpression__Group__0__Impl : ( 'max' ) ;
+    // InternalComputation.g:1432:1: rule__MaxExpression__Group__0__Impl : ( 'max' ) ;
     public final void rule__MaxExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1467:1: ( ( 'max' ) )
-            // InternalComputation.g:1468:1: ( 'max' )
+            // InternalComputation.g:1436:1: ( ( 'max' ) )
+            // InternalComputation.g:1437:1: ( 'max' )
             {
-            // InternalComputation.g:1468:1: ( 'max' )
-            // InternalComputation.g:1469:2: 'max'
+            // InternalComputation.g:1437:1: ( 'max' )
+            // InternalComputation.g:1438:2: 'max'
             {
              before(grammarAccess.getMaxExpressionAccess().getMaxKeyword_0()); 
             match(input,26,FOLLOW_2); 
@@ -4460,14 +4352,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__1"
-    // InternalComputation.g:1478:1: rule__MaxExpression__Group__1 : rule__MaxExpression__Group__1__Impl rule__MaxExpression__Group__2 ;
+    // InternalComputation.g:1447:1: rule__MaxExpression__Group__1 : rule__MaxExpression__Group__1__Impl rule__MaxExpression__Group__2 ;
     public final void rule__MaxExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1482:1: ( rule__MaxExpression__Group__1__Impl rule__MaxExpression__Group__2 )
-            // InternalComputation.g:1483:2: rule__MaxExpression__Group__1__Impl rule__MaxExpression__Group__2
+            // InternalComputation.g:1451:1: ( rule__MaxExpression__Group__1__Impl rule__MaxExpression__Group__2 )
+            // InternalComputation.g:1452:2: rule__MaxExpression__Group__1__Impl rule__MaxExpression__Group__2
             {
             pushFollow(FOLLOW_20);
             rule__MaxExpression__Group__1__Impl();
@@ -4498,17 +4390,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__1__Impl"
-    // InternalComputation.g:1490:1: rule__MaxExpression__Group__1__Impl : ( '(' ) ;
+    // InternalComputation.g:1459:1: rule__MaxExpression__Group__1__Impl : ( '(' ) ;
     public final void rule__MaxExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1494:1: ( ( '(' ) )
-            // InternalComputation.g:1495:1: ( '(' )
+            // InternalComputation.g:1463:1: ( ( '(' ) )
+            // InternalComputation.g:1464:1: ( '(' )
             {
-            // InternalComputation.g:1495:1: ( '(' )
-            // InternalComputation.g:1496:2: '('
+            // InternalComputation.g:1464:1: ( '(' )
+            // InternalComputation.g:1465:2: '('
             {
              before(grammarAccess.getMaxExpressionAccess().getLeftParenthesisKeyword_1()); 
             match(input,27,FOLLOW_2); 
@@ -4535,14 +4427,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__2"
-    // InternalComputation.g:1505:1: rule__MaxExpression__Group__2 : rule__MaxExpression__Group__2__Impl rule__MaxExpression__Group__3 ;
+    // InternalComputation.g:1474:1: rule__MaxExpression__Group__2 : rule__MaxExpression__Group__2__Impl rule__MaxExpression__Group__3 ;
     public final void rule__MaxExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1509:1: ( rule__MaxExpression__Group__2__Impl rule__MaxExpression__Group__3 )
-            // InternalComputation.g:1510:2: rule__MaxExpression__Group__2__Impl rule__MaxExpression__Group__3
+            // InternalComputation.g:1478:1: ( rule__MaxExpression__Group__2__Impl rule__MaxExpression__Group__3 )
+            // InternalComputation.g:1479:2: rule__MaxExpression__Group__2__Impl rule__MaxExpression__Group__3
             {
             pushFollow(FOLLOW_24);
             rule__MaxExpression__Group__2__Impl();
@@ -4573,21 +4465,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__2__Impl"
-    // InternalComputation.g:1517:1: rule__MaxExpression__Group__2__Impl : ( ( rule__MaxExpression__ExprsAssignment_2 ) ) ;
+    // InternalComputation.g:1486:1: rule__MaxExpression__Group__2__Impl : ( ( rule__MaxExpression__ExprsAssignment_2 ) ) ;
     public final void rule__MaxExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1521:1: ( ( ( rule__MaxExpression__ExprsAssignment_2 ) ) )
-            // InternalComputation.g:1522:1: ( ( rule__MaxExpression__ExprsAssignment_2 ) )
+            // InternalComputation.g:1490:1: ( ( ( rule__MaxExpression__ExprsAssignment_2 ) ) )
+            // InternalComputation.g:1491:1: ( ( rule__MaxExpression__ExprsAssignment_2 ) )
             {
-            // InternalComputation.g:1522:1: ( ( rule__MaxExpression__ExprsAssignment_2 ) )
-            // InternalComputation.g:1523:2: ( rule__MaxExpression__ExprsAssignment_2 )
+            // InternalComputation.g:1491:1: ( ( rule__MaxExpression__ExprsAssignment_2 ) )
+            // InternalComputation.g:1492:2: ( rule__MaxExpression__ExprsAssignment_2 )
             {
              before(grammarAccess.getMaxExpressionAccess().getExprsAssignment_2()); 
-            // InternalComputation.g:1524:2: ( rule__MaxExpression__ExprsAssignment_2 )
-            // InternalComputation.g:1524:3: rule__MaxExpression__ExprsAssignment_2
+            // InternalComputation.g:1493:2: ( rule__MaxExpression__ExprsAssignment_2 )
+            // InternalComputation.g:1493:3: rule__MaxExpression__ExprsAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__MaxExpression__ExprsAssignment_2();
@@ -4620,14 +4512,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__3"
-    // InternalComputation.g:1532:1: rule__MaxExpression__Group__3 : rule__MaxExpression__Group__3__Impl rule__MaxExpression__Group__4 ;
+    // InternalComputation.g:1501:1: rule__MaxExpression__Group__3 : rule__MaxExpression__Group__3__Impl rule__MaxExpression__Group__4 ;
     public final void rule__MaxExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1536:1: ( rule__MaxExpression__Group__3__Impl rule__MaxExpression__Group__4 )
-            // InternalComputation.g:1537:2: rule__MaxExpression__Group__3__Impl rule__MaxExpression__Group__4
+            // InternalComputation.g:1505:1: ( rule__MaxExpression__Group__3__Impl rule__MaxExpression__Group__4 )
+            // InternalComputation.g:1506:2: rule__MaxExpression__Group__3__Impl rule__MaxExpression__Group__4
             {
             pushFollow(FOLLOW_25);
             rule__MaxExpression__Group__3__Impl();
@@ -4658,24 +4550,24 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__3__Impl"
-    // InternalComputation.g:1544:1: rule__MaxExpression__Group__3__Impl : ( ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* ) ) ;
+    // InternalComputation.g:1513:1: rule__MaxExpression__Group__3__Impl : ( ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* ) ) ;
     public final void rule__MaxExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1548:1: ( ( ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* ) ) )
-            // InternalComputation.g:1549:1: ( ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* ) )
+            // InternalComputation.g:1517:1: ( ( ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* ) ) )
+            // InternalComputation.g:1518:1: ( ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* ) )
             {
-            // InternalComputation.g:1549:1: ( ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* ) )
-            // InternalComputation.g:1550:2: ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* )
+            // InternalComputation.g:1518:1: ( ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* ) )
+            // InternalComputation.g:1519:2: ( ( rule__MaxExpression__Group_3__0 ) ) ( ( rule__MaxExpression__Group_3__0 )* )
             {
-            // InternalComputation.g:1550:2: ( ( rule__MaxExpression__Group_3__0 ) )
-            // InternalComputation.g:1551:3: ( rule__MaxExpression__Group_3__0 )
+            // InternalComputation.g:1519:2: ( ( rule__MaxExpression__Group_3__0 ) )
+            // InternalComputation.g:1520:3: ( rule__MaxExpression__Group_3__0 )
             {
              before(grammarAccess.getMaxExpressionAccess().getGroup_3()); 
-            // InternalComputation.g:1552:3: ( rule__MaxExpression__Group_3__0 )
-            // InternalComputation.g:1552:4: rule__MaxExpression__Group_3__0
+            // InternalComputation.g:1521:3: ( rule__MaxExpression__Group_3__0 )
+            // InternalComputation.g:1521:4: rule__MaxExpression__Group_3__0
             {
             pushFollow(FOLLOW_26);
             rule__MaxExpression__Group_3__0();
@@ -4689,11 +4581,11 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
             }
 
-            // InternalComputation.g:1555:2: ( ( rule__MaxExpression__Group_3__0 )* )
-            // InternalComputation.g:1556:3: ( rule__MaxExpression__Group_3__0 )*
+            // InternalComputation.g:1524:2: ( ( rule__MaxExpression__Group_3__0 )* )
+            // InternalComputation.g:1525:3: ( rule__MaxExpression__Group_3__0 )*
             {
              before(grammarAccess.getMaxExpressionAccess().getGroup_3()); 
-            // InternalComputation.g:1557:3: ( rule__MaxExpression__Group_3__0 )*
+            // InternalComputation.g:1526:3: ( rule__MaxExpression__Group_3__0 )*
             loop8:
             do {
                 int alt8=2;
@@ -4706,7 +4598,7 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalComputation.g:1557:4: rule__MaxExpression__Group_3__0
+            	    // InternalComputation.g:1526:4: rule__MaxExpression__Group_3__0
             	    {
             	    pushFollow(FOLLOW_26);
             	    rule__MaxExpression__Group_3__0();
@@ -4748,14 +4640,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__4"
-    // InternalComputation.g:1566:1: rule__MaxExpression__Group__4 : rule__MaxExpression__Group__4__Impl ;
+    // InternalComputation.g:1535:1: rule__MaxExpression__Group__4 : rule__MaxExpression__Group__4__Impl ;
     public final void rule__MaxExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1570:1: ( rule__MaxExpression__Group__4__Impl )
-            // InternalComputation.g:1571:2: rule__MaxExpression__Group__4__Impl
+            // InternalComputation.g:1539:1: ( rule__MaxExpression__Group__4__Impl )
+            // InternalComputation.g:1540:2: rule__MaxExpression__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__MaxExpression__Group__4__Impl();
@@ -4781,17 +4673,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group__4__Impl"
-    // InternalComputation.g:1577:1: rule__MaxExpression__Group__4__Impl : ( ')' ) ;
+    // InternalComputation.g:1546:1: rule__MaxExpression__Group__4__Impl : ( ')' ) ;
     public final void rule__MaxExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1581:1: ( ( ')' ) )
-            // InternalComputation.g:1582:1: ( ')' )
+            // InternalComputation.g:1550:1: ( ( ')' ) )
+            // InternalComputation.g:1551:1: ( ')' )
             {
-            // InternalComputation.g:1582:1: ( ')' )
-            // InternalComputation.g:1583:2: ')'
+            // InternalComputation.g:1551:1: ( ')' )
+            // InternalComputation.g:1552:2: ')'
             {
              before(grammarAccess.getMaxExpressionAccess().getRightParenthesisKeyword_4()); 
             match(input,28,FOLLOW_2); 
@@ -4818,14 +4710,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group_3__0"
-    // InternalComputation.g:1593:1: rule__MaxExpression__Group_3__0 : rule__MaxExpression__Group_3__0__Impl rule__MaxExpression__Group_3__1 ;
+    // InternalComputation.g:1562:1: rule__MaxExpression__Group_3__0 : rule__MaxExpression__Group_3__0__Impl rule__MaxExpression__Group_3__1 ;
     public final void rule__MaxExpression__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1597:1: ( rule__MaxExpression__Group_3__0__Impl rule__MaxExpression__Group_3__1 )
-            // InternalComputation.g:1598:2: rule__MaxExpression__Group_3__0__Impl rule__MaxExpression__Group_3__1
+            // InternalComputation.g:1566:1: ( rule__MaxExpression__Group_3__0__Impl rule__MaxExpression__Group_3__1 )
+            // InternalComputation.g:1567:2: rule__MaxExpression__Group_3__0__Impl rule__MaxExpression__Group_3__1
             {
             pushFollow(FOLLOW_20);
             rule__MaxExpression__Group_3__0__Impl();
@@ -4856,17 +4748,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group_3__0__Impl"
-    // InternalComputation.g:1605:1: rule__MaxExpression__Group_3__0__Impl : ( ',' ) ;
+    // InternalComputation.g:1574:1: rule__MaxExpression__Group_3__0__Impl : ( ',' ) ;
     public final void rule__MaxExpression__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1609:1: ( ( ',' ) )
-            // InternalComputation.g:1610:1: ( ',' )
+            // InternalComputation.g:1578:1: ( ( ',' ) )
+            // InternalComputation.g:1579:1: ( ',' )
             {
-            // InternalComputation.g:1610:1: ( ',' )
-            // InternalComputation.g:1611:2: ','
+            // InternalComputation.g:1579:1: ( ',' )
+            // InternalComputation.g:1580:2: ','
             {
              before(grammarAccess.getMaxExpressionAccess().getCommaKeyword_3_0()); 
             match(input,29,FOLLOW_2); 
@@ -4893,14 +4785,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group_3__1"
-    // InternalComputation.g:1620:1: rule__MaxExpression__Group_3__1 : rule__MaxExpression__Group_3__1__Impl ;
+    // InternalComputation.g:1589:1: rule__MaxExpression__Group_3__1 : rule__MaxExpression__Group_3__1__Impl ;
     public final void rule__MaxExpression__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1624:1: ( rule__MaxExpression__Group_3__1__Impl )
-            // InternalComputation.g:1625:2: rule__MaxExpression__Group_3__1__Impl
+            // InternalComputation.g:1593:1: ( rule__MaxExpression__Group_3__1__Impl )
+            // InternalComputation.g:1594:2: rule__MaxExpression__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__MaxExpression__Group_3__1__Impl();
@@ -4926,21 +4818,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__Group_3__1__Impl"
-    // InternalComputation.g:1631:1: rule__MaxExpression__Group_3__1__Impl : ( ( rule__MaxExpression__ExprsAssignment_3_1 ) ) ;
+    // InternalComputation.g:1600:1: rule__MaxExpression__Group_3__1__Impl : ( ( rule__MaxExpression__ExprsAssignment_3_1 ) ) ;
     public final void rule__MaxExpression__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1635:1: ( ( ( rule__MaxExpression__ExprsAssignment_3_1 ) ) )
-            // InternalComputation.g:1636:1: ( ( rule__MaxExpression__ExprsAssignment_3_1 ) )
+            // InternalComputation.g:1604:1: ( ( ( rule__MaxExpression__ExprsAssignment_3_1 ) ) )
+            // InternalComputation.g:1605:1: ( ( rule__MaxExpression__ExprsAssignment_3_1 ) )
             {
-            // InternalComputation.g:1636:1: ( ( rule__MaxExpression__ExprsAssignment_3_1 ) )
-            // InternalComputation.g:1637:2: ( rule__MaxExpression__ExprsAssignment_3_1 )
+            // InternalComputation.g:1605:1: ( ( rule__MaxExpression__ExprsAssignment_3_1 ) )
+            // InternalComputation.g:1606:2: ( rule__MaxExpression__ExprsAssignment_3_1 )
             {
              before(grammarAccess.getMaxExpressionAccess().getExprsAssignment_3_1()); 
-            // InternalComputation.g:1638:2: ( rule__MaxExpression__ExprsAssignment_3_1 )
-            // InternalComputation.g:1638:3: rule__MaxExpression__ExprsAssignment_3_1
+            // InternalComputation.g:1607:2: ( rule__MaxExpression__ExprsAssignment_3_1 )
+            // InternalComputation.g:1607:3: rule__MaxExpression__ExprsAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__MaxExpression__ExprsAssignment_3_1();
@@ -4972,23 +4864,23 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
     // $ANTLR end "rule__MaxExpression__Group_3__1__Impl"
 
 
-    // $ANTLR start "rule__SumExpression__Group__0"
-    // InternalComputation.g:1647:1: rule__SumExpression__Group__0 : rule__SumExpression__Group__0__Impl rule__SumExpression__Group__1 ;
-    public final void rule__SumExpression__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__AddExpression__Group__0"
+    // InternalComputation.g:1616:1: rule__AddExpression__Group__0 : rule__AddExpression__Group__0__Impl rule__AddExpression__Group__1 ;
+    public final void rule__AddExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1651:1: ( rule__SumExpression__Group__0__Impl rule__SumExpression__Group__1 )
-            // InternalComputation.g:1652:2: rule__SumExpression__Group__0__Impl rule__SumExpression__Group__1
+            // InternalComputation.g:1620:1: ( rule__AddExpression__Group__0__Impl rule__AddExpression__Group__1 )
+            // InternalComputation.g:1621:2: rule__AddExpression__Group__0__Impl rule__AddExpression__Group__1
             {
-            pushFollow(FOLLOW_23);
-            rule__SumExpression__Group__0__Impl();
+            pushFollow(FOLLOW_20);
+            rule__AddExpression__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__SumExpression__Group__1();
+            rule__AddExpression__Group__1();
 
             state._fsp--;
 
@@ -5007,25 +4899,25 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__SumExpression__Group__0"
+    // $ANTLR end "rule__AddExpression__Group__0"
 
 
-    // $ANTLR start "rule__SumExpression__Group__0__Impl"
-    // InternalComputation.g:1659:1: rule__SumExpression__Group__0__Impl : ( 'sum' ) ;
-    public final void rule__SumExpression__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddExpression__Group__0__Impl"
+    // InternalComputation.g:1628:1: rule__AddExpression__Group__0__Impl : ( '(' ) ;
+    public final void rule__AddExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1663:1: ( ( 'sum' ) )
-            // InternalComputation.g:1664:1: ( 'sum' )
+            // InternalComputation.g:1632:1: ( ( '(' ) )
+            // InternalComputation.g:1633:1: ( '(' )
             {
-            // InternalComputation.g:1664:1: ( 'sum' )
-            // InternalComputation.g:1665:2: 'sum'
+            // InternalComputation.g:1633:1: ( '(' )
+            // InternalComputation.g:1634:2: '('
             {
-             before(grammarAccess.getSumExpressionAccess().getSumKeyword_0()); 
-            match(input,30,FOLLOW_2); 
-             after(grammarAccess.getSumExpressionAccess().getSumKeyword_0()); 
+             before(grammarAccess.getAddExpressionAccess().getLeftParenthesisKeyword_0()); 
+            match(input,27,FOLLOW_2); 
+             after(grammarAccess.getAddExpressionAccess().getLeftParenthesisKeyword_0()); 
 
             }
 
@@ -5044,26 +4936,26 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__SumExpression__Group__0__Impl"
+    // $ANTLR end "rule__AddExpression__Group__0__Impl"
 
 
-    // $ANTLR start "rule__SumExpression__Group__1"
-    // InternalComputation.g:1674:1: rule__SumExpression__Group__1 : rule__SumExpression__Group__1__Impl rule__SumExpression__Group__2 ;
-    public final void rule__SumExpression__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__AddExpression__Group__1"
+    // InternalComputation.g:1643:1: rule__AddExpression__Group__1 : rule__AddExpression__Group__1__Impl rule__AddExpression__Group__2 ;
+    public final void rule__AddExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1678:1: ( rule__SumExpression__Group__1__Impl rule__SumExpression__Group__2 )
-            // InternalComputation.g:1679:2: rule__SumExpression__Group__1__Impl rule__SumExpression__Group__2
+            // InternalComputation.g:1647:1: ( rule__AddExpression__Group__1__Impl rule__AddExpression__Group__2 )
+            // InternalComputation.g:1648:2: rule__AddExpression__Group__1__Impl rule__AddExpression__Group__2
             {
-            pushFollow(FOLLOW_20);
-            rule__SumExpression__Group__1__Impl();
+            pushFollow(FOLLOW_27);
+            rule__AddExpression__Group__1__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__SumExpression__Group__2();
+            rule__AddExpression__Group__2();
 
             state._fsp--;
 
@@ -5082,25 +4974,35 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__SumExpression__Group__1"
+    // $ANTLR end "rule__AddExpression__Group__1"
 
 
-    // $ANTLR start "rule__SumExpression__Group__1__Impl"
-    // InternalComputation.g:1686:1: rule__SumExpression__Group__1__Impl : ( '(' ) ;
-    public final void rule__SumExpression__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddExpression__Group__1__Impl"
+    // InternalComputation.g:1655:1: rule__AddExpression__Group__1__Impl : ( ( rule__AddExpression__Op1Assignment_1 ) ) ;
+    public final void rule__AddExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1690:1: ( ( '(' ) )
-            // InternalComputation.g:1691:1: ( '(' )
+            // InternalComputation.g:1659:1: ( ( ( rule__AddExpression__Op1Assignment_1 ) ) )
+            // InternalComputation.g:1660:1: ( ( rule__AddExpression__Op1Assignment_1 ) )
             {
-            // InternalComputation.g:1691:1: ( '(' )
-            // InternalComputation.g:1692:2: '('
+            // InternalComputation.g:1660:1: ( ( rule__AddExpression__Op1Assignment_1 ) )
+            // InternalComputation.g:1661:2: ( rule__AddExpression__Op1Assignment_1 )
             {
-             before(grammarAccess.getSumExpressionAccess().getLeftParenthesisKeyword_1()); 
-            match(input,27,FOLLOW_2); 
-             after(grammarAccess.getSumExpressionAccess().getLeftParenthesisKeyword_1()); 
+             before(grammarAccess.getAddExpressionAccess().getOp1Assignment_1()); 
+            // InternalComputation.g:1662:2: ( rule__AddExpression__Op1Assignment_1 )
+            // InternalComputation.g:1662:3: rule__AddExpression__Op1Assignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__AddExpression__Op1Assignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAddExpressionAccess().getOp1Assignment_1()); 
 
             }
 
@@ -5119,26 +5021,26 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__SumExpression__Group__1__Impl"
+    // $ANTLR end "rule__AddExpression__Group__1__Impl"
 
 
-    // $ANTLR start "rule__SumExpression__Group__2"
-    // InternalComputation.g:1701:1: rule__SumExpression__Group__2 : rule__SumExpression__Group__2__Impl rule__SumExpression__Group__3 ;
-    public final void rule__SumExpression__Group__2() throws RecognitionException {
+    // $ANTLR start "rule__AddExpression__Group__2"
+    // InternalComputation.g:1670:1: rule__AddExpression__Group__2 : rule__AddExpression__Group__2__Impl rule__AddExpression__Group__3 ;
+    public final void rule__AddExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1705:1: ( rule__SumExpression__Group__2__Impl rule__SumExpression__Group__3 )
-            // InternalComputation.g:1706:2: rule__SumExpression__Group__2__Impl rule__SumExpression__Group__3
+            // InternalComputation.g:1674:1: ( rule__AddExpression__Group__2__Impl rule__AddExpression__Group__3 )
+            // InternalComputation.g:1675:2: rule__AddExpression__Group__2__Impl rule__AddExpression__Group__3
             {
-            pushFollow(FOLLOW_24);
-            rule__SumExpression__Group__2__Impl();
+            pushFollow(FOLLOW_20);
+            rule__AddExpression__Group__2__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__SumExpression__Group__3();
+            rule__AddExpression__Group__3();
 
             state._fsp--;
 
@@ -5157,35 +5059,25 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__SumExpression__Group__2"
+    // $ANTLR end "rule__AddExpression__Group__2"
 
 
-    // $ANTLR start "rule__SumExpression__Group__2__Impl"
-    // InternalComputation.g:1713:1: rule__SumExpression__Group__2__Impl : ( ( rule__SumExpression__ExprsAssignment_2 ) ) ;
-    public final void rule__SumExpression__Group__2__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddExpression__Group__2__Impl"
+    // InternalComputation.g:1682:1: rule__AddExpression__Group__2__Impl : ( '+' ) ;
+    public final void rule__AddExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1717:1: ( ( ( rule__SumExpression__ExprsAssignment_2 ) ) )
-            // InternalComputation.g:1718:1: ( ( rule__SumExpression__ExprsAssignment_2 ) )
+            // InternalComputation.g:1686:1: ( ( '+' ) )
+            // InternalComputation.g:1687:1: ( '+' )
             {
-            // InternalComputation.g:1718:1: ( ( rule__SumExpression__ExprsAssignment_2 ) )
-            // InternalComputation.g:1719:2: ( rule__SumExpression__ExprsAssignment_2 )
+            // InternalComputation.g:1687:1: ( '+' )
+            // InternalComputation.g:1688:2: '+'
             {
-             before(grammarAccess.getSumExpressionAccess().getExprsAssignment_2()); 
-            // InternalComputation.g:1720:2: ( rule__SumExpression__ExprsAssignment_2 )
-            // InternalComputation.g:1720:3: rule__SumExpression__ExprsAssignment_2
-            {
-            pushFollow(FOLLOW_2);
-            rule__SumExpression__ExprsAssignment_2();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getSumExpressionAccess().getExprsAssignment_2()); 
+             before(grammarAccess.getAddExpressionAccess().getPlusSignKeyword_2()); 
+            match(input,30,FOLLOW_2); 
+             after(grammarAccess.getAddExpressionAccess().getPlusSignKeyword_2()); 
 
             }
 
@@ -5204,26 +5096,26 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__SumExpression__Group__2__Impl"
+    // $ANTLR end "rule__AddExpression__Group__2__Impl"
 
 
-    // $ANTLR start "rule__SumExpression__Group__3"
-    // InternalComputation.g:1728:1: rule__SumExpression__Group__3 : rule__SumExpression__Group__3__Impl rule__SumExpression__Group__4 ;
-    public final void rule__SumExpression__Group__3() throws RecognitionException {
+    // $ANTLR start "rule__AddExpression__Group__3"
+    // InternalComputation.g:1697:1: rule__AddExpression__Group__3 : rule__AddExpression__Group__3__Impl rule__AddExpression__Group__4 ;
+    public final void rule__AddExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1732:1: ( rule__SumExpression__Group__3__Impl rule__SumExpression__Group__4 )
-            // InternalComputation.g:1733:2: rule__SumExpression__Group__3__Impl rule__SumExpression__Group__4
+            // InternalComputation.g:1701:1: ( rule__AddExpression__Group__3__Impl rule__AddExpression__Group__4 )
+            // InternalComputation.g:1702:2: rule__AddExpression__Group__3__Impl rule__AddExpression__Group__4
             {
             pushFollow(FOLLOW_25);
-            rule__SumExpression__Group__3__Impl();
+            rule__AddExpression__Group__3__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__SumExpression__Group__4();
+            rule__AddExpression__Group__4();
 
             state._fsp--;
 
@@ -5242,78 +5134,35 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__SumExpression__Group__3"
+    // $ANTLR end "rule__AddExpression__Group__3"
 
 
-    // $ANTLR start "rule__SumExpression__Group__3__Impl"
-    // InternalComputation.g:1740:1: rule__SumExpression__Group__3__Impl : ( ( ( rule__SumExpression__Group_3__0 ) ) ( ( rule__SumExpression__Group_3__0 )* ) ) ;
-    public final void rule__SumExpression__Group__3__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddExpression__Group__3__Impl"
+    // InternalComputation.g:1709:1: rule__AddExpression__Group__3__Impl : ( ( rule__AddExpression__Op2Assignment_3 ) ) ;
+    public final void rule__AddExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1744:1: ( ( ( ( rule__SumExpression__Group_3__0 ) ) ( ( rule__SumExpression__Group_3__0 )* ) ) )
-            // InternalComputation.g:1745:1: ( ( ( rule__SumExpression__Group_3__0 ) ) ( ( rule__SumExpression__Group_3__0 )* ) )
-            {
-            // InternalComputation.g:1745:1: ( ( ( rule__SumExpression__Group_3__0 ) ) ( ( rule__SumExpression__Group_3__0 )* ) )
-            // InternalComputation.g:1746:2: ( ( rule__SumExpression__Group_3__0 ) ) ( ( rule__SumExpression__Group_3__0 )* )
+            // InternalComputation.g:1713:1: ( ( ( rule__AddExpression__Op2Assignment_3 ) ) )
+            // InternalComputation.g:1714:1: ( ( rule__AddExpression__Op2Assignment_3 ) )
             {
-            // InternalComputation.g:1746:2: ( ( rule__SumExpression__Group_3__0 ) )
-            // InternalComputation.g:1747:3: ( rule__SumExpression__Group_3__0 )
+            // InternalComputation.g:1714:1: ( ( rule__AddExpression__Op2Assignment_3 ) )
+            // InternalComputation.g:1715:2: ( rule__AddExpression__Op2Assignment_3 )
             {
-             before(grammarAccess.getSumExpressionAccess().getGroup_3()); 
-            // InternalComputation.g:1748:3: ( rule__SumExpression__Group_3__0 )
-            // InternalComputation.g:1748:4: rule__SumExpression__Group_3__0
+             before(grammarAccess.getAddExpressionAccess().getOp2Assignment_3()); 
+            // InternalComputation.g:1716:2: ( rule__AddExpression__Op2Assignment_3 )
+            // InternalComputation.g:1716:3: rule__AddExpression__Op2Assignment_3
             {
-            pushFollow(FOLLOW_26);
-            rule__SumExpression__Group_3__0();
+            pushFollow(FOLLOW_2);
+            rule__AddExpression__Op2Assignment_3();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getSumExpressionAccess().getGroup_3()); 
-
-            }
-
-            // InternalComputation.g:1751:2: ( ( rule__SumExpression__Group_3__0 )* )
-            // InternalComputation.g:1752:3: ( rule__SumExpression__Group_3__0 )*
-            {
-             before(grammarAccess.getSumExpressionAccess().getGroup_3()); 
-            // InternalComputation.g:1753:3: ( rule__SumExpression__Group_3__0 )*
-            loop9:
-            do {
-                int alt9=2;
-                int LA9_0 = input.LA(1);
-
-                if ( (LA9_0==29) ) {
-                    alt9=1;
-                }
-
-
-                switch (alt9) {
-            	case 1 :
-            	    // InternalComputation.g:1753:4: rule__SumExpression__Group_3__0
-            	    {
-            	    pushFollow(FOLLOW_26);
-            	    rule__SumExpression__Group_3__0();
-
-            	    state._fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop9;
-                }
-            } while (true);
-
-             after(grammarAccess.getSumExpressionAccess().getGroup_3()); 
-
-            }
-
+             after(grammarAccess.getAddExpressionAccess().getOp2Assignment_3()); 
 
             }
 
@@ -5332,21 +5181,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__SumExpression__Group__3__Impl"
+    // $ANTLR end "rule__AddExpression__Group__3__Impl"
 
 
-    // $ANTLR start "rule__SumExpression__Group__4"
-    // InternalComputation.g:1762:1: rule__SumExpression__Group__4 : rule__SumExpression__Group__4__Impl ;
-    public final void rule__SumExpression__Group__4() throws RecognitionException {
+    // $ANTLR start "rule__AddExpression__Group__4"
+    // InternalComputation.g:1724:1: rule__AddExpression__Group__4 : rule__AddExpression__Group__4__Impl ;
+    public final void rule__AddExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1766:1: ( rule__SumExpression__Group__4__Impl )
-            // InternalComputation.g:1767:2: rule__SumExpression__Group__4__Impl
+            // InternalComputation.g:1728:1: ( rule__AddExpression__Group__4__Impl )
+            // InternalComputation.g:1729:2: rule__AddExpression__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__SumExpression__Group__4__Impl();
+            rule__AddExpression__Group__4__Impl();
 
             state._fsp--;
 
@@ -5365,25 +5214,25 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__SumExpression__Group__4"
+    // $ANTLR end "rule__AddExpression__Group__4"
 
 
-    // $ANTLR start "rule__SumExpression__Group__4__Impl"
-    // InternalComputation.g:1773:1: rule__SumExpression__Group__4__Impl : ( ')' ) ;
-    public final void rule__SumExpression__Group__4__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddExpression__Group__4__Impl"
+    // InternalComputation.g:1735:1: rule__AddExpression__Group__4__Impl : ( ')' ) ;
+    public final void rule__AddExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1777:1: ( ( ')' ) )
-            // InternalComputation.g:1778:1: ( ')' )
+            // InternalComputation.g:1739:1: ( ( ')' ) )
+            // InternalComputation.g:1740:1: ( ')' )
             {
-            // InternalComputation.g:1778:1: ( ')' )
-            // InternalComputation.g:1779:2: ')'
+            // InternalComputation.g:1740:1: ( ')' )
+            // InternalComputation.g:1741:2: ')'
             {
-             before(grammarAccess.getSumExpressionAccess().getRightParenthesisKeyword_4()); 
+             before(grammarAccess.getAddExpressionAccess().getRightParenthesisKeyword_4()); 
             match(input,28,FOLLOW_2); 
-             after(grammarAccess.getSumExpressionAccess().getRightParenthesisKeyword_4()); 
+             after(grammarAccess.getAddExpressionAccess().getRightParenthesisKeyword_4()); 
 
             }
 
@@ -5402,26 +5251,26 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__SumExpression__Group__4__Impl"
+    // $ANTLR end "rule__AddExpression__Group__4__Impl"
 
 
-    // $ANTLR start "rule__SumExpression__Group_3__0"
-    // InternalComputation.g:1789:1: rule__SumExpression__Group_3__0 : rule__SumExpression__Group_3__0__Impl rule__SumExpression__Group_3__1 ;
-    public final void rule__SumExpression__Group_3__0() throws RecognitionException {
+    // $ANTLR start "rule__OperandTerm__Group__0"
+    // InternalComputation.g:1751:1: rule__OperandTerm__Group__0 : rule__OperandTerm__Group__0__Impl rule__OperandTerm__Group__1 ;
+    public final void rule__OperandTerm__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1793:1: ( rule__SumExpression__Group_3__0__Impl rule__SumExpression__Group_3__1 )
-            // InternalComputation.g:1794:2: rule__SumExpression__Group_3__0__Impl rule__SumExpression__Group_3__1
+            // InternalComputation.g:1755:1: ( rule__OperandTerm__Group__0__Impl rule__OperandTerm__Group__1 )
+            // InternalComputation.g:1756:2: rule__OperandTerm__Group__0__Impl rule__OperandTerm__Group__1
             {
             pushFollow(FOLLOW_20);
-            rule__SumExpression__Group_3__0__Impl();
+            rule__OperandTerm__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__SumExpression__Group_3__1();
+            rule__OperandTerm__Group__1();
 
             state._fsp--;
 
@@ -5440,25 +5289,46 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__SumExpression__Group_3__0"
+    // $ANTLR end "rule__OperandTerm__Group__0"
 
 
-    // $ANTLR start "rule__SumExpression__Group_3__0__Impl"
-    // InternalComputation.g:1801:1: rule__SumExpression__Group_3__0__Impl : ( ',' ) ;
-    public final void rule__SumExpression__Group_3__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__OperandTerm__Group__0__Impl"
+    // InternalComputation.g:1763:1: rule__OperandTerm__Group__0__Impl : ( ( rule__OperandTerm__CoefAssignment_0 )? ) ;
+    public final void rule__OperandTerm__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1805:1: ( ( ',' ) )
-            // InternalComputation.g:1806:1: ( ',' )
+            // InternalComputation.g:1767:1: ( ( ( rule__OperandTerm__CoefAssignment_0 )? ) )
+            // InternalComputation.g:1768:1: ( ( rule__OperandTerm__CoefAssignment_0 )? )
             {
-            // InternalComputation.g:1806:1: ( ',' )
-            // InternalComputation.g:1807:2: ','
+            // InternalComputation.g:1768:1: ( ( rule__OperandTerm__CoefAssignment_0 )? )
+            // InternalComputation.g:1769:2: ( rule__OperandTerm__CoefAssignment_0 )?
             {
-             before(grammarAccess.getSumExpressionAccess().getCommaKeyword_3_0()); 
-            match(input,29,FOLLOW_2); 
-             after(grammarAccess.getSumExpressionAccess().getCommaKeyword_3_0()); 
+             before(grammarAccess.getOperandTermAccess().getCoefAssignment_0()); 
+            // InternalComputation.g:1770:2: ( rule__OperandTerm__CoefAssignment_0 )?
+            int alt9=2;
+            int LA9_0 = input.LA(1);
+
+            if ( (LA9_0==RULE_INT) ) {
+                alt9=1;
+            }
+            switch (alt9) {
+                case 1 :
+                    // InternalComputation.g:1770:3: rule__OperandTerm__CoefAssignment_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__OperandTerm__CoefAssignment_0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getOperandTermAccess().getCoefAssignment_0()); 
 
             }
 
@@ -5477,21 +5347,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__SumExpression__Group_3__0__Impl"
+    // $ANTLR end "rule__OperandTerm__Group__0__Impl"
 
 
-    // $ANTLR start "rule__SumExpression__Group_3__1"
-    // InternalComputation.g:1816:1: rule__SumExpression__Group_3__1 : rule__SumExpression__Group_3__1__Impl ;
-    public final void rule__SumExpression__Group_3__1() throws RecognitionException {
+    // $ANTLR start "rule__OperandTerm__Group__1"
+    // InternalComputation.g:1778:1: rule__OperandTerm__Group__1 : rule__OperandTerm__Group__1__Impl ;
+    public final void rule__OperandTerm__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1820:1: ( rule__SumExpression__Group_3__1__Impl )
-            // InternalComputation.g:1821:2: rule__SumExpression__Group_3__1__Impl
+            // InternalComputation.g:1782:1: ( rule__OperandTerm__Group__1__Impl )
+            // InternalComputation.g:1783:2: rule__OperandTerm__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__SumExpression__Group_3__1__Impl();
+            rule__OperandTerm__Group__1__Impl();
 
             state._fsp--;
 
@@ -5510,35 +5380,35 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__SumExpression__Group_3__1"
+    // $ANTLR end "rule__OperandTerm__Group__1"
 
 
-    // $ANTLR start "rule__SumExpression__Group_3__1__Impl"
-    // InternalComputation.g:1827:1: rule__SumExpression__Group_3__1__Impl : ( ( rule__SumExpression__ExprsAssignment_3_1 ) ) ;
-    public final void rule__SumExpression__Group_3__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__OperandTerm__Group__1__Impl"
+    // InternalComputation.g:1789:1: rule__OperandTerm__Group__1__Impl : ( ( rule__OperandTerm__NameAssignment_1 ) ) ;
+    public final void rule__OperandTerm__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1831:1: ( ( ( rule__SumExpression__ExprsAssignment_3_1 ) ) )
-            // InternalComputation.g:1832:1: ( ( rule__SumExpression__ExprsAssignment_3_1 ) )
+            // InternalComputation.g:1793:1: ( ( ( rule__OperandTerm__NameAssignment_1 ) ) )
+            // InternalComputation.g:1794:1: ( ( rule__OperandTerm__NameAssignment_1 ) )
             {
-            // InternalComputation.g:1832:1: ( ( rule__SumExpression__ExprsAssignment_3_1 ) )
-            // InternalComputation.g:1833:2: ( rule__SumExpression__ExprsAssignment_3_1 )
+            // InternalComputation.g:1794:1: ( ( rule__OperandTerm__NameAssignment_1 ) )
+            // InternalComputation.g:1795:2: ( rule__OperandTerm__NameAssignment_1 )
             {
-             before(grammarAccess.getSumExpressionAccess().getExprsAssignment_3_1()); 
-            // InternalComputation.g:1834:2: ( rule__SumExpression__ExprsAssignment_3_1 )
-            // InternalComputation.g:1834:3: rule__SumExpression__ExprsAssignment_3_1
+             before(grammarAccess.getOperandTermAccess().getNameAssignment_1()); 
+            // InternalComputation.g:1796:2: ( rule__OperandTerm__NameAssignment_1 )
+            // InternalComputation.g:1796:3: rule__OperandTerm__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
-            rule__SumExpression__ExprsAssignment_3_1();
+            rule__OperandTerm__NameAssignment_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getSumExpressionAccess().getExprsAssignment_3_1()); 
+             after(grammarAccess.getOperandTermAccess().getNameAssignment_1()); 
 
             }
 
@@ -5557,26 +5427,26 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__SumExpression__Group_3__1__Impl"
+    // $ANTLR end "rule__OperandTerm__Group__1__Impl"
 
 
-    // $ANTLR start "rule__AddExpression__Group__0"
-    // InternalComputation.g:1843:1: rule__AddExpression__Group__0 : rule__AddExpression__Group__0__Impl rule__AddExpression__Group__1 ;
-    public final void rule__AddExpression__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__SummationExpression__Group_0__0"
+    // InternalComputation.g:1805:1: rule__SummationExpression__Group_0__0 : rule__SummationExpression__Group_0__0__Impl rule__SummationExpression__Group_0__1 ;
+    public final void rule__SummationExpression__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1847:1: ( rule__AddExpression__Group__0__Impl rule__AddExpression__Group__1 )
-            // InternalComputation.g:1848:2: rule__AddExpression__Group__0__Impl rule__AddExpression__Group__1
+            // InternalComputation.g:1809:1: ( rule__SummationExpression__Group_0__0__Impl rule__SummationExpression__Group_0__1 )
+            // InternalComputation.g:1810:2: rule__SummationExpression__Group_0__0__Impl rule__SummationExpression__Group_0__1
             {
-            pushFollow(FOLLOW_20);
-            rule__AddExpression__Group__0__Impl();
+            pushFollow(FOLLOW_27);
+            rule__SummationExpression__Group_0__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__AddExpression__Group__1();
+            rule__SummationExpression__Group_0__1();
 
             state._fsp--;
 
@@ -5595,25 +5465,35 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__AddExpression__Group__0"
+    // $ANTLR end "rule__SummationExpression__Group_0__0"
 
 
-    // $ANTLR start "rule__AddExpression__Group__0__Impl"
-    // InternalComputation.g:1855:1: rule__AddExpression__Group__0__Impl : ( '(' ) ;
-    public final void rule__AddExpression__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__SummationExpression__Group_0__0__Impl"
+    // InternalComputation.g:1817:1: rule__SummationExpression__Group_0__0__Impl : ( ( rule__SummationExpression__Group_0_0__0 ) ) ;
+    public final void rule__SummationExpression__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:1859:1: ( ( '(' ) )
-            // InternalComputation.g:1860:1: ( '(' )
+            // InternalComputation.g:1821:1: ( ( ( rule__SummationExpression__Group_0_0__0 ) ) )
+            // InternalComputation.g:1822:1: ( ( rule__SummationExpression__Group_0_0__0 ) )
             {
-            // InternalComputation.g:1860:1: ( '(' )
-            // InternalComputation.g:1861:2: '('
+            // InternalComputation.g:1822:1: ( ( rule__SummationExpression__Group_0_0__0 ) )
+            // InternalComputation.g:1823:2: ( rule__SummationExpression__Group_0_0__0 )
             {
-             before(grammarAccess.getAddExpressionAccess().getLeftParenthesisKeyword_0()); 
-            match(input,27,FOLLOW_2); 
-             after(grammarAccess.getAddExpressionAccess().getLeftParenthesisKeyword_0()); 
+             before(grammarAccess.getSummationExpressionAccess().getGroup_0_0()); 
+            // InternalComputation.g:1824:2: ( rule__SummationExpression__Group_0_0__0 )
+            // InternalComputation.g:1824:3: rule__SummationExpression__Group_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__SummationExpression__Group_0_0__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSummationExpressionAccess().getGroup_0_0()); 
 
             }
 
@@ -5632,594 +5512,18 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
         }
         return ;
     }
-    // $ANTLR end "rule__AddExpression__Group__0__Impl"
-
-
-    // $ANTLR start "rule__AddExpression__Group__1"
-    // InternalComputation.g:1870:1: rule__AddExpression__Group__1 : rule__AddExpression__Group__1__Impl rule__AddExpression__Group__2 ;
-    public final void rule__AddExpression__Group__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalComputation.g:1874:1: ( rule__AddExpression__Group__1__Impl rule__AddExpression__Group__2 )
-            // InternalComputation.g:1875:2: rule__AddExpression__Group__1__Impl rule__AddExpression__Group__2
-            {
-            pushFollow(FOLLOW_27);
-            rule__AddExpression__Group__1__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__AddExpression__Group__2();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__AddExpression__Group__1"
-
-
-    // $ANTLR start "rule__AddExpression__Group__1__Impl"
-    // InternalComputation.g:1882:1: rule__AddExpression__Group__1__Impl : ( ( rule__AddExpression__Op1Assignment_1 ) ) ;
-    public final void rule__AddExpression__Group__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalComputation.g:1886:1: ( ( ( rule__AddExpression__Op1Assignment_1 ) ) )
-            // InternalComputation.g:1887:1: ( ( rule__AddExpression__Op1Assignment_1 ) )
-            {
-            // InternalComputation.g:1887:1: ( ( rule__AddExpression__Op1Assignment_1 ) )
-            // InternalComputation.g:1888:2: ( rule__AddExpression__Op1Assignment_1 )
-            {
-             before(grammarAccess.getAddExpressionAccess().getOp1Assignment_1()); 
-            // InternalComputation.g:1889:2: ( rule__AddExpression__Op1Assignment_1 )
-            // InternalComputation.g:1889:3: rule__AddExpression__Op1Assignment_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__AddExpression__Op1Assignment_1();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getAddExpressionAccess().getOp1Assignment_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__AddExpression__Group__1__Impl"
-
-
-    // $ANTLR start "rule__AddExpression__Group__2"
-    // InternalComputation.g:1897:1: rule__AddExpression__Group__2 : rule__AddExpression__Group__2__Impl rule__AddExpression__Group__3 ;
-    public final void rule__AddExpression__Group__2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalComputation.g:1901:1: ( rule__AddExpression__Group__2__Impl rule__AddExpression__Group__3 )
-            // InternalComputation.g:1902:2: rule__AddExpression__Group__2__Impl rule__AddExpression__Group__3
-            {
-            pushFollow(FOLLOW_20);
-            rule__AddExpression__Group__2__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__AddExpression__Group__3();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__AddExpression__Group__2"
-
-
-    // $ANTLR start "rule__AddExpression__Group__2__Impl"
-    // InternalComputation.g:1909:1: rule__AddExpression__Group__2__Impl : ( '+' ) ;
-    public final void rule__AddExpression__Group__2__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalComputation.g:1913:1: ( ( '+' ) )
-            // InternalComputation.g:1914:1: ( '+' )
-            {
-            // InternalComputation.g:1914:1: ( '+' )
-            // InternalComputation.g:1915:2: '+'
-            {
-             before(grammarAccess.getAddExpressionAccess().getPlusSignKeyword_2()); 
-            match(input,31,FOLLOW_2); 
-             after(grammarAccess.getAddExpressionAccess().getPlusSignKeyword_2()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__AddExpression__Group__2__Impl"
-
-
-    // $ANTLR start "rule__AddExpression__Group__3"
-    // InternalComputation.g:1924:1: rule__AddExpression__Group__3 : rule__AddExpression__Group__3__Impl rule__AddExpression__Group__4 ;
-    public final void rule__AddExpression__Group__3() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalComputation.g:1928:1: ( rule__AddExpression__Group__3__Impl rule__AddExpression__Group__4 )
-            // InternalComputation.g:1929:2: rule__AddExpression__Group__3__Impl rule__AddExpression__Group__4
-            {
-            pushFollow(FOLLOW_25);
-            rule__AddExpression__Group__3__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__AddExpression__Group__4();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__AddExpression__Group__3"
-
-
-    // $ANTLR start "rule__AddExpression__Group__3__Impl"
-    // InternalComputation.g:1936:1: rule__AddExpression__Group__3__Impl : ( ( rule__AddExpression__Op2Assignment_3 ) ) ;
-    public final void rule__AddExpression__Group__3__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalComputation.g:1940:1: ( ( ( rule__AddExpression__Op2Assignment_3 ) ) )
-            // InternalComputation.g:1941:1: ( ( rule__AddExpression__Op2Assignment_3 ) )
-            {
-            // InternalComputation.g:1941:1: ( ( rule__AddExpression__Op2Assignment_3 ) )
-            // InternalComputation.g:1942:2: ( rule__AddExpression__Op2Assignment_3 )
-            {
-             before(grammarAccess.getAddExpressionAccess().getOp2Assignment_3()); 
-            // InternalComputation.g:1943:2: ( rule__AddExpression__Op2Assignment_3 )
-            // InternalComputation.g:1943:3: rule__AddExpression__Op2Assignment_3
-            {
-            pushFollow(FOLLOW_2);
-            rule__AddExpression__Op2Assignment_3();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getAddExpressionAccess().getOp2Assignment_3()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__AddExpression__Group__3__Impl"
-
-
-    // $ANTLR start "rule__AddExpression__Group__4"
-    // InternalComputation.g:1951:1: rule__AddExpression__Group__4 : rule__AddExpression__Group__4__Impl ;
-    public final void rule__AddExpression__Group__4() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalComputation.g:1955:1: ( rule__AddExpression__Group__4__Impl )
-            // InternalComputation.g:1956:2: rule__AddExpression__Group__4__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__AddExpression__Group__4__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__AddExpression__Group__4"
-
-
-    // $ANTLR start "rule__AddExpression__Group__4__Impl"
-    // InternalComputation.g:1962:1: rule__AddExpression__Group__4__Impl : ( ')' ) ;
-    public final void rule__AddExpression__Group__4__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalComputation.g:1966:1: ( ( ')' ) )
-            // InternalComputation.g:1967:1: ( ')' )
-            {
-            // InternalComputation.g:1967:1: ( ')' )
-            // InternalComputation.g:1968:2: ')'
-            {
-             before(grammarAccess.getAddExpressionAccess().getRightParenthesisKeyword_4()); 
-            match(input,28,FOLLOW_2); 
-             after(grammarAccess.getAddExpressionAccess().getRightParenthesisKeyword_4()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__AddExpression__Group__4__Impl"
-
-
-    // $ANTLR start "rule__OperandTerm__Group__0"
-    // InternalComputation.g:1978:1: rule__OperandTerm__Group__0 : rule__OperandTerm__Group__0__Impl rule__OperandTerm__Group__1 ;
-    public final void rule__OperandTerm__Group__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalComputation.g:1982:1: ( rule__OperandTerm__Group__0__Impl rule__OperandTerm__Group__1 )
-            // InternalComputation.g:1983:2: rule__OperandTerm__Group__0__Impl rule__OperandTerm__Group__1
-            {
-            pushFollow(FOLLOW_20);
-            rule__OperandTerm__Group__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__OperandTerm__Group__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OperandTerm__Group__0"
-
-
-    // $ANTLR start "rule__OperandTerm__Group__0__Impl"
-    // InternalComputation.g:1990:1: rule__OperandTerm__Group__0__Impl : ( ( rule__OperandTerm__CoefAssignment_0 )? ) ;
-    public final void rule__OperandTerm__Group__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalComputation.g:1994:1: ( ( ( rule__OperandTerm__CoefAssignment_0 )? ) )
-            // InternalComputation.g:1995:1: ( ( rule__OperandTerm__CoefAssignment_0 )? )
-            {
-            // InternalComputation.g:1995:1: ( ( rule__OperandTerm__CoefAssignment_0 )? )
-            // InternalComputation.g:1996:2: ( rule__OperandTerm__CoefAssignment_0 )?
-            {
-             before(grammarAccess.getOperandTermAccess().getCoefAssignment_0()); 
-            // InternalComputation.g:1997:2: ( rule__OperandTerm__CoefAssignment_0 )?
-            int alt10=2;
-            int LA10_0 = input.LA(1);
-
-            if ( (LA10_0==RULE_INT) ) {
-                alt10=1;
-            }
-            switch (alt10) {
-                case 1 :
-                    // InternalComputation.g:1997:3: rule__OperandTerm__CoefAssignment_0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__OperandTerm__CoefAssignment_0();
-
-                    state._fsp--;
-
-
-                    }
-                    break;
-
-            }
-
-             after(grammarAccess.getOperandTermAccess().getCoefAssignment_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OperandTerm__Group__0__Impl"
-
-
-    // $ANTLR start "rule__OperandTerm__Group__1"
-    // InternalComputation.g:2005:1: rule__OperandTerm__Group__1 : rule__OperandTerm__Group__1__Impl ;
-    public final void rule__OperandTerm__Group__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalComputation.g:2009:1: ( rule__OperandTerm__Group__1__Impl )
-            // InternalComputation.g:2010:2: rule__OperandTerm__Group__1__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__OperandTerm__Group__1__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OperandTerm__Group__1"
-
-
-    // $ANTLR start "rule__OperandTerm__Group__1__Impl"
-    // InternalComputation.g:2016:1: rule__OperandTerm__Group__1__Impl : ( ( rule__OperandTerm__NameAssignment_1 ) ) ;
-    public final void rule__OperandTerm__Group__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalComputation.g:2020:1: ( ( ( rule__OperandTerm__NameAssignment_1 ) ) )
-            // InternalComputation.g:2021:1: ( ( rule__OperandTerm__NameAssignment_1 ) )
-            {
-            // InternalComputation.g:2021:1: ( ( rule__OperandTerm__NameAssignment_1 ) )
-            // InternalComputation.g:2022:2: ( rule__OperandTerm__NameAssignment_1 )
-            {
-             before(grammarAccess.getOperandTermAccess().getNameAssignment_1()); 
-            // InternalComputation.g:2023:2: ( rule__OperandTerm__NameAssignment_1 )
-            // InternalComputation.g:2023:3: rule__OperandTerm__NameAssignment_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__OperandTerm__NameAssignment_1();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getOperandTermAccess().getNameAssignment_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__OperandTerm__Group__1__Impl"
-
-
-    // $ANTLR start "rule__SummationExpression__Group_0__0"
-    // InternalComputation.g:2032:1: rule__SummationExpression__Group_0__0 : rule__SummationExpression__Group_0__0__Impl rule__SummationExpression__Group_0__1 ;
-    public final void rule__SummationExpression__Group_0__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalComputation.g:2036:1: ( rule__SummationExpression__Group_0__0__Impl rule__SummationExpression__Group_0__1 )
-            // InternalComputation.g:2037:2: rule__SummationExpression__Group_0__0__Impl rule__SummationExpression__Group_0__1
-            {
-            pushFollow(FOLLOW_27);
-            rule__SummationExpression__Group_0__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__SummationExpression__Group_0__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__SummationExpression__Group_0__0"
-
-
-    // $ANTLR start "rule__SummationExpression__Group_0__0__Impl"
-    // InternalComputation.g:2044:1: rule__SummationExpression__Group_0__0__Impl : ( ( rule__SummationExpression__Group_0_0__0 ) ) ;
-    public final void rule__SummationExpression__Group_0__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalComputation.g:2048:1: ( ( ( rule__SummationExpression__Group_0_0__0 ) ) )
-            // InternalComputation.g:2049:1: ( ( rule__SummationExpression__Group_0_0__0 ) )
-            {
-            // InternalComputation.g:2049:1: ( ( rule__SummationExpression__Group_0_0__0 ) )
-            // InternalComputation.g:2050:2: ( rule__SummationExpression__Group_0_0__0 )
-            {
-             before(grammarAccess.getSummationExpressionAccess().getGroup_0_0()); 
-            // InternalComputation.g:2051:2: ( rule__SummationExpression__Group_0_0__0 )
-            // InternalComputation.g:2051:3: rule__SummationExpression__Group_0_0__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__SummationExpression__Group_0_0__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getSummationExpressionAccess().getGroup_0_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__SummationExpression__Group_0__0__Impl"
+    // $ANTLR end "rule__SummationExpression__Group_0__0__Impl"
 
 
     // $ANTLR start "rule__SummationExpression__Group_0__1"
-    // InternalComputation.g:2059:1: rule__SummationExpression__Group_0__1 : rule__SummationExpression__Group_0__1__Impl ;
+    // InternalComputation.g:1832:1: rule__SummationExpression__Group_0__1 : rule__SummationExpression__Group_0__1__Impl ;
     public final void rule__SummationExpression__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2063:1: ( rule__SummationExpression__Group_0__1__Impl )
-            // InternalComputation.g:2064:2: rule__SummationExpression__Group_0__1__Impl
+            // InternalComputation.g:1836:1: ( rule__SummationExpression__Group_0__1__Impl )
+            // InternalComputation.g:1837:2: rule__SummationExpression__Group_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SummationExpression__Group_0__1__Impl();
@@ -6245,29 +5549,29 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0__1__Impl"
-    // InternalComputation.g:2070:1: rule__SummationExpression__Group_0__1__Impl : ( ( rule__SummationExpression__Group_0_1__0 )? ) ;
+    // InternalComputation.g:1843:1: rule__SummationExpression__Group_0__1__Impl : ( ( rule__SummationExpression__Group_0_1__0 )? ) ;
     public final void rule__SummationExpression__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2074:1: ( ( ( rule__SummationExpression__Group_0_1__0 )? ) )
-            // InternalComputation.g:2075:1: ( ( rule__SummationExpression__Group_0_1__0 )? )
+            // InternalComputation.g:1847:1: ( ( ( rule__SummationExpression__Group_0_1__0 )? ) )
+            // InternalComputation.g:1848:1: ( ( rule__SummationExpression__Group_0_1__0 )? )
             {
-            // InternalComputation.g:2075:1: ( ( rule__SummationExpression__Group_0_1__0 )? )
-            // InternalComputation.g:2076:2: ( rule__SummationExpression__Group_0_1__0 )?
+            // InternalComputation.g:1848:1: ( ( rule__SummationExpression__Group_0_1__0 )? )
+            // InternalComputation.g:1849:2: ( rule__SummationExpression__Group_0_1__0 )?
             {
              before(grammarAccess.getSummationExpressionAccess().getGroup_0_1()); 
-            // InternalComputation.g:2077:2: ( rule__SummationExpression__Group_0_1__0 )?
-            int alt11=2;
-            int LA11_0 = input.LA(1);
+            // InternalComputation.g:1850:2: ( rule__SummationExpression__Group_0_1__0 )?
+            int alt10=2;
+            int LA10_0 = input.LA(1);
 
-            if ( (LA11_0==31) ) {
-                alt11=1;
+            if ( (LA10_0==30) ) {
+                alt10=1;
             }
-            switch (alt11) {
+            switch (alt10) {
                 case 1 :
-                    // InternalComputation.g:2077:3: rule__SummationExpression__Group_0_1__0
+                    // InternalComputation.g:1850:3: rule__SummationExpression__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__SummationExpression__Group_0_1__0();
@@ -6303,14 +5607,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_0__0"
-    // InternalComputation.g:2086:1: rule__SummationExpression__Group_0_0__0 : rule__SummationExpression__Group_0_0__0__Impl rule__SummationExpression__Group_0_0__1 ;
+    // InternalComputation.g:1859:1: rule__SummationExpression__Group_0_0__0 : rule__SummationExpression__Group_0_0__0__Impl rule__SummationExpression__Group_0_0__1 ;
     public final void rule__SummationExpression__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2090:1: ( rule__SummationExpression__Group_0_0__0__Impl rule__SummationExpression__Group_0_0__1 )
-            // InternalComputation.g:2091:2: rule__SummationExpression__Group_0_0__0__Impl rule__SummationExpression__Group_0_0__1
+            // InternalComputation.g:1863:1: ( rule__SummationExpression__Group_0_0__0__Impl rule__SummationExpression__Group_0_0__1 )
+            // InternalComputation.g:1864:2: rule__SummationExpression__Group_0_0__0__Impl rule__SummationExpression__Group_0_0__1
             {
             pushFollow(FOLLOW_27);
             rule__SummationExpression__Group_0_0__0__Impl();
@@ -6341,21 +5645,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_0__0__Impl"
-    // InternalComputation.g:2098:1: rule__SummationExpression__Group_0_0__0__Impl : ( ( rule__SummationExpression__TermsAssignment_0_0_0 ) ) ;
+    // InternalComputation.g:1871:1: rule__SummationExpression__Group_0_0__0__Impl : ( ( rule__SummationExpression__TermsAssignment_0_0_0 ) ) ;
     public final void rule__SummationExpression__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2102:1: ( ( ( rule__SummationExpression__TermsAssignment_0_0_0 ) ) )
-            // InternalComputation.g:2103:1: ( ( rule__SummationExpression__TermsAssignment_0_0_0 ) )
+            // InternalComputation.g:1875:1: ( ( ( rule__SummationExpression__TermsAssignment_0_0_0 ) ) )
+            // InternalComputation.g:1876:1: ( ( rule__SummationExpression__TermsAssignment_0_0_0 ) )
             {
-            // InternalComputation.g:2103:1: ( ( rule__SummationExpression__TermsAssignment_0_0_0 ) )
-            // InternalComputation.g:2104:2: ( rule__SummationExpression__TermsAssignment_0_0_0 )
+            // InternalComputation.g:1876:1: ( ( rule__SummationExpression__TermsAssignment_0_0_0 ) )
+            // InternalComputation.g:1877:2: ( rule__SummationExpression__TermsAssignment_0_0_0 )
             {
              before(grammarAccess.getSummationExpressionAccess().getTermsAssignment_0_0_0()); 
-            // InternalComputation.g:2105:2: ( rule__SummationExpression__TermsAssignment_0_0_0 )
-            // InternalComputation.g:2105:3: rule__SummationExpression__TermsAssignment_0_0_0
+            // InternalComputation.g:1878:2: ( rule__SummationExpression__TermsAssignment_0_0_0 )
+            // InternalComputation.g:1878:3: rule__SummationExpression__TermsAssignment_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__SummationExpression__TermsAssignment_0_0_0();
@@ -6388,14 +5692,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_0__1"
-    // InternalComputation.g:2113:1: rule__SummationExpression__Group_0_0__1 : rule__SummationExpression__Group_0_0__1__Impl ;
+    // InternalComputation.g:1886:1: rule__SummationExpression__Group_0_0__1 : rule__SummationExpression__Group_0_0__1__Impl ;
     public final void rule__SummationExpression__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2117:1: ( rule__SummationExpression__Group_0_0__1__Impl )
-            // InternalComputation.g:2118:2: rule__SummationExpression__Group_0_0__1__Impl
+            // InternalComputation.g:1890:1: ( rule__SummationExpression__Group_0_0__1__Impl )
+            // InternalComputation.g:1891:2: rule__SummationExpression__Group_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SummationExpression__Group_0_0__1__Impl();
@@ -6421,48 +5725,48 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_0__1__Impl"
-    // InternalComputation.g:2124:1: rule__SummationExpression__Group_0_0__1__Impl : ( ( rule__SummationExpression__Group_0_0_1__0 )* ) ;
+    // InternalComputation.g:1897:1: rule__SummationExpression__Group_0_0__1__Impl : ( ( rule__SummationExpression__Group_0_0_1__0 )* ) ;
     public final void rule__SummationExpression__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2128:1: ( ( ( rule__SummationExpression__Group_0_0_1__0 )* ) )
-            // InternalComputation.g:2129:1: ( ( rule__SummationExpression__Group_0_0_1__0 )* )
+            // InternalComputation.g:1901:1: ( ( ( rule__SummationExpression__Group_0_0_1__0 )* ) )
+            // InternalComputation.g:1902:1: ( ( rule__SummationExpression__Group_0_0_1__0 )* )
             {
-            // InternalComputation.g:2129:1: ( ( rule__SummationExpression__Group_0_0_1__0 )* )
-            // InternalComputation.g:2130:2: ( rule__SummationExpression__Group_0_0_1__0 )*
+            // InternalComputation.g:1902:1: ( ( rule__SummationExpression__Group_0_0_1__0 )* )
+            // InternalComputation.g:1903:2: ( rule__SummationExpression__Group_0_0_1__0 )*
             {
              before(grammarAccess.getSummationExpressionAccess().getGroup_0_0_1()); 
-            // InternalComputation.g:2131:2: ( rule__SummationExpression__Group_0_0_1__0 )*
-            loop12:
+            // InternalComputation.g:1904:2: ( rule__SummationExpression__Group_0_0_1__0 )*
+            loop11:
             do {
-                int alt12=2;
-                int LA12_0 = input.LA(1);
+                int alt11=2;
+                int LA11_0 = input.LA(1);
 
-                if ( (LA12_0==31) ) {
-                    int LA12_1 = input.LA(2);
+                if ( (LA11_0==30) ) {
+                    int LA11_1 = input.LA(2);
 
-                    if ( (LA12_1==RULE_INT) ) {
-                        int LA12_3 = input.LA(3);
+                    if ( (LA11_1==RULE_INT) ) {
+                        int LA11_3 = input.LA(3);
 
-                        if ( (LA12_3==RULE_ID) ) {
-                            alt12=1;
+                        if ( (LA11_3==RULE_ID) ) {
+                            alt11=1;
                         }
 
 
                     }
-                    else if ( (LA12_1==RULE_ID) ) {
-                        alt12=1;
+                    else if ( (LA11_1==RULE_ID) ) {
+                        alt11=1;
                     }
 
 
                 }
 
 
-                switch (alt12) {
+                switch (alt11) {
             	case 1 :
-            	    // InternalComputation.g:2131:3: rule__SummationExpression__Group_0_0_1__0
+            	    // InternalComputation.g:1904:3: rule__SummationExpression__Group_0_0_1__0
             	    {
             	    pushFollow(FOLLOW_28);
             	    rule__SummationExpression__Group_0_0_1__0();
@@ -6474,7 +5778,7 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
             	    break;
 
             	default :
-            	    break loop12;
+            	    break loop11;
                 }
             } while (true);
 
@@ -6501,14 +5805,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_0_1__0"
-    // InternalComputation.g:2140:1: rule__SummationExpression__Group_0_0_1__0 : rule__SummationExpression__Group_0_0_1__0__Impl rule__SummationExpression__Group_0_0_1__1 ;
+    // InternalComputation.g:1913:1: rule__SummationExpression__Group_0_0_1__0 : rule__SummationExpression__Group_0_0_1__0__Impl rule__SummationExpression__Group_0_0_1__1 ;
     public final void rule__SummationExpression__Group_0_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2144:1: ( rule__SummationExpression__Group_0_0_1__0__Impl rule__SummationExpression__Group_0_0_1__1 )
-            // InternalComputation.g:2145:2: rule__SummationExpression__Group_0_0_1__0__Impl rule__SummationExpression__Group_0_0_1__1
+            // InternalComputation.g:1917:1: ( rule__SummationExpression__Group_0_0_1__0__Impl rule__SummationExpression__Group_0_0_1__1 )
+            // InternalComputation.g:1918:2: rule__SummationExpression__Group_0_0_1__0__Impl rule__SummationExpression__Group_0_0_1__1
             {
             pushFollow(FOLLOW_15);
             rule__SummationExpression__Group_0_0_1__0__Impl();
@@ -6539,20 +5843,20 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_0_1__0__Impl"
-    // InternalComputation.g:2152:1: rule__SummationExpression__Group_0_0_1__0__Impl : ( '+' ) ;
+    // InternalComputation.g:1925:1: rule__SummationExpression__Group_0_0_1__0__Impl : ( '+' ) ;
     public final void rule__SummationExpression__Group_0_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2156:1: ( ( '+' ) )
-            // InternalComputation.g:2157:1: ( '+' )
+            // InternalComputation.g:1929:1: ( ( '+' ) )
+            // InternalComputation.g:1930:1: ( '+' )
             {
-            // InternalComputation.g:2157:1: ( '+' )
-            // InternalComputation.g:2158:2: '+'
+            // InternalComputation.g:1930:1: ( '+' )
+            // InternalComputation.g:1931:2: '+'
             {
              before(grammarAccess.getSummationExpressionAccess().getPlusSignKeyword_0_0_1_0()); 
-            match(input,31,FOLLOW_2); 
+            match(input,30,FOLLOW_2); 
              after(grammarAccess.getSummationExpressionAccess().getPlusSignKeyword_0_0_1_0()); 
 
             }
@@ -6576,14 +5880,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_0_1__1"
-    // InternalComputation.g:2167:1: rule__SummationExpression__Group_0_0_1__1 : rule__SummationExpression__Group_0_0_1__1__Impl ;
+    // InternalComputation.g:1940:1: rule__SummationExpression__Group_0_0_1__1 : rule__SummationExpression__Group_0_0_1__1__Impl ;
     public final void rule__SummationExpression__Group_0_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2171:1: ( rule__SummationExpression__Group_0_0_1__1__Impl )
-            // InternalComputation.g:2172:2: rule__SummationExpression__Group_0_0_1__1__Impl
+            // InternalComputation.g:1944:1: ( rule__SummationExpression__Group_0_0_1__1__Impl )
+            // InternalComputation.g:1945:2: rule__SummationExpression__Group_0_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SummationExpression__Group_0_0_1__1__Impl();
@@ -6609,21 +5913,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_0_1__1__Impl"
-    // InternalComputation.g:2178:1: rule__SummationExpression__Group_0_0_1__1__Impl : ( ( rule__SummationExpression__TermsAssignment_0_0_1_1 ) ) ;
+    // InternalComputation.g:1951:1: rule__SummationExpression__Group_0_0_1__1__Impl : ( ( rule__SummationExpression__TermsAssignment_0_0_1_1 ) ) ;
     public final void rule__SummationExpression__Group_0_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2182:1: ( ( ( rule__SummationExpression__TermsAssignment_0_0_1_1 ) ) )
-            // InternalComputation.g:2183:1: ( ( rule__SummationExpression__TermsAssignment_0_0_1_1 ) )
+            // InternalComputation.g:1955:1: ( ( ( rule__SummationExpression__TermsAssignment_0_0_1_1 ) ) )
+            // InternalComputation.g:1956:1: ( ( rule__SummationExpression__TermsAssignment_0_0_1_1 ) )
             {
-            // InternalComputation.g:2183:1: ( ( rule__SummationExpression__TermsAssignment_0_0_1_1 ) )
-            // InternalComputation.g:2184:2: ( rule__SummationExpression__TermsAssignment_0_0_1_1 )
+            // InternalComputation.g:1956:1: ( ( rule__SummationExpression__TermsAssignment_0_0_1_1 ) )
+            // InternalComputation.g:1957:2: ( rule__SummationExpression__TermsAssignment_0_0_1_1 )
             {
              before(grammarAccess.getSummationExpressionAccess().getTermsAssignment_0_0_1_1()); 
-            // InternalComputation.g:2185:2: ( rule__SummationExpression__TermsAssignment_0_0_1_1 )
-            // InternalComputation.g:2185:3: rule__SummationExpression__TermsAssignment_0_0_1_1
+            // InternalComputation.g:1958:2: ( rule__SummationExpression__TermsAssignment_0_0_1_1 )
+            // InternalComputation.g:1958:3: rule__SummationExpression__TermsAssignment_0_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__SummationExpression__TermsAssignment_0_0_1_1();
@@ -6656,14 +5960,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_1__0"
-    // InternalComputation.g:2194:1: rule__SummationExpression__Group_0_1__0 : rule__SummationExpression__Group_0_1__0__Impl rule__SummationExpression__Group_0_1__1 ;
+    // InternalComputation.g:1967:1: rule__SummationExpression__Group_0_1__0 : rule__SummationExpression__Group_0_1__0__Impl rule__SummationExpression__Group_0_1__1 ;
     public final void rule__SummationExpression__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2198:1: ( rule__SummationExpression__Group_0_1__0__Impl rule__SummationExpression__Group_0_1__1 )
-            // InternalComputation.g:2199:2: rule__SummationExpression__Group_0_1__0__Impl rule__SummationExpression__Group_0_1__1
+            // InternalComputation.g:1971:1: ( rule__SummationExpression__Group_0_1__0__Impl rule__SummationExpression__Group_0_1__1 )
+            // InternalComputation.g:1972:2: rule__SummationExpression__Group_0_1__0__Impl rule__SummationExpression__Group_0_1__1
             {
             pushFollow(FOLLOW_9);
             rule__SummationExpression__Group_0_1__0__Impl();
@@ -6694,20 +5998,20 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_1__0__Impl"
-    // InternalComputation.g:2206:1: rule__SummationExpression__Group_0_1__0__Impl : ( '+' ) ;
+    // InternalComputation.g:1979:1: rule__SummationExpression__Group_0_1__0__Impl : ( '+' ) ;
     public final void rule__SummationExpression__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2210:1: ( ( '+' ) )
-            // InternalComputation.g:2211:1: ( '+' )
+            // InternalComputation.g:1983:1: ( ( '+' ) )
+            // InternalComputation.g:1984:1: ( '+' )
             {
-            // InternalComputation.g:2211:1: ( '+' )
-            // InternalComputation.g:2212:2: '+'
+            // InternalComputation.g:1984:1: ( '+' )
+            // InternalComputation.g:1985:2: '+'
             {
              before(grammarAccess.getSummationExpressionAccess().getPlusSignKeyword_0_1_0()); 
-            match(input,31,FOLLOW_2); 
+            match(input,30,FOLLOW_2); 
              after(grammarAccess.getSummationExpressionAccess().getPlusSignKeyword_0_1_0()); 
 
             }
@@ -6731,14 +6035,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_1__1"
-    // InternalComputation.g:2221:1: rule__SummationExpression__Group_0_1__1 : rule__SummationExpression__Group_0_1__1__Impl ;
+    // InternalComputation.g:1994:1: rule__SummationExpression__Group_0_1__1 : rule__SummationExpression__Group_0_1__1__Impl ;
     public final void rule__SummationExpression__Group_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2225:1: ( rule__SummationExpression__Group_0_1__1__Impl )
-            // InternalComputation.g:2226:2: rule__SummationExpression__Group_0_1__1__Impl
+            // InternalComputation.g:1998:1: ( rule__SummationExpression__Group_0_1__1__Impl )
+            // InternalComputation.g:1999:2: rule__SummationExpression__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SummationExpression__Group_0_1__1__Impl();
@@ -6764,21 +6068,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__Group_0_1__1__Impl"
-    // InternalComputation.g:2232:1: rule__SummationExpression__Group_0_1__1__Impl : ( ( rule__SummationExpression__ConstantAssignment_0_1_1 ) ) ;
+    // InternalComputation.g:2005:1: rule__SummationExpression__Group_0_1__1__Impl : ( ( rule__SummationExpression__ConstantAssignment_0_1_1 ) ) ;
     public final void rule__SummationExpression__Group_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2236:1: ( ( ( rule__SummationExpression__ConstantAssignment_0_1_1 ) ) )
-            // InternalComputation.g:2237:1: ( ( rule__SummationExpression__ConstantAssignment_0_1_1 ) )
+            // InternalComputation.g:2009:1: ( ( ( rule__SummationExpression__ConstantAssignment_0_1_1 ) ) )
+            // InternalComputation.g:2010:1: ( ( rule__SummationExpression__ConstantAssignment_0_1_1 ) )
             {
-            // InternalComputation.g:2237:1: ( ( rule__SummationExpression__ConstantAssignment_0_1_1 ) )
-            // InternalComputation.g:2238:2: ( rule__SummationExpression__ConstantAssignment_0_1_1 )
+            // InternalComputation.g:2010:1: ( ( rule__SummationExpression__ConstantAssignment_0_1_1 ) )
+            // InternalComputation.g:2011:2: ( rule__SummationExpression__ConstantAssignment_0_1_1 )
             {
              before(grammarAccess.getSummationExpressionAccess().getConstantAssignment_0_1_1()); 
-            // InternalComputation.g:2239:2: ( rule__SummationExpression__ConstantAssignment_0_1_1 )
-            // InternalComputation.g:2239:3: rule__SummationExpression__ConstantAssignment_0_1_1
+            // InternalComputation.g:2012:2: ( rule__SummationExpression__ConstantAssignment_0_1_1 )
+            // InternalComputation.g:2012:3: rule__SummationExpression__ConstantAssignment_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__SummationExpression__ConstantAssignment_0_1_1();
@@ -6811,14 +6115,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__Group__0"
-    // InternalComputation.g:2248:1: rule__ProductExpression__Group__0 : rule__ProductExpression__Group__0__Impl rule__ProductExpression__Group__1 ;
+    // InternalComputation.g:2021:1: rule__ProductExpression__Group__0 : rule__ProductExpression__Group__0__Impl rule__ProductExpression__Group__1 ;
     public final void rule__ProductExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2252:1: ( rule__ProductExpression__Group__0__Impl rule__ProductExpression__Group__1 )
-            // InternalComputation.g:2253:2: rule__ProductExpression__Group__0__Impl rule__ProductExpression__Group__1
+            // InternalComputation.g:2025:1: ( rule__ProductExpression__Group__0__Impl rule__ProductExpression__Group__1 )
+            // InternalComputation.g:2026:2: rule__ProductExpression__Group__0__Impl rule__ProductExpression__Group__1
             {
             pushFollow(FOLLOW_15);
             rule__ProductExpression__Group__0__Impl();
@@ -6849,29 +6153,29 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__Group__0__Impl"
-    // InternalComputation.g:2260:1: rule__ProductExpression__Group__0__Impl : ( ( rule__ProductExpression__ConstantAssignment_0 )? ) ;
+    // InternalComputation.g:2033:1: rule__ProductExpression__Group__0__Impl : ( ( rule__ProductExpression__ConstantAssignment_0 )? ) ;
     public final void rule__ProductExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2264:1: ( ( ( rule__ProductExpression__ConstantAssignment_0 )? ) )
-            // InternalComputation.g:2265:1: ( ( rule__ProductExpression__ConstantAssignment_0 )? )
+            // InternalComputation.g:2037:1: ( ( ( rule__ProductExpression__ConstantAssignment_0 )? ) )
+            // InternalComputation.g:2038:1: ( ( rule__ProductExpression__ConstantAssignment_0 )? )
             {
-            // InternalComputation.g:2265:1: ( ( rule__ProductExpression__ConstantAssignment_0 )? )
-            // InternalComputation.g:2266:2: ( rule__ProductExpression__ConstantAssignment_0 )?
+            // InternalComputation.g:2038:1: ( ( rule__ProductExpression__ConstantAssignment_0 )? )
+            // InternalComputation.g:2039:2: ( rule__ProductExpression__ConstantAssignment_0 )?
             {
              before(grammarAccess.getProductExpressionAccess().getConstantAssignment_0()); 
-            // InternalComputation.g:2267:2: ( rule__ProductExpression__ConstantAssignment_0 )?
-            int alt13=2;
-            int LA13_0 = input.LA(1);
+            // InternalComputation.g:2040:2: ( rule__ProductExpression__ConstantAssignment_0 )?
+            int alt12=2;
+            int LA12_0 = input.LA(1);
 
-            if ( (LA13_0==RULE_INT) ) {
-                alt13=1;
+            if ( (LA12_0==RULE_INT) ) {
+                alt12=1;
             }
-            switch (alt13) {
+            switch (alt12) {
                 case 1 :
-                    // InternalComputation.g:2267:3: rule__ProductExpression__ConstantAssignment_0
+                    // InternalComputation.g:2040:3: rule__ProductExpression__ConstantAssignment_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ProductExpression__ConstantAssignment_0();
@@ -6907,14 +6211,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__Group__1"
-    // InternalComputation.g:2275:1: rule__ProductExpression__Group__1 : rule__ProductExpression__Group__1__Impl ;
+    // InternalComputation.g:2048:1: rule__ProductExpression__Group__1 : rule__ProductExpression__Group__1__Impl ;
     public final void rule__ProductExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2279:1: ( rule__ProductExpression__Group__1__Impl )
-            // InternalComputation.g:2280:2: rule__ProductExpression__Group__1__Impl
+            // InternalComputation.g:2052:1: ( rule__ProductExpression__Group__1__Impl )
+            // InternalComputation.g:2053:2: rule__ProductExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ProductExpression__Group__1__Impl();
@@ -6940,21 +6244,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__Group__1__Impl"
-    // InternalComputation.g:2286:1: rule__ProductExpression__Group__1__Impl : ( ( rule__ProductExpression__Group_1__0 ) ) ;
+    // InternalComputation.g:2059:1: rule__ProductExpression__Group__1__Impl : ( ( rule__ProductExpression__Group_1__0 ) ) ;
     public final void rule__ProductExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2290:1: ( ( ( rule__ProductExpression__Group_1__0 ) ) )
-            // InternalComputation.g:2291:1: ( ( rule__ProductExpression__Group_1__0 ) )
+            // InternalComputation.g:2063:1: ( ( ( rule__ProductExpression__Group_1__0 ) ) )
+            // InternalComputation.g:2064:1: ( ( rule__ProductExpression__Group_1__0 ) )
             {
-            // InternalComputation.g:2291:1: ( ( rule__ProductExpression__Group_1__0 ) )
-            // InternalComputation.g:2292:2: ( rule__ProductExpression__Group_1__0 )
+            // InternalComputation.g:2064:1: ( ( rule__ProductExpression__Group_1__0 ) )
+            // InternalComputation.g:2065:2: ( rule__ProductExpression__Group_1__0 )
             {
              before(grammarAccess.getProductExpressionAccess().getGroup_1()); 
-            // InternalComputation.g:2293:2: ( rule__ProductExpression__Group_1__0 )
-            // InternalComputation.g:2293:3: rule__ProductExpression__Group_1__0
+            // InternalComputation.g:2066:2: ( rule__ProductExpression__Group_1__0 )
+            // InternalComputation.g:2066:3: rule__ProductExpression__Group_1__0
             {
             pushFollow(FOLLOW_2);
             rule__ProductExpression__Group_1__0();
@@ -6987,14 +6291,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__Group_1__0"
-    // InternalComputation.g:2302:1: rule__ProductExpression__Group_1__0 : rule__ProductExpression__Group_1__0__Impl rule__ProductExpression__Group_1__1 ;
+    // InternalComputation.g:2075:1: rule__ProductExpression__Group_1__0 : rule__ProductExpression__Group_1__0__Impl rule__ProductExpression__Group_1__1 ;
     public final void rule__ProductExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2306:1: ( rule__ProductExpression__Group_1__0__Impl rule__ProductExpression__Group_1__1 )
-            // InternalComputation.g:2307:2: rule__ProductExpression__Group_1__0__Impl rule__ProductExpression__Group_1__1
+            // InternalComputation.g:2079:1: ( rule__ProductExpression__Group_1__0__Impl rule__ProductExpression__Group_1__1 )
+            // InternalComputation.g:2080:2: rule__ProductExpression__Group_1__0__Impl rule__ProductExpression__Group_1__1
             {
             pushFollow(FOLLOW_7);
             rule__ProductExpression__Group_1__0__Impl();
@@ -7025,21 +6329,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__Group_1__0__Impl"
-    // InternalComputation.g:2314:1: rule__ProductExpression__Group_1__0__Impl : ( ( rule__ProductExpression__TermsAssignment_1_0 ) ) ;
+    // InternalComputation.g:2087:1: rule__ProductExpression__Group_1__0__Impl : ( ( rule__ProductExpression__TermsAssignment_1_0 ) ) ;
     public final void rule__ProductExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2318:1: ( ( ( rule__ProductExpression__TermsAssignment_1_0 ) ) )
-            // InternalComputation.g:2319:1: ( ( rule__ProductExpression__TermsAssignment_1_0 ) )
+            // InternalComputation.g:2091:1: ( ( ( rule__ProductExpression__TermsAssignment_1_0 ) ) )
+            // InternalComputation.g:2092:1: ( ( rule__ProductExpression__TermsAssignment_1_0 ) )
             {
-            // InternalComputation.g:2319:1: ( ( rule__ProductExpression__TermsAssignment_1_0 ) )
-            // InternalComputation.g:2320:2: ( rule__ProductExpression__TermsAssignment_1_0 )
+            // InternalComputation.g:2092:1: ( ( rule__ProductExpression__TermsAssignment_1_0 ) )
+            // InternalComputation.g:2093:2: ( rule__ProductExpression__TermsAssignment_1_0 )
             {
              before(grammarAccess.getProductExpressionAccess().getTermsAssignment_1_0()); 
-            // InternalComputation.g:2321:2: ( rule__ProductExpression__TermsAssignment_1_0 )
-            // InternalComputation.g:2321:3: rule__ProductExpression__TermsAssignment_1_0
+            // InternalComputation.g:2094:2: ( rule__ProductExpression__TermsAssignment_1_0 )
+            // InternalComputation.g:2094:3: rule__ProductExpression__TermsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
             rule__ProductExpression__TermsAssignment_1_0();
@@ -7072,14 +6376,14 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__Group_1__1"
-    // InternalComputation.g:2329:1: rule__ProductExpression__Group_1__1 : rule__ProductExpression__Group_1__1__Impl ;
+    // InternalComputation.g:2102:1: rule__ProductExpression__Group_1__1 : rule__ProductExpression__Group_1__1__Impl ;
     public final void rule__ProductExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2333:1: ( rule__ProductExpression__Group_1__1__Impl )
-            // InternalComputation.g:2334:2: rule__ProductExpression__Group_1__1__Impl
+            // InternalComputation.g:2106:1: ( rule__ProductExpression__Group_1__1__Impl )
+            // InternalComputation.g:2107:2: rule__ProductExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ProductExpression__Group_1__1__Impl();
@@ -7105,33 +6409,33 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__Group_1__1__Impl"
-    // InternalComputation.g:2340:1: rule__ProductExpression__Group_1__1__Impl : ( ( rule__ProductExpression__TermsAssignment_1_1 )* ) ;
+    // InternalComputation.g:2113:1: rule__ProductExpression__Group_1__1__Impl : ( ( rule__ProductExpression__TermsAssignment_1_1 )* ) ;
     public final void rule__ProductExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2344:1: ( ( ( rule__ProductExpression__TermsAssignment_1_1 )* ) )
-            // InternalComputation.g:2345:1: ( ( rule__ProductExpression__TermsAssignment_1_1 )* )
+            // InternalComputation.g:2117:1: ( ( ( rule__ProductExpression__TermsAssignment_1_1 )* ) )
+            // InternalComputation.g:2118:1: ( ( rule__ProductExpression__TermsAssignment_1_1 )* )
             {
-            // InternalComputation.g:2345:1: ( ( rule__ProductExpression__TermsAssignment_1_1 )* )
-            // InternalComputation.g:2346:2: ( rule__ProductExpression__TermsAssignment_1_1 )*
+            // InternalComputation.g:2118:1: ( ( rule__ProductExpression__TermsAssignment_1_1 )* )
+            // InternalComputation.g:2119:2: ( rule__ProductExpression__TermsAssignment_1_1 )*
             {
              before(grammarAccess.getProductExpressionAccess().getTermsAssignment_1_1()); 
-            // InternalComputation.g:2347:2: ( rule__ProductExpression__TermsAssignment_1_1 )*
-            loop14:
+            // InternalComputation.g:2120:2: ( rule__ProductExpression__TermsAssignment_1_1 )*
+            loop13:
             do {
-                int alt14=2;
-                int LA14_0 = input.LA(1);
+                int alt13=2;
+                int LA13_0 = input.LA(1);
 
-                if ( (LA14_0==RULE_ID) ) {
-                    alt14=1;
+                if ( (LA13_0==RULE_ID) ) {
+                    alt13=1;
                 }
 
 
-                switch (alt14) {
+                switch (alt13) {
             	case 1 :
-            	    // InternalComputation.g:2347:3: rule__ProductExpression__TermsAssignment_1_1
+            	    // InternalComputation.g:2120:3: rule__ProductExpression__TermsAssignment_1_1
             	    {
             	    pushFollow(FOLLOW_29);
             	    rule__ProductExpression__TermsAssignment_1_1();
@@ -7143,7 +6447,7 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
             	    break;
 
             	default :
-            	    break loop14;
+            	    break loop13;
                 }
             } while (true);
 
@@ -7170,17 +6474,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationModel__ParametersAssignment_0"
-    // InternalComputation.g:2356:1: rule__ComputationModel__ParametersAssignment_0 : ( ruleParameter ) ;
+    // InternalComputation.g:2129:1: rule__ComputationModel__ParametersAssignment_0 : ( ruleParameter ) ;
     public final void rule__ComputationModel__ParametersAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2360:1: ( ( ruleParameter ) )
-            // InternalComputation.g:2361:2: ( ruleParameter )
+            // InternalComputation.g:2133:1: ( ( ruleParameter ) )
+            // InternalComputation.g:2134:2: ( ruleParameter )
             {
-            // InternalComputation.g:2361:2: ( ruleParameter )
-            // InternalComputation.g:2362:3: ruleParameter
+            // InternalComputation.g:2134:2: ( ruleParameter )
+            // InternalComputation.g:2135:3: ruleParameter
             {
              before(grammarAccess.getComputationModelAccess().getParametersParameterParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -7211,17 +6515,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationModel__TargetDesignAssignment_1"
-    // InternalComputation.g:2371:1: rule__ComputationModel__TargetDesignAssignment_1 : ( ruleHWTargetDesign ) ;
+    // InternalComputation.g:2144:1: rule__ComputationModel__TargetDesignAssignment_1 : ( ruleHWTargetDesign ) ;
     public final void rule__ComputationModel__TargetDesignAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2375:1: ( ( ruleHWTargetDesign ) )
-            // InternalComputation.g:2376:2: ( ruleHWTargetDesign )
+            // InternalComputation.g:2148:1: ( ( ruleHWTargetDesign ) )
+            // InternalComputation.g:2149:2: ( ruleHWTargetDesign )
             {
-            // InternalComputation.g:2376:2: ( ruleHWTargetDesign )
-            // InternalComputation.g:2377:3: ruleHWTargetDesign
+            // InternalComputation.g:2149:2: ( ruleHWTargetDesign )
+            // InternalComputation.g:2150:3: ruleHWTargetDesign
             {
              before(grammarAccess.getComputationModelAccess().getTargetDesignHWTargetDesignParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -7252,17 +6556,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationModel__BlocksAssignment_2"
-    // InternalComputation.g:2386:1: rule__ComputationModel__BlocksAssignment_2 : ( ruleComputationBlock ) ;
+    // InternalComputation.g:2159:1: rule__ComputationModel__BlocksAssignment_2 : ( ruleComputationBlock ) ;
     public final void rule__ComputationModel__BlocksAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2390:1: ( ( ruleComputationBlock ) )
-            // InternalComputation.g:2391:2: ( ruleComputationBlock )
+            // InternalComputation.g:2163:1: ( ( ruleComputationBlock ) )
+            // InternalComputation.g:2164:2: ( ruleComputationBlock )
             {
-            // InternalComputation.g:2391:2: ( ruleComputationBlock )
-            // InternalComputation.g:2392:3: ruleComputationBlock
+            // InternalComputation.g:2164:2: ( ruleComputationBlock )
+            // InternalComputation.g:2165:3: ruleComputationBlock
             {
              before(grammarAccess.getComputationModelAccess().getBlocksComputationBlockParserRuleCall_2_0()); 
             pushFollow(FOLLOW_2);
@@ -7293,17 +6597,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__NameAssignment_1"
-    // InternalComputation.g:2401:1: rule__Parameter__NameAssignment_1 : ( RULE_ID ) ;
+    // InternalComputation.g:2174:1: rule__Parameter__NameAssignment_1 : ( RULE_ID ) ;
     public final void rule__Parameter__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2405:1: ( ( RULE_ID ) )
-            // InternalComputation.g:2406:2: ( RULE_ID )
+            // InternalComputation.g:2178:1: ( ( RULE_ID ) )
+            // InternalComputation.g:2179:2: ( RULE_ID )
             {
-            // InternalComputation.g:2406:2: ( RULE_ID )
-            // InternalComputation.g:2407:3: RULE_ID
+            // InternalComputation.g:2179:2: ( RULE_ID )
+            // InternalComputation.g:2180:3: RULE_ID
             {
              before(grammarAccess.getParameterAccess().getNameIDTerminalRuleCall_1_0()); 
             match(input,RULE_ID,FOLLOW_2); 
@@ -7330,17 +6634,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Parameter__ValueAssignment_3"
-    // InternalComputation.g:2416:1: rule__Parameter__ValueAssignment_3 : ( RULE_INT ) ;
+    // InternalComputation.g:2189:1: rule__Parameter__ValueAssignment_3 : ( RULE_INT ) ;
     public final void rule__Parameter__ValueAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2420:1: ( ( RULE_INT ) )
-            // InternalComputation.g:2421:2: ( RULE_INT )
+            // InternalComputation.g:2193:1: ( ( RULE_INT ) )
+            // InternalComputation.g:2194:2: ( RULE_INT )
             {
-            // InternalComputation.g:2421:2: ( RULE_INT )
-            // InternalComputation.g:2422:3: RULE_INT
+            // InternalComputation.g:2194:2: ( RULE_INT )
+            // InternalComputation.g:2195:3: RULE_INT
             {
              before(grammarAccess.getParameterAccess().getValueINTTerminalRuleCall_3_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -7367,17 +6671,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__FrequencyAssignment_4"
-    // InternalComputation.g:2431:1: rule__HWTargetDesign__FrequencyAssignment_4 : ( RULE_INT ) ;
+    // InternalComputation.g:2204:1: rule__HWTargetDesign__FrequencyAssignment_4 : ( RULE_INT ) ;
     public final void rule__HWTargetDesign__FrequencyAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2435:1: ( ( RULE_INT ) )
-            // InternalComputation.g:2436:2: ( RULE_INT )
+            // InternalComputation.g:2208:1: ( ( RULE_INT ) )
+            // InternalComputation.g:2209:2: ( RULE_INT )
             {
-            // InternalComputation.g:2436:2: ( RULE_INT )
-            // InternalComputation.g:2437:3: RULE_INT
+            // InternalComputation.g:2209:2: ( RULE_INT )
+            // InternalComputation.g:2210:3: RULE_INT
             {
              before(grammarAccess.getHWTargetDesignAccess().getFrequencyINTTerminalRuleCall_4_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -7404,17 +6708,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__OutputsPerCycleAssignment_7"
-    // InternalComputation.g:2446:1: rule__HWTargetDesign__OutputsPerCycleAssignment_7 : ( RULE_INT ) ;
+    // InternalComputation.g:2219:1: rule__HWTargetDesign__OutputsPerCycleAssignment_7 : ( RULE_INT ) ;
     public final void rule__HWTargetDesign__OutputsPerCycleAssignment_7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2450:1: ( ( RULE_INT ) )
-            // InternalComputation.g:2451:2: ( RULE_INT )
+            // InternalComputation.g:2223:1: ( ( RULE_INT ) )
+            // InternalComputation.g:2224:2: ( RULE_INT )
             {
-            // InternalComputation.g:2451:2: ( RULE_INT )
-            // InternalComputation.g:2452:3: RULE_INT
+            // InternalComputation.g:2224:2: ( RULE_INT )
+            // InternalComputation.g:2225:3: RULE_INT
             {
              before(grammarAccess.getHWTargetDesignAccess().getOutputsPerCycleINTTerminalRuleCall_7_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -7441,17 +6745,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__HWTargetDesign__ProblemSizeExprAssignment_10"
-    // InternalComputation.g:2461:1: rule__HWTargetDesign__ProblemSizeExprAssignment_10 : ( ruleSummationExpression ) ;
+    // InternalComputation.g:2234:1: rule__HWTargetDesign__ProblemSizeExprAssignment_10 : ( ruleSummationExpression ) ;
     public final void rule__HWTargetDesign__ProblemSizeExprAssignment_10() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2465:1: ( ( ruleSummationExpression ) )
-            // InternalComputation.g:2466:2: ( ruleSummationExpression )
+            // InternalComputation.g:2238:1: ( ( ruleSummationExpression ) )
+            // InternalComputation.g:2239:2: ( ruleSummationExpression )
             {
-            // InternalComputation.g:2466:2: ( ruleSummationExpression )
-            // InternalComputation.g:2467:3: ruleSummationExpression
+            // InternalComputation.g:2239:2: ( ruleSummationExpression )
+            // InternalComputation.g:2240:3: ruleSummationExpression
             {
              before(grammarAccess.getHWTargetDesignAccess().getProblemSizeExprSummationExpressionParserRuleCall_10_0()); 
             pushFollow(FOLLOW_2);
@@ -7482,17 +6786,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__NameAssignment_1"
-    // InternalComputation.g:2476:1: rule__ComputationBlock__NameAssignment_1 : ( RULE_ID ) ;
+    // InternalComputation.g:2249:1: rule__ComputationBlock__NameAssignment_1 : ( RULE_ID ) ;
     public final void rule__ComputationBlock__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2480:1: ( ( RULE_ID ) )
-            // InternalComputation.g:2481:2: ( RULE_ID )
+            // InternalComputation.g:2253:1: ( ( RULE_ID ) )
+            // InternalComputation.g:2254:2: ( RULE_ID )
             {
-            // InternalComputation.g:2481:2: ( RULE_ID )
-            // InternalComputation.g:2482:3: RULE_ID
+            // InternalComputation.g:2254:2: ( RULE_ID )
+            // InternalComputation.g:2255:3: RULE_ID
             {
              before(grammarAccess.getComputationBlockAccess().getNameIDTerminalRuleCall_1_0()); 
             match(input,RULE_ID,FOLLOW_2); 
@@ -7519,17 +6823,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ComputationBlock__OperationsAssignment_3"
-    // InternalComputation.g:2491:1: rule__ComputationBlock__OperationsAssignment_3 : ( ruleOperation ) ;
+    // InternalComputation.g:2264:1: rule__ComputationBlock__OperationsAssignment_3 : ( ruleOperation ) ;
     public final void rule__ComputationBlock__OperationsAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2495:1: ( ( ruleOperation ) )
-            // InternalComputation.g:2496:2: ( ruleOperation )
+            // InternalComputation.g:2268:1: ( ( ruleOperation ) )
+            // InternalComputation.g:2269:2: ( ruleOperation )
             {
-            // InternalComputation.g:2496:2: ( ruleOperation )
-            // InternalComputation.g:2497:3: ruleOperation
+            // InternalComputation.g:2269:2: ( ruleOperation )
+            // InternalComputation.g:2270:3: ruleOperation
             {
              before(grammarAccess.getComputationBlockAccess().getOperationsOperationParserRuleCall_3_0()); 
             pushFollow(FOLLOW_2);
@@ -7560,17 +6864,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__OpTypeAssignment_0"
-    // InternalComputation.g:2506:1: rule__Operation__OpTypeAssignment_0 : ( ruleOP ) ;
+    // InternalComputation.g:2279:1: rule__Operation__OpTypeAssignment_0 : ( ruleOP ) ;
     public final void rule__Operation__OpTypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2510:1: ( ( ruleOP ) )
-            // InternalComputation.g:2511:2: ( ruleOP )
+            // InternalComputation.g:2283:1: ( ( ruleOP ) )
+            // InternalComputation.g:2284:2: ( ruleOP )
             {
-            // InternalComputation.g:2511:2: ( ruleOP )
-            // InternalComputation.g:2512:3: ruleOP
+            // InternalComputation.g:2284:2: ( ruleOP )
+            // InternalComputation.g:2285:3: ruleOP
             {
              before(grammarAccess.getOperationAccess().getOpTypeOPParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -7601,17 +6905,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__OutputExprAssignment_2"
-    // InternalComputation.g:2521:1: rule__Operation__OutputExprAssignment_2 : ( ruleOperandExpression ) ;
+    // InternalComputation.g:2294:1: rule__Operation__OutputExprAssignment_2 : ( ruleOperandExpression ) ;
     public final void rule__Operation__OutputExprAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2525:1: ( ( ruleOperandExpression ) )
-            // InternalComputation.g:2526:2: ( ruleOperandExpression )
+            // InternalComputation.g:2298:1: ( ( ruleOperandExpression ) )
+            // InternalComputation.g:2299:2: ( ruleOperandExpression )
             {
-            // InternalComputation.g:2526:2: ( ruleOperandExpression )
-            // InternalComputation.g:2527:3: ruleOperandExpression
+            // InternalComputation.g:2299:2: ( ruleOperandExpression )
+            // InternalComputation.g:2300:3: ruleOperandExpression
             {
              before(grammarAccess.getOperationAccess().getOutputExprOperandExpressionParserRuleCall_2_0()); 
             pushFollow(FOLLOW_2);
@@ -7642,17 +6946,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__InputExpr1Assignment_4"
-    // InternalComputation.g:2536:1: rule__Operation__InputExpr1Assignment_4 : ( ruleOperandExpression ) ;
+    // InternalComputation.g:2309:1: rule__Operation__InputExpr1Assignment_4 : ( ruleOperandExpression ) ;
     public final void rule__Operation__InputExpr1Assignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2540:1: ( ( ruleOperandExpression ) )
-            // InternalComputation.g:2541:2: ( ruleOperandExpression )
+            // InternalComputation.g:2313:1: ( ( ruleOperandExpression ) )
+            // InternalComputation.g:2314:2: ( ruleOperandExpression )
             {
-            // InternalComputation.g:2541:2: ( ruleOperandExpression )
-            // InternalComputation.g:2542:3: ruleOperandExpression
+            // InternalComputation.g:2314:2: ( ruleOperandExpression )
+            // InternalComputation.g:2315:3: ruleOperandExpression
             {
              before(grammarAccess.getOperationAccess().getInputExpr1OperandExpressionParserRuleCall_4_0()); 
             pushFollow(FOLLOW_2);
@@ -7683,17 +6987,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__InputExpr2Assignment_6"
-    // InternalComputation.g:2551:1: rule__Operation__InputExpr2Assignment_6 : ( ruleOperandExpression ) ;
+    // InternalComputation.g:2324:1: rule__Operation__InputExpr2Assignment_6 : ( ruleOperandExpression ) ;
     public final void rule__Operation__InputExpr2Assignment_6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2555:1: ( ( ruleOperandExpression ) )
-            // InternalComputation.g:2556:2: ( ruleOperandExpression )
+            // InternalComputation.g:2328:1: ( ( ruleOperandExpression ) )
+            // InternalComputation.g:2329:2: ( ruleOperandExpression )
             {
-            // InternalComputation.g:2556:2: ( ruleOperandExpression )
-            // InternalComputation.g:2557:3: ruleOperandExpression
+            // InternalComputation.g:2329:2: ( ruleOperandExpression )
+            // InternalComputation.g:2330:3: ruleOperandExpression
             {
              before(grammarAccess.getOperationAccess().getInputExpr2OperandExpressionParserRuleCall_6_0()); 
             pushFollow(FOLLOW_2);
@@ -7724,17 +7028,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__Operation__NumOpsAssignment_8"
-    // InternalComputation.g:2566:1: rule__Operation__NumOpsAssignment_8 : ( ruleSummationExpression ) ;
+    // InternalComputation.g:2339:1: rule__Operation__NumOpsAssignment_8 : ( ruleSummationExpression ) ;
     public final void rule__Operation__NumOpsAssignment_8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2570:1: ( ( ruleSummationExpression ) )
-            // InternalComputation.g:2571:2: ( ruleSummationExpression )
+            // InternalComputation.g:2343:1: ( ( ruleSummationExpression ) )
+            // InternalComputation.g:2344:2: ( ruleSummationExpression )
             {
-            // InternalComputation.g:2571:2: ( ruleSummationExpression )
-            // InternalComputation.g:2572:3: ruleSummationExpression
+            // InternalComputation.g:2344:2: ( ruleSummationExpression )
+            // InternalComputation.g:2345:3: ruleSummationExpression
             {
              before(grammarAccess.getOperationAccess().getNumOpsSummationExpressionParserRuleCall_8_0()); 
             pushFollow(FOLLOW_2);
@@ -7765,17 +7069,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__ExprsAssignment_2"
-    // InternalComputation.g:2581:1: rule__MaxExpression__ExprsAssignment_2 : ( ruleTerminalOperandExpression ) ;
+    // InternalComputation.g:2354:1: rule__MaxExpression__ExprsAssignment_2 : ( ruleTerminalOperandExpression ) ;
     public final void rule__MaxExpression__ExprsAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2585:1: ( ( ruleTerminalOperandExpression ) )
-            // InternalComputation.g:2586:2: ( ruleTerminalOperandExpression )
+            // InternalComputation.g:2358:1: ( ( ruleTerminalOperandExpression ) )
+            // InternalComputation.g:2359:2: ( ruleTerminalOperandExpression )
             {
-            // InternalComputation.g:2586:2: ( ruleTerminalOperandExpression )
-            // InternalComputation.g:2587:3: ruleTerminalOperandExpression
+            // InternalComputation.g:2359:2: ( ruleTerminalOperandExpression )
+            // InternalComputation.g:2360:3: ruleTerminalOperandExpression
             {
              before(grammarAccess.getMaxExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_2_0()); 
             pushFollow(FOLLOW_2);
@@ -7806,17 +7110,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__MaxExpression__ExprsAssignment_3_1"
-    // InternalComputation.g:2596:1: rule__MaxExpression__ExprsAssignment_3_1 : ( ruleTerminalOperandExpression ) ;
+    // InternalComputation.g:2369:1: rule__MaxExpression__ExprsAssignment_3_1 : ( ruleTerminalOperandExpression ) ;
     public final void rule__MaxExpression__ExprsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2600:1: ( ( ruleTerminalOperandExpression ) )
-            // InternalComputation.g:2601:2: ( ruleTerminalOperandExpression )
+            // InternalComputation.g:2373:1: ( ( ruleTerminalOperandExpression ) )
+            // InternalComputation.g:2374:2: ( ruleTerminalOperandExpression )
             {
-            // InternalComputation.g:2601:2: ( ruleTerminalOperandExpression )
-            // InternalComputation.g:2602:3: ruleTerminalOperandExpression
+            // InternalComputation.g:2374:2: ( ruleTerminalOperandExpression )
+            // InternalComputation.g:2375:3: ruleTerminalOperandExpression
             {
              before(grammarAccess.getMaxExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_3_1_0()); 
             pushFollow(FOLLOW_2);
@@ -7846,100 +7150,18 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
     // $ANTLR end "rule__MaxExpression__ExprsAssignment_3_1"
 
 
-    // $ANTLR start "rule__SumExpression__ExprsAssignment_2"
-    // InternalComputation.g:2611:1: rule__SumExpression__ExprsAssignment_2 : ( ruleTerminalOperandExpression ) ;
-    public final void rule__SumExpression__ExprsAssignment_2() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalComputation.g:2615:1: ( ( ruleTerminalOperandExpression ) )
-            // InternalComputation.g:2616:2: ( ruleTerminalOperandExpression )
-            {
-            // InternalComputation.g:2616:2: ( ruleTerminalOperandExpression )
-            // InternalComputation.g:2617:3: ruleTerminalOperandExpression
-            {
-             before(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_2_0()); 
-            pushFollow(FOLLOW_2);
-            ruleTerminalOperandExpression();
-
-            state._fsp--;
-
-             after(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_2_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__SumExpression__ExprsAssignment_2"
-
-
-    // $ANTLR start "rule__SumExpression__ExprsAssignment_3_1"
-    // InternalComputation.g:2626:1: rule__SumExpression__ExprsAssignment_3_1 : ( ruleTerminalOperandExpression ) ;
-    public final void rule__SumExpression__ExprsAssignment_3_1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalComputation.g:2630:1: ( ( ruleTerminalOperandExpression ) )
-            // InternalComputation.g:2631:2: ( ruleTerminalOperandExpression )
-            {
-            // InternalComputation.g:2631:2: ( ruleTerminalOperandExpression )
-            // InternalComputation.g:2632:3: ruleTerminalOperandExpression
-            {
-             before(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_3_1_0()); 
-            pushFollow(FOLLOW_2);
-            ruleTerminalOperandExpression();
-
-            state._fsp--;
-
-             after(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_3_1_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__SumExpression__ExprsAssignment_3_1"
-
-
     // $ANTLR start "rule__AddExpression__Op1Assignment_1"
-    // InternalComputation.g:2641:1: rule__AddExpression__Op1Assignment_1 : ( ruleOperandExpression ) ;
+    // InternalComputation.g:2384:1: rule__AddExpression__Op1Assignment_1 : ( ruleOperandExpression ) ;
     public final void rule__AddExpression__Op1Assignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2645:1: ( ( ruleOperandExpression ) )
-            // InternalComputation.g:2646:2: ( ruleOperandExpression )
+            // InternalComputation.g:2388:1: ( ( ruleOperandExpression ) )
+            // InternalComputation.g:2389:2: ( ruleOperandExpression )
             {
-            // InternalComputation.g:2646:2: ( ruleOperandExpression )
-            // InternalComputation.g:2647:3: ruleOperandExpression
+            // InternalComputation.g:2389:2: ( ruleOperandExpression )
+            // InternalComputation.g:2390:3: ruleOperandExpression
             {
              before(grammarAccess.getAddExpressionAccess().getOp1OperandExpressionParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -7970,17 +7192,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__AddExpression__Op2Assignment_3"
-    // InternalComputation.g:2656:1: rule__AddExpression__Op2Assignment_3 : ( ruleOperandExpression ) ;
+    // InternalComputation.g:2399:1: rule__AddExpression__Op2Assignment_3 : ( ruleOperandExpression ) ;
     public final void rule__AddExpression__Op2Assignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2660:1: ( ( ruleOperandExpression ) )
-            // InternalComputation.g:2661:2: ( ruleOperandExpression )
+            // InternalComputation.g:2403:1: ( ( ruleOperandExpression ) )
+            // InternalComputation.g:2404:2: ( ruleOperandExpression )
             {
-            // InternalComputation.g:2661:2: ( ruleOperandExpression )
-            // InternalComputation.g:2662:3: ruleOperandExpression
+            // InternalComputation.g:2404:2: ( ruleOperandExpression )
+            // InternalComputation.g:2405:3: ruleOperandExpression
             {
              before(grammarAccess.getAddExpressionAccess().getOp2OperandExpressionParserRuleCall_3_0()); 
             pushFollow(FOLLOW_2);
@@ -8011,17 +7233,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__OperandTerm__CoefAssignment_0"
-    // InternalComputation.g:2671:1: rule__OperandTerm__CoefAssignment_0 : ( RULE_INT ) ;
+    // InternalComputation.g:2414:1: rule__OperandTerm__CoefAssignment_0 : ( RULE_INT ) ;
     public final void rule__OperandTerm__CoefAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2675:1: ( ( RULE_INT ) )
-            // InternalComputation.g:2676:2: ( RULE_INT )
+            // InternalComputation.g:2418:1: ( ( RULE_INT ) )
+            // InternalComputation.g:2419:2: ( RULE_INT )
             {
-            // InternalComputation.g:2676:2: ( RULE_INT )
-            // InternalComputation.g:2677:3: RULE_INT
+            // InternalComputation.g:2419:2: ( RULE_INT )
+            // InternalComputation.g:2420:3: RULE_INT
             {
              before(grammarAccess.getOperandTermAccess().getCoefINTTerminalRuleCall_0_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -8048,17 +7270,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__OperandTerm__NameAssignment_1"
-    // InternalComputation.g:2686:1: rule__OperandTerm__NameAssignment_1 : ( RULE_ID ) ;
+    // InternalComputation.g:2429:1: rule__OperandTerm__NameAssignment_1 : ( RULE_ID ) ;
     public final void rule__OperandTerm__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2690:1: ( ( RULE_ID ) )
-            // InternalComputation.g:2691:2: ( RULE_ID )
+            // InternalComputation.g:2433:1: ( ( RULE_ID ) )
+            // InternalComputation.g:2434:2: ( RULE_ID )
             {
-            // InternalComputation.g:2691:2: ( RULE_ID )
-            // InternalComputation.g:2692:3: RULE_ID
+            // InternalComputation.g:2434:2: ( RULE_ID )
+            // InternalComputation.g:2435:3: RULE_ID
             {
              before(grammarAccess.getOperandTermAccess().getNameIDTerminalRuleCall_1_0()); 
             match(input,RULE_ID,FOLLOW_2); 
@@ -8085,17 +7307,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__TermsAssignment_0_0_0"
-    // InternalComputation.g:2701:1: rule__SummationExpression__TermsAssignment_0_0_0 : ( ruleProductExpression ) ;
+    // InternalComputation.g:2444:1: rule__SummationExpression__TermsAssignment_0_0_0 : ( ruleProductExpression ) ;
     public final void rule__SummationExpression__TermsAssignment_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2705:1: ( ( ruleProductExpression ) )
-            // InternalComputation.g:2706:2: ( ruleProductExpression )
+            // InternalComputation.g:2448:1: ( ( ruleProductExpression ) )
+            // InternalComputation.g:2449:2: ( ruleProductExpression )
             {
-            // InternalComputation.g:2706:2: ( ruleProductExpression )
-            // InternalComputation.g:2707:3: ruleProductExpression
+            // InternalComputation.g:2449:2: ( ruleProductExpression )
+            // InternalComputation.g:2450:3: ruleProductExpression
             {
              before(grammarAccess.getSummationExpressionAccess().getTermsProductExpressionParserRuleCall_0_0_0_0()); 
             pushFollow(FOLLOW_2);
@@ -8126,17 +7348,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__TermsAssignment_0_0_1_1"
-    // InternalComputation.g:2716:1: rule__SummationExpression__TermsAssignment_0_0_1_1 : ( ruleProductExpression ) ;
+    // InternalComputation.g:2459:1: rule__SummationExpression__TermsAssignment_0_0_1_1 : ( ruleProductExpression ) ;
     public final void rule__SummationExpression__TermsAssignment_0_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2720:1: ( ( ruleProductExpression ) )
-            // InternalComputation.g:2721:2: ( ruleProductExpression )
+            // InternalComputation.g:2463:1: ( ( ruleProductExpression ) )
+            // InternalComputation.g:2464:2: ( ruleProductExpression )
             {
-            // InternalComputation.g:2721:2: ( ruleProductExpression )
-            // InternalComputation.g:2722:3: ruleProductExpression
+            // InternalComputation.g:2464:2: ( ruleProductExpression )
+            // InternalComputation.g:2465:3: ruleProductExpression
             {
              before(grammarAccess.getSummationExpressionAccess().getTermsProductExpressionParserRuleCall_0_0_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -8167,17 +7389,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__ConstantAssignment_0_1_1"
-    // InternalComputation.g:2731:1: rule__SummationExpression__ConstantAssignment_0_1_1 : ( RULE_INT ) ;
+    // InternalComputation.g:2474:1: rule__SummationExpression__ConstantAssignment_0_1_1 : ( RULE_INT ) ;
     public final void rule__SummationExpression__ConstantAssignment_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2735:1: ( ( RULE_INT ) )
-            // InternalComputation.g:2736:2: ( RULE_INT )
+            // InternalComputation.g:2478:1: ( ( RULE_INT ) )
+            // InternalComputation.g:2479:2: ( RULE_INT )
             {
-            // InternalComputation.g:2736:2: ( RULE_INT )
-            // InternalComputation.g:2737:3: RULE_INT
+            // InternalComputation.g:2479:2: ( RULE_INT )
+            // InternalComputation.g:2480:3: RULE_INT
             {
              before(grammarAccess.getSummationExpressionAccess().getConstantINTTerminalRuleCall_0_1_1_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -8204,17 +7426,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__SummationExpression__ConstantAssignment_1"
-    // InternalComputation.g:2746:1: rule__SummationExpression__ConstantAssignment_1 : ( RULE_INT ) ;
+    // InternalComputation.g:2489:1: rule__SummationExpression__ConstantAssignment_1 : ( RULE_INT ) ;
     public final void rule__SummationExpression__ConstantAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2750:1: ( ( RULE_INT ) )
-            // InternalComputation.g:2751:2: ( RULE_INT )
+            // InternalComputation.g:2493:1: ( ( RULE_INT ) )
+            // InternalComputation.g:2494:2: ( RULE_INT )
             {
-            // InternalComputation.g:2751:2: ( RULE_INT )
-            // InternalComputation.g:2752:3: RULE_INT
+            // InternalComputation.g:2494:2: ( RULE_INT )
+            // InternalComputation.g:2495:3: RULE_INT
             {
              before(grammarAccess.getSummationExpressionAccess().getConstantINTTerminalRuleCall_1_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -8241,17 +7463,17 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__ConstantAssignment_0"
-    // InternalComputation.g:2761:1: rule__ProductExpression__ConstantAssignment_0 : ( RULE_INT ) ;
+    // InternalComputation.g:2504:1: rule__ProductExpression__ConstantAssignment_0 : ( RULE_INT ) ;
     public final void rule__ProductExpression__ConstantAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2765:1: ( ( RULE_INT ) )
-            // InternalComputation.g:2766:2: ( RULE_INT )
+            // InternalComputation.g:2508:1: ( ( RULE_INT ) )
+            // InternalComputation.g:2509:2: ( RULE_INT )
             {
-            // InternalComputation.g:2766:2: ( RULE_INT )
-            // InternalComputation.g:2767:3: RULE_INT
+            // InternalComputation.g:2509:2: ( RULE_INT )
+            // InternalComputation.g:2510:3: RULE_INT
             {
              before(grammarAccess.getProductExpressionAccess().getConstantINTTerminalRuleCall_0_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -8278,21 +7500,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__TermsAssignment_1_0"
-    // InternalComputation.g:2776:1: rule__ProductExpression__TermsAssignment_1_0 : ( ( RULE_ID ) ) ;
+    // InternalComputation.g:2519:1: rule__ProductExpression__TermsAssignment_1_0 : ( ( RULE_ID ) ) ;
     public final void rule__ProductExpression__TermsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2780:1: ( ( ( RULE_ID ) ) )
-            // InternalComputation.g:2781:2: ( ( RULE_ID ) )
+            // InternalComputation.g:2523:1: ( ( ( RULE_ID ) ) )
+            // InternalComputation.g:2524:2: ( ( RULE_ID ) )
             {
-            // InternalComputation.g:2781:2: ( ( RULE_ID ) )
-            // InternalComputation.g:2782:3: ( RULE_ID )
+            // InternalComputation.g:2524:2: ( ( RULE_ID ) )
+            // InternalComputation.g:2525:3: ( RULE_ID )
             {
              before(grammarAccess.getProductExpressionAccess().getTermsParameterCrossReference_1_0_0()); 
-            // InternalComputation.g:2783:3: ( RULE_ID )
-            // InternalComputation.g:2784:4: RULE_ID
+            // InternalComputation.g:2526:3: ( RULE_ID )
+            // InternalComputation.g:2527:4: RULE_ID
             {
              before(grammarAccess.getProductExpressionAccess().getTermsParameterIDTerminalRuleCall_1_0_0_1()); 
             match(input,RULE_ID,FOLLOW_2); 
@@ -8323,21 +7545,21 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
 
 
     // $ANTLR start "rule__ProductExpression__TermsAssignment_1_1"
-    // InternalComputation.g:2795:1: rule__ProductExpression__TermsAssignment_1_1 : ( ( RULE_ID ) ) ;
+    // InternalComputation.g:2538:1: rule__ProductExpression__TermsAssignment_1_1 : ( ( RULE_ID ) ) ;
     public final void rule__ProductExpression__TermsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalComputation.g:2799:1: ( ( ( RULE_ID ) ) )
-            // InternalComputation.g:2800:2: ( ( RULE_ID ) )
+            // InternalComputation.g:2542:1: ( ( ( RULE_ID ) ) )
+            // InternalComputation.g:2543:2: ( ( RULE_ID ) )
             {
-            // InternalComputation.g:2800:2: ( ( RULE_ID ) )
-            // InternalComputation.g:2801:3: ( RULE_ID )
+            // InternalComputation.g:2543:2: ( ( RULE_ID ) )
+            // InternalComputation.g:2544:3: ( RULE_ID )
             {
              before(grammarAccess.getProductExpressionAccess().getTermsParameterCrossReference_1_1_0()); 
-            // InternalComputation.g:2802:3: ( RULE_ID )
-            // InternalComputation.g:2803:4: RULE_ID
+            // InternalComputation.g:2545:3: ( RULE_ID )
+            // InternalComputation.g:2546:4: RULE_ID
             {
              before(grammarAccess.getProductExpressionAccess().getTermsParameterIDTerminalRuleCall_1_1_0_1()); 
             match(input,RULE_ID,FOLLOW_2); 
@@ -8390,15 +7612,15 @@ public class InternalComputationParser extends AbstractInternalContentAssistPars
     public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000001800L});
     public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000001802L});
     public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x000000004C000030L});
+    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x000000000C000030L});
     public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000001000000L});
     public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000002000000L});
     public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000008000000L});
     public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000020000000L});
     public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000010000000L});
     public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000020000002L});
-    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000080000000L});
-    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000080000002L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000040000000L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000040000002L});
     public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000000000012L});
 
 }
\ No newline at end of file
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ui/src-gen/fr/irisa/cairn/gecos/typeexploration/ui/contentassist/AbstractComputationProposalProvider.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ui/src-gen/fr/irisa/cairn/gecos/typeexploration/ui/contentassist/AbstractComputationProposalProvider.java
index efc5120..deca2be 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ui/src-gen/fr/irisa/cairn/gecos/typeexploration/ui/contentassist/AbstractComputationProposalProvider.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext.ui/src-gen/fr/irisa/cairn/gecos/typeexploration/ui/contentassist/AbstractComputationProposalProvider.java
@@ -66,9 +66,6 @@ public abstract class AbstractComputationProposalProvider extends TerminalsPropo
 	public void completeMaxExpression_Exprs(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeSumExpression_Exprs(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
-	}
 	public void completeAddExpression_Op1(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
@@ -118,9 +115,6 @@ public abstract class AbstractComputationProposalProvider extends TerminalsPropo
 	public void complete_MaxExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_SumExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		// subclasses may override
-	}
 	public void complete_TerminalOperandExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/Computation.xtextbin b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/Computation.xtextbin
index d2a1b4fb2f41428ed34a985e0a83cc0eaf63ef24..d1d50bf5fef734dbf56f299c83788e78962b5804 100644
GIT binary patch
delta 223
zcmX>hvrKwJJu4&M<_6Zyta{822N?NS9S$<`F!A{&R=8Fa6r~myXXfWII~-zUW^xE;
zb~wz$%)l(5uMd=-oX9P~oSRs&xrV!$vHm0@2sk`vWMgHrWpsGK$ji!|nO9I+0y4#r
zjmehX;U&oMJwQdTfQp#&3m6?<qo^_ht9k=d^%i7Q1*5||pd$9X(p>+7Vz7euAO-b6
hV?KZsSVQb({5V;jPm=GT!%2s;4mTa@9oiY07y%uII!yoo

delta 386
zcmY+;xlY4C5C&jo*J~FhAteYZDo_v+v?$WwP$CKnY8NR|*s)kFxj<SZ3LYTuK#k;<
zf<QxxJOED+?)$!HBU>U{jds3&X7(meruL1Zv20sqYTm&il@&TPD#~j~xSYlt4XvB4
zNaBd3z`De-kR!5Et8u#>_~TM1VYcP(km=jdN|62!o#mnPJT%lM2N&ci7nkHJCk#@;
z6<1=0a7`uUHh8;sWwq|%#$MGW!Yz41RF%Y?m2-sqLYkaD<dpDe$t>~1Q}N05v;D3U
zUO4GDqd3{L7caPi_q<wn!03&UY{i84A+<PAABFm~qxkGEM$=xDgsZV0h;J(l&-t-p
X$=*QtZJW|WrH>A}=;0IwyCmoj?M!3Q

diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputation.g b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputation.g
index d785ba7..0573680 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputation.g
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputation.g
@@ -562,29 +562,20 @@ ruleOperandExpression returns [EObject current=null]
 }:
 	(
 		{
-			newCompositeNode(grammarAccess.getOperandExpressionAccess().getSumExpressionParserRuleCall_0());
+			newCompositeNode(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_0());
 		}
-		this_SumExpression_0=ruleSumExpression
+		this_MaxExpression_0=ruleMaxExpression
 		{
-			$current = $this_SumExpression_0.current;
+			$current = $this_MaxExpression_0.current;
 			afterParserOrEnumRuleCall();
 		}
 		    |
 		{
-			newCompositeNode(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_1());
+			newCompositeNode(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_1());
 		}
-		this_MaxExpression_1=ruleMaxExpression
+		this_TerminalOperandExpression_1=ruleTerminalOperandExpression
 		{
-			$current = $this_MaxExpression_1.current;
-			afterParserOrEnumRuleCall();
-		}
-		    |
-		{
-			newCompositeNode(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_2());
-		}
-		this_TerminalOperandExpression_2=ruleTerminalOperandExpression
-		{
-			$current = $this_TerminalOperandExpression_2.current;
+			$current = $this_TerminalOperandExpression_1.current;
 			afterParserOrEnumRuleCall();
 		}
 	)
@@ -665,81 +656,6 @@ ruleMaxExpression returns [EObject current=null]
 	)
 ;
 
-// Entry rule entryRuleSumExpression
-entryRuleSumExpression returns [EObject current=null]:
-	{ newCompositeNode(grammarAccess.getSumExpressionRule()); }
-	iv_ruleSumExpression=ruleSumExpression
-	{ $current=$iv_ruleSumExpression.current; }
-	EOF;
-
-// Rule SumExpression
-ruleSumExpression returns [EObject current=null]
-@init {
-	enterRule();
-}
-@after {
-	leaveRule();
-}:
-	(
-		otherlv_0='sum'
-		{
-			newLeafNode(otherlv_0, grammarAccess.getSumExpressionAccess().getSumKeyword_0());
-		}
-		otherlv_1='('
-		{
-			newLeafNode(otherlv_1, grammarAccess.getSumExpressionAccess().getLeftParenthesisKeyword_1());
-		}
-		(
-			(
-				{
-					newCompositeNode(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_2_0());
-				}
-				lv_exprs_2_0=ruleTerminalOperandExpression
-				{
-					if ($current==null) {
-						$current = createModelElementForParent(grammarAccess.getSumExpressionRule());
-					}
-					add(
-						$current,
-						"exprs",
-						lv_exprs_2_0,
-						"fr.irisa.cairn.gecos.typeexploration.Computation.TerminalOperandExpression");
-					afterParserOrEnumRuleCall();
-				}
-			)
-		)
-		(
-			otherlv_3=','
-			{
-				newLeafNode(otherlv_3, grammarAccess.getSumExpressionAccess().getCommaKeyword_3_0());
-			}
-			(
-				(
-					{
-						newCompositeNode(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_3_1_0());
-					}
-					lv_exprs_4_0=ruleTerminalOperandExpression
-					{
-						if ($current==null) {
-							$current = createModelElementForParent(grammarAccess.getSumExpressionRule());
-						}
-						add(
-							$current,
-							"exprs",
-							lv_exprs_4_0,
-							"fr.irisa.cairn.gecos.typeexploration.Computation.TerminalOperandExpression");
-						afterParserOrEnumRuleCall();
-					}
-				)
-			)
-		)+
-		otherlv_5=')'
-		{
-			newLeafNode(otherlv_5, grammarAccess.getSumExpressionAccess().getRightParenthesisKeyword_4());
-		}
-	)
-;
-
 // Entry rule entryRuleTerminalOperandExpression
 entryRuleTerminalOperandExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTerminalOperandExpressionRule()); }
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputation.tokens b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputation.tokens
index 3cac8e5..7daeeec 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputation.tokens
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputation.tokens
@@ -1,6 +1,6 @@
 '('=27
 ')'=29
-'+'=31
+'+'=30
 ','=28
 ':'=23
 ';'=13
@@ -14,7 +14,6 @@
 'outputsPerCycle'=17
 'param'=11
 'problemSize'=18
-'sum'=30
 'target'=14
 'x'=25
 '{'=15
@@ -46,4 +45,3 @@ T__27=27
 T__28=28
 T__29=29
 T__30=30
-T__31=31
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputationLexer.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputationLexer.java
index 81733f8..f541841 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputationLexer.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputationLexer.java
@@ -25,7 +25,6 @@ public class InternalComputationLexer extends Lexer {
     public static final int T__14=14;
     public static final int EOF=-1;
     public static final int T__30=30;
-    public static final int T__31=31;
     public static final int RULE_ID=4;
     public static final int RULE_WS=9;
     public static final int RULE_ANY_OTHER=10;
@@ -450,29 +449,8 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = T__30;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:30:7: ( 'sum' )
-            // InternalComputation.g:30:9: 'sum'
-            {
-            match("sum"); 
-
-
-            }
-
-            state.type = _type;
-            state.channel = _channel;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end "T__30"
-
-    // $ANTLR start "T__31"
-    public final void mT__31() throws RecognitionException {
-        try {
-            int _type = T__31;
-            int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:31:7: ( '+' )
-            // InternalComputation.g:31:9: '+'
+            // InternalComputation.g:30:7: ( '+' )
+            // InternalComputation.g:30:9: '+'
             {
             match('+'); 
 
@@ -484,17 +462,17 @@ public class InternalComputationLexer extends Lexer {
         finally {
         }
     }
-    // $ANTLR end "T__31"
+    // $ANTLR end "T__30"
 
     // $ANTLR start "RULE_ID"
     public final void mRULE_ID() throws RecognitionException {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:1078:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // InternalComputation.g:1078:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalComputation.g:994:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalComputation.g:994:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // InternalComputation.g:1078:11: ( '^' )?
+            // InternalComputation.g:994:11: ( '^' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -503,7 +481,7 @@ public class InternalComputationLexer extends Lexer {
             }
             switch (alt1) {
                 case 1 :
-                    // InternalComputation.g:1078:11: '^'
+                    // InternalComputation.g:994:11: '^'
                     {
                     match('^'); 
 
@@ -521,7 +499,7 @@ public class InternalComputationLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // InternalComputation.g:1078:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalComputation.g:994:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop2:
             do {
                 int alt2=2;
@@ -570,10 +548,10 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:1080:10: ( ( '0' .. '9' )+ )
-            // InternalComputation.g:1080:12: ( '0' .. '9' )+
+            // InternalComputation.g:996:10: ( ( '0' .. '9' )+ )
+            // InternalComputation.g:996:12: ( '0' .. '9' )+
             {
-            // InternalComputation.g:1080:12: ( '0' .. '9' )+
+            // InternalComputation.g:996:12: ( '0' .. '9' )+
             int cnt3=0;
             loop3:
             do {
@@ -587,7 +565,7 @@ public class InternalComputationLexer extends Lexer {
 
                 switch (alt3) {
             	case 1 :
-            	    // InternalComputation.g:1080:13: '0' .. '9'
+            	    // InternalComputation.g:996:13: '0' .. '9'
             	    {
             	    matchRange('0','9'); 
 
@@ -619,10 +597,10 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:1082:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
-            // InternalComputation.g:1082:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalComputation.g:998:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+            // InternalComputation.g:998:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
             {
-            // InternalComputation.g:1082:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalComputation.g:998:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
             int alt6=2;
             int LA6_0 = input.LA(1);
 
@@ -640,10 +618,10 @@ public class InternalComputationLexer extends Lexer {
             }
             switch (alt6) {
                 case 1 :
-                    // InternalComputation.g:1082:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+                    // InternalComputation.g:998:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
                     {
                     match('\"'); 
-                    // InternalComputation.g:1082:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // InternalComputation.g:998:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop4:
                     do {
                         int alt4=3;
@@ -659,7 +637,7 @@ public class InternalComputationLexer extends Lexer {
 
                         switch (alt4) {
                     	case 1 :
-                    	    // InternalComputation.g:1082:21: '\\\\' .
+                    	    // InternalComputation.g:998:21: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -667,7 +645,7 @@ public class InternalComputationLexer extends Lexer {
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalComputation.g:1082:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    // InternalComputation.g:998:28: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -692,10 +670,10 @@ public class InternalComputationLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // InternalComputation.g:1082:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+                    // InternalComputation.g:998:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
                     {
                     match('\''); 
-                    // InternalComputation.g:1082:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // InternalComputation.g:998:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop5:
                     do {
                         int alt5=3;
@@ -711,7 +689,7 @@ public class InternalComputationLexer extends Lexer {
 
                         switch (alt5) {
                     	case 1 :
-                    	    // InternalComputation.g:1082:54: '\\\\' .
+                    	    // InternalComputation.g:998:54: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -719,7 +697,7 @@ public class InternalComputationLexer extends Lexer {
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalComputation.g:1082:61: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // InternalComputation.g:998:61: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -762,12 +740,12 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:1084:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalComputation.g:1084:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalComputation.g:1000:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalComputation.g:1000:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalComputation.g:1084:24: ( options {greedy=false; } : . )*
+            // InternalComputation.g:1000:24: ( options {greedy=false; } : . )*
             loop7:
             do {
                 int alt7=2;
@@ -792,7 +770,7 @@ public class InternalComputationLexer extends Lexer {
 
                 switch (alt7) {
             	case 1 :
-            	    // InternalComputation.g:1084:52: .
+            	    // InternalComputation.g:1000:52: .
             	    {
             	    matchAny(); 
 
@@ -822,12 +800,12 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:1086:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalComputation.g:1086:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalComputation.g:1002:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalComputation.g:1002:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalComputation.g:1086:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalComputation.g:1002:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop8:
             do {
                 int alt8=2;
@@ -840,7 +818,7 @@ public class InternalComputationLexer extends Lexer {
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalComputation.g:1086:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalComputation.g:1002:24: ~ ( ( '\\n' | '\\r' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -860,7 +838,7 @@ public class InternalComputationLexer extends Lexer {
                 }
             } while (true);
 
-            // InternalComputation.g:1086:40: ( ( '\\r' )? '\\n' )?
+            // InternalComputation.g:1002:40: ( ( '\\r' )? '\\n' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -869,9 +847,9 @@ public class InternalComputationLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // InternalComputation.g:1086:41: ( '\\r' )? '\\n'
+                    // InternalComputation.g:1002:41: ( '\\r' )? '\\n'
                     {
-                    // InternalComputation.g:1086:41: ( '\\r' )?
+                    // InternalComputation.g:1002:41: ( '\\r' )?
                     int alt9=2;
                     int LA9_0 = input.LA(1);
 
@@ -880,7 +858,7 @@ public class InternalComputationLexer extends Lexer {
                     }
                     switch (alt9) {
                         case 1 :
-                            // InternalComputation.g:1086:41: '\\r'
+                            // InternalComputation.g:1002:41: '\\r'
                             {
                             match('\r'); 
 
@@ -912,10 +890,10 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:1088:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalComputation.g:1088:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalComputation.g:1004:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalComputation.g:1004:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalComputation.g:1088:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalComputation.g:1004:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt11=0;
             loop11:
             do {
@@ -969,8 +947,8 @@ public class InternalComputationLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalComputation.g:1090:16: ( . )
-            // InternalComputation.g:1090:18: .
+            // InternalComputation.g:1006:16: ( . )
+            // InternalComputation.g:1006:18: .
             {
             matchAny(); 
 
@@ -985,8 +963,8 @@ public class InternalComputationLexer extends Lexer {
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalComputation.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt12=28;
+        // InternalComputation.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt12=27;
         alt12 = dfa12.predict(input);
         switch (alt12) {
             case 1 :
@@ -1130,56 +1108,49 @@ public class InternalComputationLexer extends Lexer {
                 }
                 break;
             case 21 :
-                // InternalComputation.g:1:130: T__31
-                {
-                mT__31(); 
-
-                }
-                break;
-            case 22 :
-                // InternalComputation.g:1:136: RULE_ID
+                // InternalComputation.g:1:130: RULE_ID
                 {
                 mRULE_ID(); 
 
                 }
                 break;
-            case 23 :
-                // InternalComputation.g:1:144: RULE_INT
+            case 22 :
+                // InternalComputation.g:1:138: RULE_INT
                 {
                 mRULE_INT(); 
 
                 }
                 break;
-            case 24 :
-                // InternalComputation.g:1:153: RULE_STRING
+            case 23 :
+                // InternalComputation.g:1:147: RULE_STRING
                 {
                 mRULE_STRING(); 
 
                 }
                 break;
-            case 25 :
-                // InternalComputation.g:1:165: RULE_ML_COMMENT
+            case 24 :
+                // InternalComputation.g:1:159: RULE_ML_COMMENT
                 {
                 mRULE_ML_COMMENT(); 
 
                 }
                 break;
-            case 26 :
-                // InternalComputation.g:1:181: RULE_SL_COMMENT
+            case 25 :
+                // InternalComputation.g:1:175: RULE_SL_COMMENT
                 {
                 mRULE_SL_COMMENT(); 
 
                 }
                 break;
-            case 27 :
-                // InternalComputation.g:1:197: RULE_WS
+            case 26 :
+                // InternalComputation.g:1:191: RULE_WS
                 {
                 mRULE_WS(); 
 
                 }
                 break;
-            case 28 :
-                // InternalComputation.g:1:205: RULE_ANY_OTHER
+            case 27 :
+                // InternalComputation.g:1:199: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -1193,126 +1164,122 @@ public class InternalComputationLexer extends Lexer {
 
     protected DFA12 dfa12 = new DFA12(this);
     static final String DFA12_eotS =
-        "\1\uffff\1\36\2\uffff\1\36\1\uffff\2\36\1\uffff\3\36\1\uffff\1\53\1\36\3\uffff\1\36\1\uffff\1\33\2\uffff\3\33\2\uffff\2\36\3\uffff\1\36\1\uffff\2\36\1\74\1\uffff\3\36\2\uffff\1\36\3\uffff\1\36\6\uffff\5\36\1\uffff\1\36\1\110\1\111\1\112\1\113\6\36\4\uffff\1\122\4\36\1\127\1\uffff\1\36\1\131\2\36\1\uffff\1\36\1\uffff\6\36\1\143\2\36\1\uffff\1\36\1\147\1\36\1\uffff\3\36\1\154\1\uffff";
+        "\1\uffff\1\35\2\uffff\1\35\1\uffff\2\35\1\uffff\3\35\1\uffff\1\52\1\35\4\uffff\1\32\2\uffff\3\32\2\uffff\2\35\3\uffff\1\35\1\uffff\2\35\1\72\1\uffff\3\35\2\uffff\1\35\11\uffff\5\35\1\uffff\1\35\1\105\1\106\1\107\6\35\3\uffff\1\116\4\35\1\123\1\uffff\1\35\1\125\2\35\1\uffff\1\35\1\uffff\6\35\1\137\2\35\1\uffff\1\35\1\143\1\35\1\uffff\3\35\1\150\1\uffff";
     static final String DFA12_eofS =
-        "\155\uffff";
+        "\151\uffff";
     static final String DFA12_minS =
-        "\1\0\1\141\2\uffff\1\141\1\uffff\1\162\1\160\1\uffff\1\154\1\104\1\125\1\uffff\1\60\1\141\3\uffff\1\165\1\uffff\1\101\2\uffff\2\0\1\52\2\uffff\1\162\1\157\3\uffff\1\162\1\uffff\1\145\1\164\1\60\1\uffff\1\157\1\104\1\114\2\uffff\1\170\3\uffff\1\155\6\uffff\1\141\1\142\1\147\1\161\1\160\1\uffff\1\143\4\60\1\155\1\154\1\145\2\165\1\153\4\uffff\1\60\1\145\1\164\1\145\1\164\1\60\1\uffff\1\155\1\60\1\156\1\163\1\uffff\1\123\1\uffff\1\143\1\120\1\151\1\171\1\145\1\172\1\60\1\162\1\145\1\uffff\1\103\1\60\1\171\1\uffff\1\143\1\154\1\145\1\60\1\uffff";
+        "\1\0\1\141\2\uffff\1\141\1\uffff\1\162\1\160\1\uffff\1\154\1\104\1\125\1\uffff\1\60\1\141\4\uffff\1\101\2\uffff\2\0\1\52\2\uffff\1\162\1\157\3\uffff\1\162\1\uffff\1\145\1\164\1\60\1\uffff\1\157\1\104\1\114\2\uffff\1\170\11\uffff\1\141\1\142\1\147\1\161\1\160\1\uffff\1\143\3\60\1\155\1\154\1\145\2\165\1\153\3\uffff\1\60\1\145\1\164\1\145\1\164\1\60\1\uffff\1\155\1\60\1\156\1\163\1\uffff\1\123\1\uffff\1\143\1\120\1\151\1\171\1\145\1\172\1\60\1\162\1\145\1\uffff\1\103\1\60\1\171\1\uffff\1\143\1\154\1\145\1\60\1\uffff";
     static final String DFA12_maxS =
-        "\1\uffff\1\162\2\uffff\1\141\1\uffff\1\162\1\165\1\uffff\1\154\1\104\1\125\1\uffff\1\172\1\141\3\uffff\1\165\1\uffff\1\172\2\uffff\2\uffff\1\57\2\uffff\1\162\1\157\3\uffff\1\162\1\uffff\1\145\1\164\1\172\1\uffff\1\157\1\104\1\114\2\uffff\1\170\3\uffff\1\155\6\uffff\1\141\1\142\1\147\1\161\1\160\1\uffff\1\143\4\172\1\155\1\154\1\145\2\165\1\153\4\uffff\1\172\1\145\1\164\1\145\1\164\1\172\1\uffff\1\155\1\172\1\156\1\163\1\uffff\1\123\1\uffff\1\143\1\120\1\151\1\171\1\145\2\172\1\162\1\145\1\uffff\1\103\1\172\1\171\1\uffff\1\143\1\154\1\145\1\172\1\uffff";
+        "\1\uffff\1\162\2\uffff\1\141\1\uffff\1\162\1\165\1\uffff\1\154\1\104\1\125\1\uffff\1\172\1\141\4\uffff\1\172\2\uffff\2\uffff\1\57\2\uffff\1\162\1\157\3\uffff\1\162\1\uffff\1\145\1\164\1\172\1\uffff\1\157\1\104\1\114\2\uffff\1\170\11\uffff\1\141\1\142\1\147\1\161\1\160\1\uffff\1\143\3\172\1\155\1\154\1\145\2\165\1\153\3\uffff\1\172\1\145\1\164\1\145\1\164\1\172\1\uffff\1\155\1\172\1\156\1\163\1\uffff\1\123\1\uffff\1\143\1\120\1\151\1\171\1\145\2\172\1\162\1\145\1\uffff\1\103\1\172\1\171\1\uffff\1\143\1\154\1\145\1\172\1\uffff";
     static final String DFA12_acceptS =
-        "\2\uffff\1\2\1\3\1\uffff\1\5\2\uffff\1\11\3\uffff\1\15\2\uffff\1\21\1\22\1\23\1\uffff\1\25\1\uffff\1\26\1\27\3\uffff\1\33\1\34\2\uffff\1\26\1\2\1\3\1\uffff\1\5\3\uffff\1\11\3\uffff\1\15\1\17\1\uffff\1\21\1\22\1\23\1\uffff\1\25\1\27\1\30\1\31\1\32\1\33\5\uffff\1\16\13\uffff\1\13\1\14\1\20\1\24\6\uffff\1\1\4\uffff\1\12\1\uffff\1\4\11\uffff\1\6\3\uffff\1\10\4\uffff\1\7";
+        "\2\uffff\1\2\1\3\1\uffff\1\5\2\uffff\1\11\3\uffff\1\15\2\uffff\1\21\1\22\1\23\1\24\1\uffff\1\25\1\26\3\uffff\1\32\1\33\2\uffff\1\25\1\2\1\3\1\uffff\1\5\3\uffff\1\11\3\uffff\1\15\1\17\1\uffff\1\21\1\22\1\23\1\24\1\26\1\27\1\30\1\31\1\32\5\uffff\1\16\12\uffff\1\13\1\14\1\20\6\uffff\1\1\4\uffff\1\12\1\uffff\1\4\11\uffff\1\6\3\uffff\1\10\4\uffff\1\7";
     static final String DFA12_specialS =
-        "\1\0\26\uffff\1\2\1\1\124\uffff}>";
+        "\1\0\25\uffff\1\2\1\1\121\uffff}>";
     static final String[] DFA12_transitionS = {
-            "\11\33\2\32\2\33\1\32\22\33\1\32\1\33\1\27\4\33\1\30\1\17\1\21\1\33\1\23\1\20\2\33\1\31\12\26\1\14\1\3\1\33\1\2\3\33\1\12\13\25\1\13\15\25\3\33\1\24\1\25\1\33\1\25\1\11\3\25\1\6\6\25\1\16\1\25\1\7\1\1\2\25\1\22\1\4\3\25\1\15\2\25\1\5\1\33\1\10\uff82\33",
-            "\1\34\20\uffff\1\35",
+            "\11\32\2\31\2\32\1\31\22\32\1\31\1\32\1\26\4\32\1\27\1\17\1\21\1\32\1\22\1\20\2\32\1\30\12\25\1\14\1\3\1\32\1\2\3\32\1\12\13\24\1\13\15\24\3\32\1\23\1\24\1\32\1\24\1\11\3\24\1\6\6\24\1\16\1\24\1\7\1\1\3\24\1\4\3\24\1\15\2\24\1\5\1\32\1\10\uff82\32",
+            "\1\33\20\uffff\1\34",
             "",
             "",
-            "\1\41",
+            "\1\40",
             "",
-            "\1\43",
-            "\1\45\4\uffff\1\44",
+            "\1\42",
+            "\1\44\4\uffff\1\43",
             "",
+            "\1\46",
             "\1\47",
             "\1\50",
-            "\1\51",
             "",
-            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
-            "\1\54",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\1\53",
             "",
             "",
             "",
-            "\1\60",
             "",
-            "\32\36\4\uffff\1\36\1\uffff\32\36",
+            "\32\35\4\uffff\1\35\1\uffff\32\35",
             "",
             "",
-            "\0\63",
-            "\0\63",
-            "\1\64\4\uffff\1\65",
+            "\0\61",
+            "\0\61",
+            "\1\62\4\uffff\1\63",
             "",
             "",
-            "\1\67",
-            "\1\70",
+            "\1\65",
+            "\1\66",
             "",
             "",
             "",
+            "\1\67",
+            "",
+            "\1\70",
             "\1\71",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
             "",
-            "\1\72",
             "\1\73",
-            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
-            "",
+            "\1\74",
             "\1\75",
-            "\1\76",
-            "\1\77",
             "",
             "",
-            "\1\100",
+            "\1\76",
             "",
             "",
             "",
-            "\1\101",
             "",
             "",
             "",
             "",
             "",
             "",
+            "\1\77",
+            "\1\100",
+            "\1\101",
             "\1\102",
             "\1\103",
-            "\1\104",
-            "\1\105",
-            "\1\106",
             "",
-            "\1\107",
-            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
-            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
-            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
-            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
+            "\1\104",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\1\110",
+            "\1\111",
+            "\1\112",
+            "\1\113",
             "\1\114",
             "\1\115",
-            "\1\116",
-            "\1\117",
-            "\1\120",
-            "\1\121",
             "",
             "",
             "",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
+            "\1\117",
+            "\1\120",
+            "\1\121",
+            "\1\122",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
             "",
-            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
-            "\1\123",
             "\1\124",
-            "\1\125",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
             "\1\126",
-            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
+            "\1\127",
             "",
             "\1\130",
-            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
+            "",
+            "\1\131",
             "\1\132",
             "\1\133",
-            "",
             "\1\134",
-            "",
             "\1\135",
             "\1\136",
-            "\1\137",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
             "\1\140",
             "\1\141",
+            "",
             "\1\142",
-            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
             "\1\144",
-            "\1\145",
             "",
+            "\1\145",
             "\1\146",
-            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
-            "\1\150",
-            "",
-            "\1\151",
-            "\1\152",
-            "\1\153",
-            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
+            "\1\147",
+            "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35",
             ""
     };
 
@@ -1346,7 +1313,7 @@ public class InternalComputationLexer extends Lexer {
             this.transition = DFA12_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
@@ -1390,45 +1357,43 @@ public class InternalComputationLexer extends Lexer {
 
                         else if ( (LA12_0==')') ) {s = 17;}
 
-                        else if ( (LA12_0=='s') ) {s = 18;}
-
-                        else if ( (LA12_0=='+') ) {s = 19;}
+                        else if ( (LA12_0=='+') ) {s = 18;}
 
-                        else if ( (LA12_0=='^') ) {s = 20;}
+                        else if ( (LA12_0=='^') ) {s = 19;}
 
-                        else if ( ((LA12_0>='B' && LA12_0<='L')||(LA12_0>='N' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='a'||(LA12_0>='c' && LA12_0<='e')||(LA12_0>='g' && LA12_0<='l')||LA12_0=='n'||(LA12_0>='q' && LA12_0<='r')||(LA12_0>='u' && LA12_0<='w')||(LA12_0>='y' && LA12_0<='z')) ) {s = 21;}
+                        else if ( ((LA12_0>='B' && LA12_0<='L')||(LA12_0>='N' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='a'||(LA12_0>='c' && LA12_0<='e')||(LA12_0>='g' && LA12_0<='l')||LA12_0=='n'||(LA12_0>='q' && LA12_0<='s')||(LA12_0>='u' && LA12_0<='w')||(LA12_0>='y' && LA12_0<='z')) ) {s = 20;}
 
-                        else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 22;}
+                        else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 21;}
 
-                        else if ( (LA12_0=='\"') ) {s = 23;}
+                        else if ( (LA12_0=='\"') ) {s = 22;}
 
-                        else if ( (LA12_0=='\'') ) {s = 24;}
+                        else if ( (LA12_0=='\'') ) {s = 23;}
 
-                        else if ( (LA12_0=='/') ) {s = 25;}
+                        else if ( (LA12_0=='/') ) {s = 24;}
 
-                        else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 26;}
+                        else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 25;}
 
-                        else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||LA12_0=='*'||(LA12_0>='-' && LA12_0<='.')||LA12_0=='<'||(LA12_0>='>' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 27;}
+                        else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||LA12_0=='*'||(LA12_0>='-' && LA12_0<='.')||LA12_0=='<'||(LA12_0>='>' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 26;}
 
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA12_24 = input.LA(1);
+                        int LA12_23 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA12_24>='\u0000' && LA12_24<='\uFFFF')) ) {s = 51;}
+                        if ( ((LA12_23>='\u0000' && LA12_23<='\uFFFF')) ) {s = 49;}
 
-                        else s = 27;
+                        else s = 26;
 
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA12_23 = input.LA(1);
+                        int LA12_22 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA12_23>='\u0000' && LA12_23<='\uFFFF')) ) {s = 51;}
+                        if ( ((LA12_22>='\u0000' && LA12_22<='\uFFFF')) ) {s = 49;}
 
-                        else s = 27;
+                        else s = 26;
 
                         if ( s>=0 ) return s;
                         break;
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputationParser.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputationParser.java
index 0c82ea5..f93d483 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputationParser.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/parser/antlr/internal/InternalComputationParser.java
@@ -21,7 +21,7 @@ import java.util.ArrayList;
 @SuppressWarnings("all")
 public class InternalComputationParser extends AbstractInternalAntlrParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'param'", "'='", "';'", "'target'", "'{'", "'frequency'", "'outputsPerCycle'", "'problemSize'", "'}'", "'block'", "'ADD'", "'MUL'", "':'", "'op'", "'x'", "'max'", "'('", "','", "')'", "'sum'", "'+'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'param'", "'='", "';'", "'target'", "'{'", "'frequency'", "'outputsPerCycle'", "'problemSize'", "'}'", "'block'", "'ADD'", "'MUL'", "':'", "'op'", "'x'", "'max'", "'('", "','", "')'", "'+'"
     };
     public static final int RULE_STRING=6;
     public static final int RULE_SL_COMMENT=8;
@@ -36,7 +36,6 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
     public static final int T__14=14;
     public static final int EOF=-1;
     public static final int T__30=30;
-    public static final int T__31=31;
     public static final int RULE_ID=4;
     public static final int RULE_WS=9;
     public static final int RULE_ANY_OTHER=10;
@@ -1239,101 +1238,70 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleOperandExpression"
-    // InternalComputation.g:556:1: ruleOperandExpression returns [EObject current=null] : (this_SumExpression_0= ruleSumExpression | this_MaxExpression_1= ruleMaxExpression | this_TerminalOperandExpression_2= ruleTerminalOperandExpression ) ;
+    // InternalComputation.g:556:1: ruleOperandExpression returns [EObject current=null] : (this_MaxExpression_0= ruleMaxExpression | this_TerminalOperandExpression_1= ruleTerminalOperandExpression ) ;
     public final EObject ruleOperandExpression() throws RecognitionException {
         EObject current = null;
 
-        EObject this_SumExpression_0 = null;
+        EObject this_MaxExpression_0 = null;
 
-        EObject this_MaxExpression_1 = null;
-
-        EObject this_TerminalOperandExpression_2 = null;
+        EObject this_TerminalOperandExpression_1 = null;
 
 
 
         	enterRule();
 
         try {
-            // InternalComputation.g:562:2: ( (this_SumExpression_0= ruleSumExpression | this_MaxExpression_1= ruleMaxExpression | this_TerminalOperandExpression_2= ruleTerminalOperandExpression ) )
-            // InternalComputation.g:563:2: (this_SumExpression_0= ruleSumExpression | this_MaxExpression_1= ruleMaxExpression | this_TerminalOperandExpression_2= ruleTerminalOperandExpression )
-            {
-            // InternalComputation.g:563:2: (this_SumExpression_0= ruleSumExpression | this_MaxExpression_1= ruleMaxExpression | this_TerminalOperandExpression_2= ruleTerminalOperandExpression )
-            int alt5=3;
-            switch ( input.LA(1) ) {
-            case 30:
-                {
+            // InternalComputation.g:562:2: ( (this_MaxExpression_0= ruleMaxExpression | this_TerminalOperandExpression_1= ruleTerminalOperandExpression ) )
+            // InternalComputation.g:563:2: (this_MaxExpression_0= ruleMaxExpression | this_TerminalOperandExpression_1= ruleTerminalOperandExpression )
+            {
+            // InternalComputation.g:563:2: (this_MaxExpression_0= ruleMaxExpression | this_TerminalOperandExpression_1= ruleTerminalOperandExpression )
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+
+            if ( (LA5_0==26) ) {
                 alt5=1;
-                }
-                break;
-            case 26:
-                {
+            }
+            else if ( ((LA5_0>=RULE_ID && LA5_0<=RULE_INT)||LA5_0==27) ) {
                 alt5=2;
-                }
-                break;
-            case RULE_ID:
-            case RULE_INT:
-            case 27:
-                {
-                alt5=3;
-                }
-                break;
-            default:
+            }
+            else {
                 NoViableAltException nvae =
                     new NoViableAltException("", 5, 0, input);
 
                 throw nvae;
             }
-
             switch (alt5) {
                 case 1 :
-                    // InternalComputation.g:564:3: this_SumExpression_0= ruleSumExpression
+                    // InternalComputation.g:564:3: this_MaxExpression_0= ruleMaxExpression
                     {
 
-                    			newCompositeNode(grammarAccess.getOperandExpressionAccess().getSumExpressionParserRuleCall_0());
+                    			newCompositeNode(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_0());
                     		
                     pushFollow(FOLLOW_2);
-                    this_SumExpression_0=ruleSumExpression();
+                    this_MaxExpression_0=ruleMaxExpression();
 
                     state._fsp--;
 
 
-                    			current = this_SumExpression_0;
+                    			current = this_MaxExpression_0;
                     			afterParserOrEnumRuleCall();
                     		
 
                     }
                     break;
                 case 2 :
-                    // InternalComputation.g:573:3: this_MaxExpression_1= ruleMaxExpression
-                    {
-
-                    			newCompositeNode(grammarAccess.getOperandExpressionAccess().getMaxExpressionParserRuleCall_1());
-                    		
-                    pushFollow(FOLLOW_2);
-                    this_MaxExpression_1=ruleMaxExpression();
-
-                    state._fsp--;
-
-
-                    			current = this_MaxExpression_1;
-                    			afterParserOrEnumRuleCall();
-                    		
-
-                    }
-                    break;
-                case 3 :
-                    // InternalComputation.g:582:3: this_TerminalOperandExpression_2= ruleTerminalOperandExpression
+                    // InternalComputation.g:573:3: this_TerminalOperandExpression_1= ruleTerminalOperandExpression
                     {
 
-                    			newCompositeNode(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_2());
+                    			newCompositeNode(grammarAccess.getOperandExpressionAccess().getTerminalOperandExpressionParserRuleCall_1());
                     		
                     pushFollow(FOLLOW_2);
-                    this_TerminalOperandExpression_2=ruleTerminalOperandExpression();
+                    this_TerminalOperandExpression_1=ruleTerminalOperandExpression();
 
                     state._fsp--;
 
 
-                    			current = this_TerminalOperandExpression_2;
+                    			current = this_TerminalOperandExpression_1;
                     			afterParserOrEnumRuleCall();
                     		
 
@@ -1362,7 +1330,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleMaxExpression"
-    // InternalComputation.g:594:1: entryRuleMaxExpression returns [EObject current=null] : iv_ruleMaxExpression= ruleMaxExpression EOF ;
+    // InternalComputation.g:585:1: entryRuleMaxExpression returns [EObject current=null] : iv_ruleMaxExpression= ruleMaxExpression EOF ;
     public final EObject entryRuleMaxExpression() throws RecognitionException {
         EObject current = null;
 
@@ -1370,8 +1338,8 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalComputation.g:594:54: (iv_ruleMaxExpression= ruleMaxExpression EOF )
-            // InternalComputation.g:595:2: iv_ruleMaxExpression= ruleMaxExpression EOF
+            // InternalComputation.g:585:54: (iv_ruleMaxExpression= ruleMaxExpression EOF )
+            // InternalComputation.g:586:2: iv_ruleMaxExpression= ruleMaxExpression EOF
             {
              newCompositeNode(grammarAccess.getMaxExpressionRule()); 
             pushFollow(FOLLOW_1);
@@ -1398,7 +1366,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleMaxExpression"
-    // InternalComputation.g:601:1: ruleMaxExpression returns [EObject current=null] : (otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' ) ;
+    // InternalComputation.g:592:1: ruleMaxExpression returns [EObject current=null] : (otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' ) ;
     public final EObject ruleMaxExpression() throws RecognitionException {
         EObject current = null;
 
@@ -1415,11 +1383,11 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalComputation.g:607:2: ( (otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' ) )
-            // InternalComputation.g:608:2: (otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' )
+            // InternalComputation.g:598:2: ( (otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' ) )
+            // InternalComputation.g:599:2: (otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' )
             {
-            // InternalComputation.g:608:2: (otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' )
-            // InternalComputation.g:609:3: otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')'
+            // InternalComputation.g:599:2: (otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' )
+            // InternalComputation.g:600:3: otherlv_0= 'max' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')'
             {
             otherlv_0=(Token)match(input,26,FOLLOW_22); 
 
@@ -1429,11 +1397,11 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
             			newLeafNode(otherlv_1, grammarAccess.getMaxExpressionAccess().getLeftParenthesisKeyword_1());
             		
-            // InternalComputation.g:617:3: ( (lv_exprs_2_0= ruleTerminalOperandExpression ) )
-            // InternalComputation.g:618:4: (lv_exprs_2_0= ruleTerminalOperandExpression )
+            // InternalComputation.g:608:3: ( (lv_exprs_2_0= ruleTerminalOperandExpression ) )
+            // InternalComputation.g:609:4: (lv_exprs_2_0= ruleTerminalOperandExpression )
             {
-            // InternalComputation.g:618:4: (lv_exprs_2_0= ruleTerminalOperandExpression )
-            // InternalComputation.g:619:5: lv_exprs_2_0= ruleTerminalOperandExpression
+            // InternalComputation.g:609:4: (lv_exprs_2_0= ruleTerminalOperandExpression )
+            // InternalComputation.g:610:5: lv_exprs_2_0= ruleTerminalOperandExpression
             {
 
             					newCompositeNode(grammarAccess.getMaxExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_2_0());
@@ -1460,7 +1428,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalComputation.g:636:3: (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+
+            // InternalComputation.g:627:3: (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+
             int cnt6=0;
             loop6:
             do {
@@ -1474,17 +1442,17 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
                 switch (alt6) {
             	case 1 :
-            	    // InternalComputation.g:637:4: otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) )
+            	    // InternalComputation.g:628:4: otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) )
             	    {
             	    otherlv_3=(Token)match(input,28,FOLLOW_19); 
 
             	    				newLeafNode(otherlv_3, grammarAccess.getMaxExpressionAccess().getCommaKeyword_3_0());
             	    			
-            	    // InternalComputation.g:641:4: ( (lv_exprs_4_0= ruleTerminalOperandExpression ) )
-            	    // InternalComputation.g:642:5: (lv_exprs_4_0= ruleTerminalOperandExpression )
+            	    // InternalComputation.g:632:4: ( (lv_exprs_4_0= ruleTerminalOperandExpression ) )
+            	    // InternalComputation.g:633:5: (lv_exprs_4_0= ruleTerminalOperandExpression )
             	    {
-            	    // InternalComputation.g:642:5: (lv_exprs_4_0= ruleTerminalOperandExpression )
-            	    // InternalComputation.g:643:6: lv_exprs_4_0= ruleTerminalOperandExpression
+            	    // InternalComputation.g:633:5: (lv_exprs_4_0= ruleTerminalOperandExpression )
+            	    // InternalComputation.g:634:6: lv_exprs_4_0= ruleTerminalOperandExpression
             	    {
 
             	    						newCompositeNode(grammarAccess.getMaxExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_3_1_0());
@@ -1550,197 +1518,8 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
     // $ANTLR end "ruleMaxExpression"
 
 
-    // $ANTLR start "entryRuleSumExpression"
-    // InternalComputation.g:669:1: entryRuleSumExpression returns [EObject current=null] : iv_ruleSumExpression= ruleSumExpression EOF ;
-    public final EObject entryRuleSumExpression() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleSumExpression = null;
-
-
-        try {
-            // InternalComputation.g:669:54: (iv_ruleSumExpression= ruleSumExpression EOF )
-            // InternalComputation.g:670:2: iv_ruleSumExpression= ruleSumExpression EOF
-            {
-             newCompositeNode(grammarAccess.getSumExpressionRule()); 
-            pushFollow(FOLLOW_1);
-            iv_ruleSumExpression=ruleSumExpression();
-
-            state._fsp--;
-
-             current =iv_ruleSumExpression; 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleSumExpression"
-
-
-    // $ANTLR start "ruleSumExpression"
-    // InternalComputation.g:676:1: ruleSumExpression returns [EObject current=null] : (otherlv_0= 'sum' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' ) ;
-    public final EObject ruleSumExpression() throws RecognitionException {
-        EObject current = null;
-
-        Token otherlv_0=null;
-        Token otherlv_1=null;
-        Token otherlv_3=null;
-        Token otherlv_5=null;
-        EObject lv_exprs_2_0 = null;
-
-        EObject lv_exprs_4_0 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalComputation.g:682:2: ( (otherlv_0= 'sum' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' ) )
-            // InternalComputation.g:683:2: (otherlv_0= 'sum' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' )
-            {
-            // InternalComputation.g:683:2: (otherlv_0= 'sum' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')' )
-            // InternalComputation.g:684:3: otherlv_0= 'sum' otherlv_1= '(' ( (lv_exprs_2_0= ruleTerminalOperandExpression ) ) (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+ otherlv_5= ')'
-            {
-            otherlv_0=(Token)match(input,30,FOLLOW_22); 
-
-            			newLeafNode(otherlv_0, grammarAccess.getSumExpressionAccess().getSumKeyword_0());
-            		
-            otherlv_1=(Token)match(input,27,FOLLOW_19); 
-
-            			newLeafNode(otherlv_1, grammarAccess.getSumExpressionAccess().getLeftParenthesisKeyword_1());
-            		
-            // InternalComputation.g:692:3: ( (lv_exprs_2_0= ruleTerminalOperandExpression ) )
-            // InternalComputation.g:693:4: (lv_exprs_2_0= ruleTerminalOperandExpression )
-            {
-            // InternalComputation.g:693:4: (lv_exprs_2_0= ruleTerminalOperandExpression )
-            // InternalComputation.g:694:5: lv_exprs_2_0= ruleTerminalOperandExpression
-            {
-
-            					newCompositeNode(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_2_0());
-            				
-            pushFollow(FOLLOW_23);
-            lv_exprs_2_0=ruleTerminalOperandExpression();
-
-            state._fsp--;
-
-
-            					if (current==null) {
-            						current = createModelElementForParent(grammarAccess.getSumExpressionRule());
-            					}
-            					add(
-            						current,
-            						"exprs",
-            						lv_exprs_2_0,
-            						"fr.irisa.cairn.gecos.typeexploration.Computation.TerminalOperandExpression");
-            					afterParserOrEnumRuleCall();
-            				
-
-            }
-
-
-            }
-
-            // InternalComputation.g:711:3: (otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) ) )+
-            int cnt7=0;
-            loop7:
-            do {
-                int alt7=2;
-                int LA7_0 = input.LA(1);
-
-                if ( (LA7_0==28) ) {
-                    alt7=1;
-                }
-
-
-                switch (alt7) {
-            	case 1 :
-            	    // InternalComputation.g:712:4: otherlv_3= ',' ( (lv_exprs_4_0= ruleTerminalOperandExpression ) )
-            	    {
-            	    otherlv_3=(Token)match(input,28,FOLLOW_19); 
-
-            	    				newLeafNode(otherlv_3, grammarAccess.getSumExpressionAccess().getCommaKeyword_3_0());
-            	    			
-            	    // InternalComputation.g:716:4: ( (lv_exprs_4_0= ruleTerminalOperandExpression ) )
-            	    // InternalComputation.g:717:5: (lv_exprs_4_0= ruleTerminalOperandExpression )
-            	    {
-            	    // InternalComputation.g:717:5: (lv_exprs_4_0= ruleTerminalOperandExpression )
-            	    // InternalComputation.g:718:6: lv_exprs_4_0= ruleTerminalOperandExpression
-            	    {
-
-            	    						newCompositeNode(grammarAccess.getSumExpressionAccess().getExprsTerminalOperandExpressionParserRuleCall_3_1_0());
-            	    					
-            	    pushFollow(FOLLOW_24);
-            	    lv_exprs_4_0=ruleTerminalOperandExpression();
-
-            	    state._fsp--;
-
-
-            	    						if (current==null) {
-            	    							current = createModelElementForParent(grammarAccess.getSumExpressionRule());
-            	    						}
-            	    						add(
-            	    							current,
-            	    							"exprs",
-            	    							lv_exprs_4_0,
-            	    							"fr.irisa.cairn.gecos.typeexploration.Computation.TerminalOperandExpression");
-            	    						afterParserOrEnumRuleCall();
-            	    					
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    if ( cnt7 >= 1 ) break loop7;
-                        EarlyExitException eee =
-                            new EarlyExitException(7, input);
-                        throw eee;
-                }
-                cnt7++;
-            } while (true);
-
-            otherlv_5=(Token)match(input,29,FOLLOW_2); 
-
-            			newLeafNode(otherlv_5, grammarAccess.getSumExpressionAccess().getRightParenthesisKeyword_4());
-            		
-
-            }
-
-
-            }
-
-
-            	leaveRule();
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleSumExpression"
-
-
     // $ANTLR start "entryRuleTerminalOperandExpression"
-    // InternalComputation.g:744:1: entryRuleTerminalOperandExpression returns [EObject current=null] : iv_ruleTerminalOperandExpression= ruleTerminalOperandExpression EOF ;
+    // InternalComputation.g:660:1: entryRuleTerminalOperandExpression returns [EObject current=null] : iv_ruleTerminalOperandExpression= ruleTerminalOperandExpression EOF ;
     public final EObject entryRuleTerminalOperandExpression() throws RecognitionException {
         EObject current = null;
 
@@ -1748,8 +1527,8 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalComputation.g:744:66: (iv_ruleTerminalOperandExpression= ruleTerminalOperandExpression EOF )
-            // InternalComputation.g:745:2: iv_ruleTerminalOperandExpression= ruleTerminalOperandExpression EOF
+            // InternalComputation.g:660:66: (iv_ruleTerminalOperandExpression= ruleTerminalOperandExpression EOF )
+            // InternalComputation.g:661:2: iv_ruleTerminalOperandExpression= ruleTerminalOperandExpression EOF
             {
              newCompositeNode(grammarAccess.getTerminalOperandExpressionRule()); 
             pushFollow(FOLLOW_1);
@@ -1776,7 +1555,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleTerminalOperandExpression"
-    // InternalComputation.g:751:1: ruleTerminalOperandExpression returns [EObject current=null] : (this_AddExpression_0= ruleAddExpression | this_OperandTerm_1= ruleOperandTerm ) ;
+    // InternalComputation.g:667:1: ruleTerminalOperandExpression returns [EObject current=null] : (this_AddExpression_0= ruleAddExpression | this_OperandTerm_1= ruleOperandTerm ) ;
     public final EObject ruleTerminalOperandExpression() throws RecognitionException {
         EObject current = null;
 
@@ -1789,28 +1568,28 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalComputation.g:757:2: ( (this_AddExpression_0= ruleAddExpression | this_OperandTerm_1= ruleOperandTerm ) )
-            // InternalComputation.g:758:2: (this_AddExpression_0= ruleAddExpression | this_OperandTerm_1= ruleOperandTerm )
+            // InternalComputation.g:673:2: ( (this_AddExpression_0= ruleAddExpression | this_OperandTerm_1= ruleOperandTerm ) )
+            // InternalComputation.g:674:2: (this_AddExpression_0= ruleAddExpression | this_OperandTerm_1= ruleOperandTerm )
             {
-            // InternalComputation.g:758:2: (this_AddExpression_0= ruleAddExpression | this_OperandTerm_1= ruleOperandTerm )
-            int alt8=2;
-            int LA8_0 = input.LA(1);
+            // InternalComputation.g:674:2: (this_AddExpression_0= ruleAddExpression | this_OperandTerm_1= ruleOperandTerm )
+            int alt7=2;
+            int LA7_0 = input.LA(1);
 
-            if ( (LA8_0==27) ) {
-                alt8=1;
+            if ( (LA7_0==27) ) {
+                alt7=1;
             }
-            else if ( ((LA8_0>=RULE_ID && LA8_0<=RULE_INT)) ) {
-                alt8=2;
+            else if ( ((LA7_0>=RULE_ID && LA7_0<=RULE_INT)) ) {
+                alt7=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 8, 0, input);
+                    new NoViableAltException("", 7, 0, input);
 
                 throw nvae;
             }
-            switch (alt8) {
+            switch (alt7) {
                 case 1 :
-                    // InternalComputation.g:759:3: this_AddExpression_0= ruleAddExpression
+                    // InternalComputation.g:675:3: this_AddExpression_0= ruleAddExpression
                     {
 
                     			newCompositeNode(grammarAccess.getTerminalOperandExpressionAccess().getAddExpressionParserRuleCall_0());
@@ -1828,7 +1607,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalComputation.g:768:3: this_OperandTerm_1= ruleOperandTerm
+                    // InternalComputation.g:684:3: this_OperandTerm_1= ruleOperandTerm
                     {
 
                     			newCompositeNode(grammarAccess.getTerminalOperandExpressionAccess().getOperandTermParserRuleCall_1());
@@ -1868,7 +1647,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleAddExpression"
-    // InternalComputation.g:780:1: entryRuleAddExpression returns [EObject current=null] : iv_ruleAddExpression= ruleAddExpression EOF ;
+    // InternalComputation.g:696:1: entryRuleAddExpression returns [EObject current=null] : iv_ruleAddExpression= ruleAddExpression EOF ;
     public final EObject entryRuleAddExpression() throws RecognitionException {
         EObject current = null;
 
@@ -1876,8 +1655,8 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalComputation.g:780:54: (iv_ruleAddExpression= ruleAddExpression EOF )
-            // InternalComputation.g:781:2: iv_ruleAddExpression= ruleAddExpression EOF
+            // InternalComputation.g:696:54: (iv_ruleAddExpression= ruleAddExpression EOF )
+            // InternalComputation.g:697:2: iv_ruleAddExpression= ruleAddExpression EOF
             {
              newCompositeNode(grammarAccess.getAddExpressionRule()); 
             pushFollow(FOLLOW_1);
@@ -1904,7 +1683,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleAddExpression"
-    // InternalComputation.g:787:1: ruleAddExpression returns [EObject current=null] : (otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')' ) ;
+    // InternalComputation.g:703:1: ruleAddExpression returns [EObject current=null] : (otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')' ) ;
     public final EObject ruleAddExpression() throws RecognitionException {
         EObject current = null;
 
@@ -1920,21 +1699,21 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalComputation.g:793:2: ( (otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')' ) )
-            // InternalComputation.g:794:2: (otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')' )
+            // InternalComputation.g:709:2: ( (otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')' ) )
+            // InternalComputation.g:710:2: (otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')' )
             {
-            // InternalComputation.g:794:2: (otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')' )
-            // InternalComputation.g:795:3: otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')'
+            // InternalComputation.g:710:2: (otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')' )
+            // InternalComputation.g:711:3: otherlv_0= '(' ( (lv_op1_1_0= ruleOperandExpression ) ) otherlv_2= '+' ( (lv_op2_3_0= ruleOperandExpression ) ) otherlv_4= ')'
             {
             otherlv_0=(Token)match(input,27,FOLLOW_19); 
 
             			newLeafNode(otherlv_0, grammarAccess.getAddExpressionAccess().getLeftParenthesisKeyword_0());
             		
-            // InternalComputation.g:799:3: ( (lv_op1_1_0= ruleOperandExpression ) )
-            // InternalComputation.g:800:4: (lv_op1_1_0= ruleOperandExpression )
+            // InternalComputation.g:715:3: ( (lv_op1_1_0= ruleOperandExpression ) )
+            // InternalComputation.g:716:4: (lv_op1_1_0= ruleOperandExpression )
             {
-            // InternalComputation.g:800:4: (lv_op1_1_0= ruleOperandExpression )
-            // InternalComputation.g:801:5: lv_op1_1_0= ruleOperandExpression
+            // InternalComputation.g:716:4: (lv_op1_1_0= ruleOperandExpression )
+            // InternalComputation.g:717:5: lv_op1_1_0= ruleOperandExpression
             {
 
             					newCompositeNode(grammarAccess.getAddExpressionAccess().getOp1OperandExpressionParserRuleCall_1_0());
@@ -1961,15 +1740,15 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_2=(Token)match(input,31,FOLLOW_19); 
+            otherlv_2=(Token)match(input,30,FOLLOW_19); 
 
             			newLeafNode(otherlv_2, grammarAccess.getAddExpressionAccess().getPlusSignKeyword_2());
             		
-            // InternalComputation.g:822:3: ( (lv_op2_3_0= ruleOperandExpression ) )
-            // InternalComputation.g:823:4: (lv_op2_3_0= ruleOperandExpression )
+            // InternalComputation.g:738:3: ( (lv_op2_3_0= ruleOperandExpression ) )
+            // InternalComputation.g:739:4: (lv_op2_3_0= ruleOperandExpression )
             {
-            // InternalComputation.g:823:4: (lv_op2_3_0= ruleOperandExpression )
-            // InternalComputation.g:824:5: lv_op2_3_0= ruleOperandExpression
+            // InternalComputation.g:739:4: (lv_op2_3_0= ruleOperandExpression )
+            // InternalComputation.g:740:5: lv_op2_3_0= ruleOperandExpression
             {
 
             					newCompositeNode(grammarAccess.getAddExpressionAccess().getOp2OperandExpressionParserRuleCall_3_0());
@@ -2023,7 +1802,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleOperandTerm"
-    // InternalComputation.g:849:1: entryRuleOperandTerm returns [EObject current=null] : iv_ruleOperandTerm= ruleOperandTerm EOF ;
+    // InternalComputation.g:765:1: entryRuleOperandTerm returns [EObject current=null] : iv_ruleOperandTerm= ruleOperandTerm EOF ;
     public final EObject entryRuleOperandTerm() throws RecognitionException {
         EObject current = null;
 
@@ -2031,8 +1810,8 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalComputation.g:849:52: (iv_ruleOperandTerm= ruleOperandTerm EOF )
-            // InternalComputation.g:850:2: iv_ruleOperandTerm= ruleOperandTerm EOF
+            // InternalComputation.g:765:52: (iv_ruleOperandTerm= ruleOperandTerm EOF )
+            // InternalComputation.g:766:2: iv_ruleOperandTerm= ruleOperandTerm EOF
             {
              newCompositeNode(grammarAccess.getOperandTermRule()); 
             pushFollow(FOLLOW_1);
@@ -2059,7 +1838,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleOperandTerm"
-    // InternalComputation.g:856:1: ruleOperandTerm returns [EObject current=null] : ( ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) ) ) ;
+    // InternalComputation.g:772:1: ruleOperandTerm returns [EObject current=null] : ( ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) ) ) ;
     public final EObject ruleOperandTerm() throws RecognitionException {
         EObject current = null;
 
@@ -2070,25 +1849,25 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalComputation.g:862:2: ( ( ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) ) ) )
-            // InternalComputation.g:863:2: ( ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) ) )
+            // InternalComputation.g:778:2: ( ( ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) ) ) )
+            // InternalComputation.g:779:2: ( ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) ) )
             {
-            // InternalComputation.g:863:2: ( ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) ) )
-            // InternalComputation.g:864:3: ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) )
+            // InternalComputation.g:779:2: ( ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) ) )
+            // InternalComputation.g:780:3: ( (lv_coef_0_0= RULE_INT ) )? ( (lv_name_1_0= RULE_ID ) )
             {
-            // InternalComputation.g:864:3: ( (lv_coef_0_0= RULE_INT ) )?
-            int alt9=2;
-            int LA9_0 = input.LA(1);
+            // InternalComputation.g:780:3: ( (lv_coef_0_0= RULE_INT ) )?
+            int alt8=2;
+            int LA8_0 = input.LA(1);
 
-            if ( (LA9_0==RULE_INT) ) {
-                alt9=1;
+            if ( (LA8_0==RULE_INT) ) {
+                alt8=1;
             }
-            switch (alt9) {
+            switch (alt8) {
                 case 1 :
-                    // InternalComputation.g:865:4: (lv_coef_0_0= RULE_INT )
+                    // InternalComputation.g:781:4: (lv_coef_0_0= RULE_INT )
                     {
-                    // InternalComputation.g:865:4: (lv_coef_0_0= RULE_INT )
-                    // InternalComputation.g:866:5: lv_coef_0_0= RULE_INT
+                    // InternalComputation.g:781:4: (lv_coef_0_0= RULE_INT )
+                    // InternalComputation.g:782:5: lv_coef_0_0= RULE_INT
                     {
                     lv_coef_0_0=(Token)match(input,RULE_INT,FOLLOW_6); 
 
@@ -2113,11 +1892,11 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalComputation.g:882:3: ( (lv_name_1_0= RULE_ID ) )
-            // InternalComputation.g:883:4: (lv_name_1_0= RULE_ID )
+            // InternalComputation.g:798:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalComputation.g:799:4: (lv_name_1_0= RULE_ID )
             {
-            // InternalComputation.g:883:4: (lv_name_1_0= RULE_ID )
-            // InternalComputation.g:884:5: lv_name_1_0= RULE_ID
+            // InternalComputation.g:799:4: (lv_name_1_0= RULE_ID )
+            // InternalComputation.g:800:5: lv_name_1_0= RULE_ID
             {
             lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_2); 
 
@@ -2162,7 +1941,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleSummationExpression"
-    // InternalComputation.g:904:1: entryRuleSummationExpression returns [EObject current=null] : iv_ruleSummationExpression= ruleSummationExpression EOF ;
+    // InternalComputation.g:820:1: entryRuleSummationExpression returns [EObject current=null] : iv_ruleSummationExpression= ruleSummationExpression EOF ;
     public final EObject entryRuleSummationExpression() throws RecognitionException {
         EObject current = null;
 
@@ -2170,8 +1949,8 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalComputation.g:904:60: (iv_ruleSummationExpression= ruleSummationExpression EOF )
-            // InternalComputation.g:905:2: iv_ruleSummationExpression= ruleSummationExpression EOF
+            // InternalComputation.g:820:60: (iv_ruleSummationExpression= ruleSummationExpression EOF )
+            // InternalComputation.g:821:2: iv_ruleSummationExpression= ruleSummationExpression EOF
             {
              newCompositeNode(grammarAccess.getSummationExpressionRule()); 
             pushFollow(FOLLOW_1);
@@ -2198,7 +1977,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleSummationExpression"
-    // InternalComputation.g:911:1: ruleSummationExpression returns [EObject current=null] : ( ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? ) | ( (lv_constant_5_0= RULE_INT ) ) ) ;
+    // InternalComputation.g:827:1: ruleSummationExpression returns [EObject current=null] : ( ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? ) | ( (lv_constant_5_0= RULE_INT ) ) ) ;
     public final EObject ruleSummationExpression() throws RecognitionException {
         EObject current = null;
 
@@ -2215,53 +1994,53 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalComputation.g:917:2: ( ( ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? ) | ( (lv_constant_5_0= RULE_INT ) ) ) )
-            // InternalComputation.g:918:2: ( ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? ) | ( (lv_constant_5_0= RULE_INT ) ) )
+            // InternalComputation.g:833:2: ( ( ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? ) | ( (lv_constant_5_0= RULE_INT ) ) ) )
+            // InternalComputation.g:834:2: ( ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? ) | ( (lv_constant_5_0= RULE_INT ) ) )
             {
-            // InternalComputation.g:918:2: ( ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? ) | ( (lv_constant_5_0= RULE_INT ) ) )
-            int alt12=2;
-            int LA12_0 = input.LA(1);
+            // InternalComputation.g:834:2: ( ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? ) | ( (lv_constant_5_0= RULE_INT ) ) )
+            int alt11=2;
+            int LA11_0 = input.LA(1);
 
-            if ( (LA12_0==RULE_INT) ) {
-                int LA12_1 = input.LA(2);
+            if ( (LA11_0==RULE_INT) ) {
+                int LA11_1 = input.LA(2);
 
-                if ( (LA12_1==RULE_ID) ) {
-                    alt12=1;
+                if ( (LA11_1==EOF||LA11_1==13||LA11_1==19) ) {
+                    alt11=2;
                 }
-                else if ( (LA12_1==EOF||LA12_1==13||LA12_1==19) ) {
-                    alt12=2;
+                else if ( (LA11_1==RULE_ID) ) {
+                    alt11=1;
                 }
                 else {
                     NoViableAltException nvae =
-                        new NoViableAltException("", 12, 1, input);
+                        new NoViableAltException("", 11, 1, input);
 
                     throw nvae;
                 }
             }
-            else if ( (LA12_0==RULE_ID) ) {
-                alt12=1;
+            else if ( (LA11_0==RULE_ID) ) {
+                alt11=1;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 12, 0, input);
+                    new NoViableAltException("", 11, 0, input);
 
                 throw nvae;
             }
-            switch (alt12) {
+            switch (alt11) {
                 case 1 :
-                    // InternalComputation.g:919:3: ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? )
+                    // InternalComputation.g:835:3: ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? )
                     {
-                    // InternalComputation.g:919:3: ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? )
-                    // InternalComputation.g:920:4: ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )?
+                    // InternalComputation.g:835:3: ( ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )? )
+                    // InternalComputation.g:836:4: ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* ) (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )?
                     {
-                    // InternalComputation.g:920:4: ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* )
-                    // InternalComputation.g:921:5: ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )*
+                    // InternalComputation.g:836:4: ( ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )* )
+                    // InternalComputation.g:837:5: ( (lv_terms_0_0= ruleProductExpression ) ) (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )*
                     {
-                    // InternalComputation.g:921:5: ( (lv_terms_0_0= ruleProductExpression ) )
-                    // InternalComputation.g:922:6: (lv_terms_0_0= ruleProductExpression )
+                    // InternalComputation.g:837:5: ( (lv_terms_0_0= ruleProductExpression ) )
+                    // InternalComputation.g:838:6: (lv_terms_0_0= ruleProductExpression )
                     {
-                    // InternalComputation.g:922:6: (lv_terms_0_0= ruleProductExpression )
-                    // InternalComputation.g:923:7: lv_terms_0_0= ruleProductExpression
+                    // InternalComputation.g:838:6: (lv_terms_0_0= ruleProductExpression )
+                    // InternalComputation.g:839:7: lv_terms_0_0= ruleProductExpression
                     {
 
                     							newCompositeNode(grammarAccess.getSummationExpressionAccess().getTermsProductExpressionParserRuleCall_0_0_0_0());
@@ -2288,45 +2067,45 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
                     }
 
-                    // InternalComputation.g:940:5: (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )*
-                    loop10:
+                    // InternalComputation.g:856:5: (otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) ) )*
+                    loop9:
                     do {
-                        int alt10=2;
-                        int LA10_0 = input.LA(1);
+                        int alt9=2;
+                        int LA9_0 = input.LA(1);
 
-                        if ( (LA10_0==31) ) {
-                            int LA10_1 = input.LA(2);
+                        if ( (LA9_0==30) ) {
+                            int LA9_1 = input.LA(2);
 
-                            if ( (LA10_1==RULE_INT) ) {
-                                int LA10_3 = input.LA(3);
+                            if ( (LA9_1==RULE_INT) ) {
+                                int LA9_3 = input.LA(3);
 
-                                if ( (LA10_3==RULE_ID) ) {
-                                    alt10=1;
+                                if ( (LA9_3==RULE_ID) ) {
+                                    alt9=1;
                                 }
 
 
                             }
-                            else if ( (LA10_1==RULE_ID) ) {
-                                alt10=1;
+                            else if ( (LA9_1==RULE_ID) ) {
+                                alt9=1;
                             }
 
 
                         }
 
 
-                        switch (alt10) {
+                        switch (alt9) {
                     	case 1 :
-                    	    // InternalComputation.g:941:6: otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) )
+                    	    // InternalComputation.g:857:6: otherlv_1= '+' ( (lv_terms_2_0= ruleProductExpression ) )
                     	    {
-                    	    otherlv_1=(Token)match(input,31,FOLLOW_14); 
+                    	    otherlv_1=(Token)match(input,30,FOLLOW_14); 
 
                     	    						newLeafNode(otherlv_1, grammarAccess.getSummationExpressionAccess().getPlusSignKeyword_0_0_1_0());
                     	    					
-                    	    // InternalComputation.g:945:6: ( (lv_terms_2_0= ruleProductExpression ) )
-                    	    // InternalComputation.g:946:7: (lv_terms_2_0= ruleProductExpression )
+                    	    // InternalComputation.g:861:6: ( (lv_terms_2_0= ruleProductExpression ) )
+                    	    // InternalComputation.g:862:7: (lv_terms_2_0= ruleProductExpression )
                     	    {
-                    	    // InternalComputation.g:946:7: (lv_terms_2_0= ruleProductExpression )
-                    	    // InternalComputation.g:947:8: lv_terms_2_0= ruleProductExpression
+                    	    // InternalComputation.g:862:7: (lv_terms_2_0= ruleProductExpression )
+                    	    // InternalComputation.g:863:8: lv_terms_2_0= ruleProductExpression
                     	    {
 
                     	    								newCompositeNode(grammarAccess.getSummationExpressionAccess().getTermsProductExpressionParserRuleCall_0_0_1_1_0());
@@ -2358,33 +2137,33 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
                     	    break;
 
                     	default :
-                    	    break loop10;
+                    	    break loop9;
                         }
                     } while (true);
 
 
                     }
 
-                    // InternalComputation.g:966:4: (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )?
-                    int alt11=2;
-                    int LA11_0 = input.LA(1);
+                    // InternalComputation.g:882:4: (otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) ) )?
+                    int alt10=2;
+                    int LA10_0 = input.LA(1);
 
-                    if ( (LA11_0==31) ) {
-                        alt11=1;
+                    if ( (LA10_0==30) ) {
+                        alt10=1;
                     }
-                    switch (alt11) {
+                    switch (alt10) {
                         case 1 :
-                            // InternalComputation.g:967:5: otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) )
+                            // InternalComputation.g:883:5: otherlv_3= '+' ( (lv_constant_4_0= RULE_INT ) )
                             {
-                            otherlv_3=(Token)match(input,31,FOLLOW_8); 
+                            otherlv_3=(Token)match(input,30,FOLLOW_8); 
 
                             					newLeafNode(otherlv_3, grammarAccess.getSummationExpressionAccess().getPlusSignKeyword_0_1_0());
                             				
-                            // InternalComputation.g:971:5: ( (lv_constant_4_0= RULE_INT ) )
-                            // InternalComputation.g:972:6: (lv_constant_4_0= RULE_INT )
+                            // InternalComputation.g:887:5: ( (lv_constant_4_0= RULE_INT ) )
+                            // InternalComputation.g:888:6: (lv_constant_4_0= RULE_INT )
                             {
-                            // InternalComputation.g:972:6: (lv_constant_4_0= RULE_INT )
-                            // InternalComputation.g:973:7: lv_constant_4_0= RULE_INT
+                            // InternalComputation.g:888:6: (lv_constant_4_0= RULE_INT )
+                            // InternalComputation.g:889:7: lv_constant_4_0= RULE_INT
                             {
                             lv_constant_4_0=(Token)match(input,RULE_INT,FOLLOW_2); 
 
@@ -2419,13 +2198,13 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalComputation.g:992:3: ( (lv_constant_5_0= RULE_INT ) )
+                    // InternalComputation.g:908:3: ( (lv_constant_5_0= RULE_INT ) )
                     {
-                    // InternalComputation.g:992:3: ( (lv_constant_5_0= RULE_INT ) )
-                    // InternalComputation.g:993:4: (lv_constant_5_0= RULE_INT )
+                    // InternalComputation.g:908:3: ( (lv_constant_5_0= RULE_INT ) )
+                    // InternalComputation.g:909:4: (lv_constant_5_0= RULE_INT )
                     {
-                    // InternalComputation.g:993:4: (lv_constant_5_0= RULE_INT )
-                    // InternalComputation.g:994:5: lv_constant_5_0= RULE_INT
+                    // InternalComputation.g:909:4: (lv_constant_5_0= RULE_INT )
+                    // InternalComputation.g:910:5: lv_constant_5_0= RULE_INT
                     {
                     lv_constant_5_0=(Token)match(input,RULE_INT,FOLLOW_2); 
 
@@ -2473,7 +2252,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleProductExpression"
-    // InternalComputation.g:1014:1: entryRuleProductExpression returns [EObject current=null] : iv_ruleProductExpression= ruleProductExpression EOF ;
+    // InternalComputation.g:930:1: entryRuleProductExpression returns [EObject current=null] : iv_ruleProductExpression= ruleProductExpression EOF ;
     public final EObject entryRuleProductExpression() throws RecognitionException {
         EObject current = null;
 
@@ -2481,8 +2260,8 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalComputation.g:1014:58: (iv_ruleProductExpression= ruleProductExpression EOF )
-            // InternalComputation.g:1015:2: iv_ruleProductExpression= ruleProductExpression EOF
+            // InternalComputation.g:930:58: (iv_ruleProductExpression= ruleProductExpression EOF )
+            // InternalComputation.g:931:2: iv_ruleProductExpression= ruleProductExpression EOF
             {
              newCompositeNode(grammarAccess.getProductExpressionRule()); 
             pushFollow(FOLLOW_1);
@@ -2509,7 +2288,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleProductExpression"
-    // InternalComputation.g:1021:1: ruleProductExpression returns [EObject current=null] : ( ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* ) ) ;
+    // InternalComputation.g:937:1: ruleProductExpression returns [EObject current=null] : ( ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* ) ) ;
     public final EObject ruleProductExpression() throws RecognitionException {
         EObject current = null;
 
@@ -2521,25 +2300,25 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalComputation.g:1027:2: ( ( ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* ) ) )
-            // InternalComputation.g:1028:2: ( ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* ) )
+            // InternalComputation.g:943:2: ( ( ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* ) ) )
+            // InternalComputation.g:944:2: ( ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* ) )
             {
-            // InternalComputation.g:1028:2: ( ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* ) )
-            // InternalComputation.g:1029:3: ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* )
+            // InternalComputation.g:944:2: ( ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* ) )
+            // InternalComputation.g:945:3: ( (lv_constant_0_0= RULE_INT ) )? ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* )
             {
-            // InternalComputation.g:1029:3: ( (lv_constant_0_0= RULE_INT ) )?
-            int alt13=2;
-            int LA13_0 = input.LA(1);
+            // InternalComputation.g:945:3: ( (lv_constant_0_0= RULE_INT ) )?
+            int alt12=2;
+            int LA12_0 = input.LA(1);
 
-            if ( (LA13_0==RULE_INT) ) {
-                alt13=1;
+            if ( (LA12_0==RULE_INT) ) {
+                alt12=1;
             }
-            switch (alt13) {
+            switch (alt12) {
                 case 1 :
-                    // InternalComputation.g:1030:4: (lv_constant_0_0= RULE_INT )
+                    // InternalComputation.g:946:4: (lv_constant_0_0= RULE_INT )
                     {
-                    // InternalComputation.g:1030:4: (lv_constant_0_0= RULE_INT )
-                    // InternalComputation.g:1031:5: lv_constant_0_0= RULE_INT
+                    // InternalComputation.g:946:4: (lv_constant_0_0= RULE_INT )
+                    // InternalComputation.g:947:5: lv_constant_0_0= RULE_INT
                     {
                     lv_constant_0_0=(Token)match(input,RULE_INT,FOLLOW_6); 
 
@@ -2564,14 +2343,14 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalComputation.g:1047:3: ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* )
-            // InternalComputation.g:1048:4: ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )*
+            // InternalComputation.g:963:3: ( ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )* )
+            // InternalComputation.g:964:4: ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= RULE_ID ) )*
             {
-            // InternalComputation.g:1048:4: ( (otherlv_1= RULE_ID ) )
-            // InternalComputation.g:1049:5: (otherlv_1= RULE_ID )
+            // InternalComputation.g:964:4: ( (otherlv_1= RULE_ID ) )
+            // InternalComputation.g:965:5: (otherlv_1= RULE_ID )
             {
-            // InternalComputation.g:1049:5: (otherlv_1= RULE_ID )
-            // InternalComputation.g:1050:6: otherlv_1= RULE_ID
+            // InternalComputation.g:965:5: (otherlv_1= RULE_ID )
+            // InternalComputation.g:966:6: otherlv_1= RULE_ID
             {
 
             						if (current==null) {
@@ -2588,23 +2367,23 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalComputation.g:1061:4: ( (otherlv_2= RULE_ID ) )*
-            loop14:
+            // InternalComputation.g:977:4: ( (otherlv_2= RULE_ID ) )*
+            loop13:
             do {
-                int alt14=2;
-                int LA14_0 = input.LA(1);
+                int alt13=2;
+                int LA13_0 = input.LA(1);
 
-                if ( (LA14_0==RULE_ID) ) {
-                    alt14=1;
+                if ( (LA13_0==RULE_ID) ) {
+                    alt13=1;
                 }
 
 
-                switch (alt14) {
+                switch (alt13) {
             	case 1 :
-            	    // InternalComputation.g:1062:5: (otherlv_2= RULE_ID )
+            	    // InternalComputation.g:978:5: (otherlv_2= RULE_ID )
             	    {
-            	    // InternalComputation.g:1062:5: (otherlv_2= RULE_ID )
-            	    // InternalComputation.g:1063:6: otherlv_2= RULE_ID
+            	    // InternalComputation.g:978:5: (otherlv_2= RULE_ID )
+            	    // InternalComputation.g:979:6: otherlv_2= RULE_ID
             	    {
 
             	    						if (current==null) {
@@ -2623,7 +2402,7 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
             	    break;
 
             	default :
-            	    break loop14;
+            	    break loop13;
                 }
             } while (true);
 
@@ -2674,15 +2453,15 @@ public class InternalComputationParser extends AbstractInternalAntlrParser {
     public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000600000L});
     public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000680000L});
     public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x000000004C000030L});
+    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x000000000C000030L});
     public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000001000000L});
     public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000002000000L});
     public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000008000000L});
     public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000010000000L});
     public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000030000000L});
-    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000080000000L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000040000000L});
     public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000020000000L});
-    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000080000002L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000040000002L});
     public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000000000012L});
 
 }
\ No newline at end of file
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/serializer/ComputationSemanticSequencer.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/serializer/ComputationSemanticSequencer.java
index 130f977..1aa86f6 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/serializer/ComputationSemanticSequencer.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/serializer/ComputationSemanticSequencer.java
@@ -24,7 +24,6 @@ import typeexploration.computation.MaxExpression;
 import typeexploration.computation.OperandTerm;
 import typeexploration.computation.Operation;
 import typeexploration.computation.ProductExpression;
-import typeexploration.computation.SumExpression;
 import typeexploration.computation.SummationExpression;
 
 @SuppressWarnings("all")
@@ -68,9 +67,6 @@ public class ComputationSemanticSequencer extends AbstractDelegatingSemanticSequ
 			case ComputationPackage.PRODUCT_EXPRESSION:
 				sequence_ProductExpression(context, (ProductExpression) semanticObject); 
 				return; 
-			case ComputationPackage.SUM_EXPRESSION:
-				sequence_SumExpression(context, (SumExpression) semanticObject); 
-				return; 
 			case ComputationPackage.SUMMATION_EXPRESSION:
 				sequence_SummationExpression(context, (SummationExpression) semanticObject); 
 				return; 
@@ -240,19 +236,6 @@ public class ComputationSemanticSequencer extends AbstractDelegatingSemanticSequ
 	}
 	
 	
-	/**
-	 * Contexts:
-	 *     OperandExpression returns SumExpression
-	 *     SumExpression returns SumExpression
-	 *
-	 * Constraint:
-	 *     (exprs+=TerminalOperandExpression exprs+=TerminalOperandExpression+)
-	 */
-	protected void sequence_SumExpression(ISerializationContext context, SumExpression semanticObject) {
-		genericSequencer.createSequence(context, semanticObject);
-	}
-	
-	
 	/**
 	 * Contexts:
 	 *     SummationExpression returns SummationExpression
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/services/ComputationGrammarAccess.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/services/ComputationGrammarAccess.java
index b2a3dbf..aab1313 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/services/ComputationGrammarAccess.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src-gen/fr/irisa/cairn/gecos/typeexploration/services/ComputationGrammarAccess.java
@@ -311,25 +311,21 @@ public class ComputationGrammarAccess extends AbstractGrammarElementFinder {
 	public class OperandExpressionElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irisa.cairn.gecos.typeexploration.Computation.OperandExpression");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
-		private final RuleCall cSumExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
-		private final RuleCall cMaxExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
-		private final RuleCall cTerminalOperandExpressionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		private final RuleCall cMaxExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cTerminalOperandExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		
 		//OperandExpression:
-		//	SumExpression | MaxExpression | TerminalOperandExpression;
+		//	MaxExpression | TerminalOperandExpression;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//SumExpression | MaxExpression | TerminalOperandExpression
+		//MaxExpression | TerminalOperandExpression
 		public Alternatives getAlternatives() { return cAlternatives; }
 		
-		//SumExpression
-		public RuleCall getSumExpressionParserRuleCall_0() { return cSumExpressionParserRuleCall_0; }
-		
 		//MaxExpression
-		public RuleCall getMaxExpressionParserRuleCall_1() { return cMaxExpressionParserRuleCall_1; }
+		public RuleCall getMaxExpressionParserRuleCall_0() { return cMaxExpressionParserRuleCall_0; }
 		
 		//TerminalOperandExpression
-		public RuleCall getTerminalOperandExpressionParserRuleCall_2() { return cTerminalOperandExpressionParserRuleCall_2; }
+		public RuleCall getTerminalOperandExpressionParserRuleCall_1() { return cTerminalOperandExpressionParserRuleCall_1; }
 	}
 	public class MaxExpressionElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irisa.cairn.gecos.typeexploration.Computation.MaxExpression");
@@ -378,53 +374,6 @@ public class ComputationGrammarAccess extends AbstractGrammarElementFinder {
 		//')'
 		public Keyword getRightParenthesisKeyword_4() { return cRightParenthesisKeyword_4; }
 	}
-	public class SumExpressionElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irisa.cairn.gecos.typeexploration.Computation.SumExpression");
-		private final Group cGroup = (Group)rule.eContents().get(1);
-		private final Keyword cSumKeyword_0 = (Keyword)cGroup.eContents().get(0);
-		private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
-		private final Assignment cExprsAssignment_2 = (Assignment)cGroup.eContents().get(2);
-		private final RuleCall cExprsTerminalOperandExpressionParserRuleCall_2_0 = (RuleCall)cExprsAssignment_2.eContents().get(0);
-		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
-		private final Keyword cCommaKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
-		private final Assignment cExprsAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
-		private final RuleCall cExprsTerminalOperandExpressionParserRuleCall_3_1_0 = (RuleCall)cExprsAssignment_3_1.eContents().get(0);
-		private final Keyword cRightParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
-		
-		//SumExpression:
-		//	'sum' '(' exprs+=TerminalOperandExpression (',' exprs+=TerminalOperandExpression)+ ')';
-		@Override public ParserRule getRule() { return rule; }
-		
-		//'sum' '(' exprs+=TerminalOperandExpression (',' exprs+=TerminalOperandExpression)+ ')'
-		public Group getGroup() { return cGroup; }
-		
-		//'sum'
-		public Keyword getSumKeyword_0() { return cSumKeyword_0; }
-		
-		//'('
-		public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
-		
-		//exprs+=TerminalOperandExpression
-		public Assignment getExprsAssignment_2() { return cExprsAssignment_2; }
-		
-		//TerminalOperandExpression
-		public RuleCall getExprsTerminalOperandExpressionParserRuleCall_2_0() { return cExprsTerminalOperandExpressionParserRuleCall_2_0; }
-		
-		//(',' exprs+=TerminalOperandExpression)+
-		public Group getGroup_3() { return cGroup_3; }
-		
-		//','
-		public Keyword getCommaKeyword_3_0() { return cCommaKeyword_3_0; }
-		
-		//exprs+=TerminalOperandExpression
-		public Assignment getExprsAssignment_3_1() { return cExprsAssignment_3_1; }
-		
-		//TerminalOperandExpression
-		public RuleCall getExprsTerminalOperandExpressionParserRuleCall_3_1_0() { return cExprsTerminalOperandExpressionParserRuleCall_3_1_0; }
-		
-		//')'
-		public Keyword getRightParenthesisKeyword_4() { return cRightParenthesisKeyword_4; }
-	}
 	public class TerminalOperandExpressionElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.irisa.cairn.gecos.typeexploration.Computation.TerminalOperandExpression");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
@@ -634,7 +583,6 @@ public class ComputationGrammarAccess extends AbstractGrammarElementFinder {
 	private final OperationElements pOperation;
 	private final OperandExpressionElements pOperandExpression;
 	private final MaxExpressionElements pMaxExpression;
-	private final SumExpressionElements pSumExpression;
 	private final TerminalOperandExpressionElements pTerminalOperandExpression;
 	private final AddExpressionElements pAddExpression;
 	private final OperandTermElements pOperandTerm;
@@ -658,7 +606,6 @@ public class ComputationGrammarAccess extends AbstractGrammarElementFinder {
 		this.pOperation = new OperationElements();
 		this.pOperandExpression = new OperandExpressionElements();
 		this.pMaxExpression = new MaxExpressionElements();
-		this.pSumExpression = new SumExpressionElements();
 		this.pTerminalOperandExpression = new TerminalOperandExpressionElements();
 		this.pAddExpression = new AddExpressionElements();
 		this.pOperandTerm = new OperandTermElements();
@@ -763,7 +710,7 @@ public class ComputationGrammarAccess extends AbstractGrammarElementFinder {
 	}
 	
 	//OperandExpression:
-	//	SumExpression | MaxExpression | TerminalOperandExpression;
+	//	MaxExpression | TerminalOperandExpression;
 	public OperandExpressionElements getOperandExpressionAccess() {
 		return pOperandExpression;
 	}
@@ -782,16 +729,6 @@ public class ComputationGrammarAccess extends AbstractGrammarElementFinder {
 		return getMaxExpressionAccess().getRule();
 	}
 	
-	//SumExpression:
-	//	'sum' '(' exprs+=TerminalOperandExpression (',' exprs+=TerminalOperandExpression)+ ')';
-	public SumExpressionElements getSumExpressionAccess() {
-		return pSumExpression;
-	}
-	
-	public ParserRule getSumExpressionRule() {
-		return getSumExpressionAccess().getRule();
-	}
-	
 	//TerminalOperandExpression OperandExpression:
 	//	AddExpression | OperandTerm;
 	public TerminalOperandExpressionElements getTerminalOperandExpressionAccess() {
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src/fr/irisa/cairn/gecos/typeexploration/Computation.xtext b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src/fr/irisa/cairn/gecos/typeexploration/Computation.xtext
index 94d4fef..4a80770 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src/fr/irisa/cairn/gecos/typeexploration/Computation.xtext
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation.xtext/src/fr/irisa/cairn/gecos/typeexploration/Computation.xtext
@@ -38,18 +38,13 @@ Operation:
 ;
 
 OperandExpression:
-	SumExpression|MaxExpression|TerminalOperandExpression
+	MaxExpression|TerminalOperandExpression
 ;
 
 MaxExpression:
 	'max' '(' exprs+=TerminalOperandExpression (',' exprs+=TerminalOperandExpression)+ ')'
 ;
 
-// FIXME Update code: Phu
-SumExpression:
-	'sum' '(' exprs+=TerminalOperandExpression (',' exprs+=TerminalOperandExpression)+ ')'
-;
-
 TerminalOperandExpression returns OperandExpression:
 	AddExpression | OperandTerm
 ;
-- 
GitLab


From 3a964361164f4135693b92bfec7b96539f4b36c3 Mon Sep 17 00:00:00 2001
From: Tomofumi Yuki <tomofumi.yuki@gmail.com>
Date: Mon, 28 Jan 2019 11:59:02 +0100
Subject: [PATCH 09/11] Revert "add sum expression to
 ComputationModelEvaluator"

This reverts commit 2eb657f72c6144f2ddb2551aa67c61da6217d216.
---
 .../typeexploration/cost/ComputationModelEvaluator.java   | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration/src/fr/irisa/cairn/gecos/typeexploration/cost/ComputationModelEvaluator.java b/bundles/fr.irisa.cairn.gecos.typeexploration/src/fr/irisa/cairn/gecos/typeexploration/cost/ComputationModelEvaluator.java
index c85b7fe..1203d4f 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration/src/fr/irisa/cairn/gecos/typeexploration/cost/ComputationModelEvaluator.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration/src/fr/irisa/cairn/gecos/typeexploration/cost/ComputationModelEvaluator.java
@@ -9,8 +9,6 @@ import typeexploration.computation.AddExpression;
 import typeexploration.computation.ComputationBlock;
 import typeexploration.computation.ComputationModel;
 import typeexploration.computation.MaxExpression;
-//FIXME Update code: Phu
-import typeexploration.computation.SumExpression;
 import typeexploration.computation.OperandTerm;
 import typeexploration.computation.Operation;
 import typeexploration.computation.Parameter;
@@ -122,12 +120,6 @@ public class ComputationModelEvaluator implements ICostEvaluator {
 			return object.getExprs().stream().mapToLong((e)->doSwitch(e)).reduce((x,y)->Math.max(x, y)).getAsLong();
 		}
 		
-		// FIXME Update code: Phu
-		@Override
-		public Long caseSumExpression(SumExpression object) {
-			return object.getExprs().stream().mapToLong((e)->doSwitch(e)).reduce((x,y)->(x+y)).getAsLong();
-		}
-		
 		@Override
 		public Long caseAddExpression(AddExpression object) {
 			return doSwitch(object.getOp1()) + doSwitch(object.getOp2());
-- 
GitLab


From 1dc151db8d8fc063ab80ab571461b38e76c216be Mon Sep 17 00:00:00 2001
From: Tomofumi Yuki <tomofumi.yuki@gmail.com>
Date: Mon, 28 Jan 2019 14:08:29 +0100
Subject: [PATCH 10/11] cleaning up comments by Phu

---
 .../cairn/gecos/typeexploration/dse/TabuExploration.java    | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration/src/fr/irisa/cairn/gecos/typeexploration/dse/TabuExploration.java b/bundles/fr.irisa.cairn.gecos.typeexploration/src/fr/irisa/cairn/gecos/typeexploration/dse/TabuExploration.java
index b09f298..8d0a3e6 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration/src/fr/irisa/cairn/gecos/typeexploration/dse/TabuExploration.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration/src/fr/irisa/cairn/gecos/typeexploration/dse/TabuExploration.java
@@ -108,15 +108,11 @@ public class TabuExploration extends AbstractExplorationAlgorithm {
 			}
 		}
 		
-		// FIXME Update code: Phu
-		// if(!getAccuracy(solution).isPresent() || !getCost(solution).isPresent())
 		if(!getAccuracy(optimalSol).isPresent() || !getCost(optimalSol).isPresent())
 			throw new NoSolutionFoundException("Failed to find a solution likely because the minimun precision "
 					+ "configuration of some Symbols is too low, resulting in errors (like divide by zero for example).\n"
 					+ "Try rerun after enabling pruning or increasing the minimum W values of some symbols.");
 		
-		// FIXME Update code: Phu
-		// if(!userAccuracyConstraint.isValid(solution))
 		if(!userAccuracyConstraint.isValid(optimalSol))
 			throw new NoSolutionFoundException("No valid solution was found!");
 		
@@ -174,8 +170,6 @@ public class TabuExploration extends AbstractExplorationAlgorithm {
 						logger.warning("Skipping next solution (direction down) candidate: " + nextSolution.getID() + " cause: " + e.getMessage());
 					}
 				}
-				// FIXME Update code: Phu
-				// else { //already at max (min) and direction up (down) 
 				else if (indexMax == 0) {
 					synchronized (finished) {
 						logger.fine(() -> "Symbol exploration finished; already at " + (directionUp? "max W & direction is up" : "min W & direction is down") + ": " + symbol);
-- 
GitLab


From 95caf8c9bb3d5387f79efdf1b7f24c76641f7266 Mon Sep 17 00:00:00 2001
From: Tomofumi Yuki <tomofumi.yuki@gmail.com>
Date: Mon, 28 Jan 2019 14:09:22 +0100
Subject: [PATCH 11/11] adding support for up to 32 bits operands in costmodel

---
 .../resources/data_fixed_v2.csv               |  2 +-
 .../concrete/ConcreteOperation.java           | 34 ++++++++++---------
 2 files changed, 19 insertions(+), 17 deletions(-)

diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/resources/data_fixed_v2.csv b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/resources/data_fixed_v2.csv
index 7d23c8c..5ed5d5f 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/resources/data_fixed_v2.csv
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/resources/data_fixed_v2.csv
@@ -1 +1 @@
-OPE,IN1,IN2,OUT,AREA,POWER,DELAY,EQM
ADD,4,4,4,28.070401,3.352e-06,0.15000000000000036,0.00780890625
ADD,6,4,4,28.070401,3.352e-06,0.15000000000000036,0.01711824219
ADD,6,4,6,33.945601,4.421e-06,0.16999999999999993,0.0004876503906
ADD,6,6,4,30.844801,3.395e-06,0.21000000000000085,0.01710143066
ADD,6,6,6,39.494401,4.487e-06,0.22000000000000064,0.0004883339844
ADD,8,4,4,28.070401,3.352e-06,0.15000000000000036,0.01983948077
ADD,8,4,6,33.945601,4.421e-06,0.16999999999999993,0.001065920044
ADD,8,4,8,40.147201,5.481e-06,0.16999999999999993,3.051153564e-05
ADD,8,6,4,30.844801,3.395e-06,0.21000000000000085,0.01986279285
ADD,8,6,6,39.494401,4.487e-06,0.22000000000000064,0.001068973022
ADD,8,6,8,45.369601,5.553e-06,0.22000000000000064,3.049353027e-05
ADD,8,8,4,36.067201,3.468e-06,0.27999999999999936,0.01989185999
ADD,8,8,6,42.268801,4.53e-06,0.27999999999999936,0.001068171692
ADD,8,8,8,50.918401,5.637e-06,0.28999999999999915,3.048999023e-05
ADD,10,4,4,28.070401,3.352e-06,0.15000000000000036,0.02061868701
ADD,10,4,6,33.945601,4.421e-06,0.16999999999999993,0.001241564648
ADD,10,4,8,40.147201,5.481e-06,0.16999999999999993,6.674811935e-05
ADD,10,4,10,46.348801,6.544e-06,0.16999999999999993,1.908878326e-06
ADD,10,6,4,30.844801,3.395e-06,0.21000000000000085,0.02061524557
ADD,10,6,6,39.494401,4.487e-06,0.22000000000000064,0.00124151017
ADD,10,6,8,45.369601,5.553e-06,0.22000000000000064,6.678604126e-05
ADD,10,6,10,51.571201,6.616e-06,0.22000000000000064,1.907318115e-06
ADD,10,8,4,36.067201,3.468e-06,0.27999999999999936,0.02057172595
ADD,10,8,6,42.268801,4.53e-06,0.27999999999999936,0.001241381626
ADD,10,8,8,50.918401,5.637e-06,0.28999999999999915,6.66636734e-05
ADD,10,8,10,56.793601,6.689e-06,0.28999999999999915,1.906887054e-06
ADD,10,10,4,41.289601,3.54e-06,0.33999999999999986,0.02059211031
ADD,10,10,6,47.491201,4.603e-06,0.34999999999999964,0.001241007881
ADD,10,10,8,53.692801,5.672e-06,0.34999999999999964,6.671702194e-05
ADD,10,10,10,62.342401,6.773e-06,0.34999999999999964,1.908344269e-06
ADD,12,4,4,28.070401,3.352e-06,0.15000000000000036,0.02077700139
ADD,12,4,6,33.945601,4.421e-06,0.16999999999999993,0.001286251966
ADD,12,4,8,40.147201,5.481e-06,0.16999999999999993,7.759400272e-05
ADD,12,4,10,46.348801,6.544e-06,0.16999999999999993,4.175303459e-06
ADD,12,4,12,52.550401,7.607e-06,0.16999999999999993,1.193773746e-07
ADD,12,6,4,30.844801,3.395e-06,0.21000000000000085,0.02075653371
ADD,12,6,6,39.494401,4.487e-06,0.22000000000000064,0.001285820923
ADD,12,6,8,45.369601,5.553e-06,0.22000000000000064,7.762175322e-05
ADD,12,6,10,51.571201,6.616e-06,0.22000000000000064,4.177253246e-06
ADD,12,6,12,57.772801,7.68e-06,0.22000000000000064,1.192348003e-07
ADD,12,8,4,36.067201,3.468e-06,0.27999999999999936,0.02078809001
ADD,12,8,6,42.268801,4.53e-06,0.27999999999999936,0.001284329003
ADD,12,8,8,50.918401,5.637e-06,0.28999999999999915,7.762913275e-05
ADD,12,8,10,56.793601,6.689e-06,0.28999999999999915,4.17343545e-06
ADD,12,8,12,62.995201,7.752e-06,0.28999999999999915,1.193227768e-07
ADD,12,10,4,41.289601,3.54e-06,0.33999999999999986,0.02076957118
ADD,12,10,6,47.491201,4.603e-06,0.34999999999999964,0.001286563902
ADD,12,10,8,53.692801,5.672e-06,0.34999999999999964,7.736998868e-05
ADD,12,10,10,62.342401,6.773e-06,0.34999999999999964,4.179016829e-06
ADD,12,10,12,68.217601,7.825e-06,0.34999999999999964,1.191253662e-07
ADD,12,12,4,46.512001,3.612e-06,0.41000000000000014,0.02079407986
ADD,12,12,6,52.713601,4.675e-06,0.41000000000000014,0.001286086922
ADD,12,12,8,58.915202,5.744e-06,0.41000000000000014,7.77013042e-05
ADD,12,12,10,65.116802,6.808e-06,0.41000000000000014,4.17263937e-06
ADD,12,12,12,73.766402,7.909e-06,0.41999999999999993,1.192073822e-07
ADD,14,4,4,28.070401,3.352e-06,0.15000000000000036,0.02082309902
ADD,14,4,6,33.945601,4.421e-06,0.16999999999999993,0.001298381011
ADD,14,4,8,40.147201,5.481e-06,0.16999999999999993,8.036566056e-05
ADD,14,4,10,46.348801,6.544e-06,0.16999999999999993,4.845442981e-06
ADD,14,4,12,52.550401,7.607e-06,0.16999999999999993,2.605926991e-07
ADD,14,4,14,58.752001,8.671e-06,0.1899999999999995,7.454931736e-09
ADD,14,6,4,30.844801,3.395e-06,0.21000000000000085,0.0208372406
ADD,14,6,6,39.494401,4.487e-06,0.22000000000000064,0.001298009098
ADD,14,6,8,45.369601,5.553e-06,0.22000000000000064,8.045137016e-05
ADD,14,6,10,51.571201,6.616e-06,0.22000000000000064,4.855374888e-06
ADD,14,6,12,57.772801,7.68e-06,0.22000000000000064,2.609478086e-07
ADD,14,6,14,63.974401,8.743e-06,0.22000000000000064,7.454663515e-09
ADD,14,8,4,36.067201,3.468e-06,0.27999999999999936,0.02081335963
ADD,14,8,6,42.268801,4.53e-06,0.27999999999999936,0.001298961867
ADD,14,8,8,50.918401,5.637e-06,0.28999999999999915,8.046185118e-05
ADD,14,8,10,56.793601,6.689e-06,0.28999999999999915,4.852805465e-06
ADD,14,8,12,62.995201,7.752e-06,0.28999999999999915,2.608472407e-07
ADD,14,8,14,69.196801,8.816e-06,0.28999999999999915,7.452890277e-09
ADD,14,10,4,41.289601,3.54e-06,0.33999999999999986,0.02082531497
ADD,14,10,6,47.491201,4.603e-06,0.34999999999999964,0.00129856323
ADD,14,10,8,53.692801,5.672e-06,0.34999999999999964,8.043021199e-05
ADD,14,10,10,62.342401,6.773e-06,0.34999999999999964,4.841312513e-06
ADD,14,10,12,68.217601,7.825e-06,0.34999999999999964,2.608590871e-07
ADD,14,10,14,74.419202,8.888e-06,0.34999999999999964,7.451564074e-09
ADD,14,12,4,46.512001,3.612e-06,0.41000000000000014,0.02079900166
ADD,14,12,6,52.713601,4.675e-06,0.41000000000000014,0.001299366686
ADD,14,12,8,58.915202,5.744e-06,0.41000000000000014,8.046718779e-05
ADD,14,12,10,65.116802,6.808e-06,0.41000000000000014,4.846992582e-06
ADD,14,12,12,73.766402,7.909e-06,0.41999999999999993,2.608144432e-07
ADD,14,12,14,79.641602,8.961e-06,0.41999999999999993,7.451146841e-09
ADD,14,14,4,51.734402,3.685e-06,0.4800000000000004,0.0208047656
ADD,14,14,6,57.936002,4.748e-06,0.4800000000000004,0.001296966644
ADD,14,14,8,64.137602,5.817e-06,0.4800000000000004,8.048706833e-05
ADD,14,14,10,70.339202,6.88e-06,0.4800000000000004,4.842701197e-06
ADD,14,14,12,76.540802,7.944e-06,0.4800000000000004,2.612003684e-07
ADD,14,14,14,85.190402,9.045e-06,0.4900000000000002,7.454290986e-09
ADD,16,4,4,28.070401,3.352e-06,0.15000000000000036,0.02084011415
ADD,16,4,6,33.945601,4.421e-06,0.16999999999999993,0.001303063025
ADD,16,4,8,40.147201,5.481e-06,0.16999999999999993,8.108568049e-05
ADD,16,4,10,46.348801,6.544e-06,0.16999999999999993,5.02314876e-06
ADD,16,4,12,52.550401,7.607e-06,0.16999999999999993,3.028631071e-07
ADD,16,4,14,58.752001,8.671e-06,0.1899999999999995,1.630844828e-08
ADD,16,4,16,64.953601,9.734e-06,0.1999999999999993,4.648482427e-10
ADD,16,6,4,30.844801,3.395e-06,0.21000000000000085,0.02080717766
ADD,16,6,6,39.494401,4.487e-06,0.22000000000000064,0.001301815165
ADD,16,6,8,45.369601,5.553e-06,0.22000000000000064,8.118042083e-05
ADD,16,6,10,51.571201,6.616e-06,0.22000000000000064,5.02645099e-06
ADD,16,6,12,57.772801,7.68e-06,0.22000000000000064,3.033646028e-07
ADD,16,6,14,63.974401,8.743e-06,0.22000000000000064,1.630309783e-08
ADD,16,6,16,70.176001,9.807e-06,0.22000000000000064,4.65400517e-10
ADD,16,8,4,36.067201,3.468e-06,0.27999999999999936,0.0208576161
ADD,16,8,6,42.268801,4.53e-06,0.27999999999999936,0.001302087256
ADD,16,8,8,50.918401,5.637e-06,0.28999999999999915,8.126370151e-05
ADD,16,8,10,56.793601,6.689e-06,0.28999999999999915,5.030640025e-06
ADD,16,8,12,62.995201,7.752e-06,0.28999999999999915,3.029441936e-07
ADD,16,8,14,69.196801,8.816e-06,0.28999999999999915,1.628148463e-08
ADD,16,8,16,75.398401,9.879e-06,0.28999999999999915,4.665721208e-10
ADD,16,10,4,41.289601,3.54e-06,0.33999999999999986,0.02079459543
ADD,16,10,6,47.491201,4.603e-06,0.34999999999999964,0.001299584603
ADD,16,10,8,53.692801,5.672e-06,0.34999999999999964,8.117153829e-05
ADD,16,10,10,62.342401,6.773e-06,0.34999999999999964,5.032494283e-06
ADD,16,10,12,68.217601,7.825e-06,0.34999999999999964,3.036044249e-07
ADD,16,10,14,74.419202,8.888e-06,0.34999999999999964,1.628452539e-08
ADD,16,10,16,80.620802,9.952e-06,0.35999999999999943,4.660217091e-10
ADD,16,12,4,46.512001,3.612e-06,0.41000000000000014,0.02083991238
ADD,16,12,6,52.713601,4.675e-06,0.41000000000000014,0.001300344286
ADD,16,12,8,58.915202,5.744e-06,0.41000000000000014,8.107340589e-05
ADD,16,12,10,65.116802,6.808e-06,0.41000000000000014,5.027525183e-06
ADD,16,12,12,73.766402,7.909e-06,0.41999999999999993,3.033075472e-07
ADD,16,12,14,79.641602,8.961e-06,0.41999999999999993,1.631641109e-08
ADD,16,12,16,85.843202,1.002e-05,0.41999999999999993,4.658894613e-10
ADD,16,14,4,51.734402,3.685e-06,0.4800000000000004,0.02082712751
ADD,16,14,6,57.936002,4.748e-06,0.4800000000000004,0.001301603199
ADD,16,14,8,64.137602,5.817e-06,0.4800000000000004,8.118246703e-05
ADD,16,14,10,70.339202,6.88e-06,0.4800000000000004,5.029239952e-06
ADD,16,14,12,76.540802,7.944e-06,0.4800000000000004,3.028893732e-07
ADD,16,14,14,85.190402,9.045e-06,0.4900000000000002,1.627261564e-08
ADD,16,14,16,91.065602,1.01e-05,0.4900000000000002,4.660487175e-10
ADD,16,16,4,56.956802,3.757e-06,0.5399999999999991,0.02082626331
ADD,16,16,6,63.158402,4.82e-06,0.5399999999999991,0.001301252264
ADD,16,16,8,69.360002,5.889e-06,0.5399999999999991,8.123877404e-05
ADD,16,16,10,75.561602,6.953e-06,0.5399999999999991,5.0251212e-06
ADD,16,16,12,81.763202,8.016e-06,0.5500000000000007,3.028445058e-07
ADD,16,16,14,87.964802,9.08e-06,0.5500000000000007,1.628410537e-08
ADD,16,16,16,96.614402,1.018e-05,0.5500000000000007,4.663374275e-10
MUL,4,4,4,47.491201,3.656e-06,0.23000000000000043,0.01591461572
MUL,4,4,6,59.241601,4.782e-06,0.2699999999999996,0.0005493239746
MUL,4,4,8,67.891201,5.779e-06,0.27999999999999936,0.0
MUL,6,4,6,73.440001,4.774e-06,0.33000000000000007,0.0009951670685
MUL,6,4,8,83.232001,6.001e-06,0.34999999999999964,3.431263733e-05
MUL,6,4,10,92.371201,7.128e-06,0.35999999999999943,0.0
MUL,6,6,6,105.590402,5.177e-06,0.4800000000000004,0.001194640906
MUL,6,6,8,112.771202,6.416e-06,0.4800000000000004,6.21630106e-05
MUL,6,6,10,122.726402,7.584e-06,0.4800000000000004,2.144786835e-06
MUL,6,6,12,132.028802,8.688e-06,0.4800000000000004,0.0
MUL,8,4,8,96.614401,5.991e-06,0.3800000000000008,6.216398335e-05
MUL,8,4,10,105.590401,7.079e-06,0.41000000000000014,2.142658234e-06
MUL,8,4,12,114.566401,8.348e-06,0.41000000000000014,0.0
MUL,8,6,8,134.313602,6.567e-06,0.5600000000000005,7.478809178e-05
MUL,8,6,10,145.248002,8.165e-06,0.5700000000000003,3.883794427e-06
MUL,8,6,12,154.876802,9.279e-06,0.5700000000000003,1.342747808e-07
MUL,8,6,14,164.342403,1.042e-05,0.5700000000000003,0.0
MUL,8,8,8,177.888003,7.289e-06,0.6600000000000001,7.931370766e-05
MUL,8,8,10,185.068803,8.526e-06,0.6500000000000004,4.66336675e-06
MUL,8,8,12,193.065603,9.767e-06,0.6500000000000004,2.434861511e-07
MUL,8,8,14,202.694403,1.09e-05,0.6500000000000004,8.386589587e-09
MUL,8,8,16,212.160003,1.216e-05,0.6600000000000001,0.0
MUL,10,4,10,119.462402,7.177e-06,0.4299999999999997,3.890706122e-06
MUL,10,4,12,129.417602,8.438e-06,0.4299999999999997,1.341453791e-07
MUL,10,4,14,138.556802,9.556e-06,0.4399999999999995,0.0
MUL,10,6,10,167.116802,7.988e-06,0.6600000000000001,4.671301767e-06
MUL,10,6,12,178.051203,9.611e-06,0.6699999999999999,2.430845387e-07
MUL,10,6,14,187.680003,1.072e-05,0.6600000000000001,8.384138346e-09
MUL,10,6,16,197.145603,1.193e-05,0.6699999999999999,0.0
MUL,10,8,10,218.198403,8.667e-06,0.75,4.955337603e-06
MUL,10,8,12,226.195203,1.03e-05,0.75,2.915687831e-07
MUL,10,8,14,234.192004,1.163e-05,0.7400000000000002,1.519148797e-08
MUL,10,8,16,243.820804,1.292e-05,0.7400000000000002,5.235222634e-10
MUL,10,8,18,253.286404,1.405e-05,0.75,0.0
MUL,10,10,10,268.137604,9.601e-06,0.8200000000000003,5.041103905e-06
MUL,10,10,12,274.828804,1.092e-05,0.8200000000000003,3.100621107e-07
MUL,10,10,14,282.009604,1.219e-05,0.8100000000000005,1.82357325e-08
MUL,10,10,16,290.006405,1.37e-05,0.7599999999999998,9.497888532e-10
MUL,10,10,18,299.635205,1.484e-05,0.7599999999999998,3.275094787e-11
MUL,10,10,20,309.100805,1.599e-05,0.7699999999999996,0.0
MUL,12,4,12,147.369602,8.274e-06,0.5,2.428455874e-07
MUL,12,4,14,156.835203,9.295e-06,0.5500000000000007,8.398842067e-09
MUL,12,4,16,166.137603,1.041e-05,0.5500000000000007,0.0
MUL,12,6,12,211.507204,9.323e-06,0.7100000000000009,2.915991568e-07
MUL,12,6,14,222.768003,1.11e-05,0.7200000000000006,1.522534876e-08
MUL,12,6,16,230.928004,1.233e-05,0.7300000000000004,5.244142376e-10
MUL,12,6,18,239.904004,1.345e-05,0.7300000000000004,0.0
MUL,12,8,12,277.113605,1.02e-05,0.7599999999999998,3.094406305e-07
MUL,12,8,14,283.968005,1.182e-05,0.8100000000000005,1.822373486e-08
MUL,12,8,16,291.964805,1.323e-05,0.8100000000000005,9.484629263e-10
MUL,12,8,18,300.124805,1.436e-05,0.8200000000000003,3.276775533e-11
MUL,12,8,20,309.590405,1.544e-05,0.8399999999999999,0.0
MUL,12,10,12,339.782406,1.115e-05,0.8599999999999994,3.155648281e-07
MUL,12,10,14,346.473606,1.241e-05,0.8699999999999992,1.932169207e-08
MUL,12,10,16,352.838406,1.351e-05,0.8599999999999994,1.140683687e-09
MUL,12,10,18,361.324806,1.485e-05,0.8800000000000008,5.934440469e-11
MUL,12,10,20,369.158406,1.599e-05,0.8800000000000008,2.049639079e-12
MUL,12,10,22,377.971207,1.706e-05,0.8800000000000008,0.0
MUL,12,12,12,404.899207,1.228e-05,0.9199999999999999,3.169748016e-07
MUL,12,12,14,410.937608,1.316e-05,0.9299999999999997,1.972949465e-08
MUL,12,12,16,416.812808,1.406e-05,0.9299999999999997,1.209293716e-09
MUL,12,12,18,423.177608,1.511e-05,0.9299999999999997,7.124477366e-11
MUL,12,12,20,437.376009,1.653e-05,0.9299999999999997,3.707948167e-12
MUL,12,12,22,445.699209,1.792e-05,0.9299999999999997,1.279731805e-13
MUL,12,12,24,447.820809,1.857e-05,0.9399999999999995,0.0
MUL,14,4,14,171.033603,9.444e-06,0.5600000000000005,1.517769042e-08
MUL,14,4,16,180.499203,1.049e-05,0.6099999999999994,5.246540532e-10
MUL,14,4,18,189.801603,1.158e-05,0.6099999999999994,0.0
MUL,14,6,14,241.209604,1.035e-05,0.7799999999999994,1.82542609e-08
MUL,14,6,16,252.144004,1.229e-05,0.7899999999999991,9.4799824e-10
MUL,14,6,18,260.140804,1.368e-05,0.7899999999999991,3.27546004e-11
MUL,14,6,20,269.280005,1.456e-05,0.7899999999999991,0.0
MUL,14,8,14,315.139206,1.15e-05,0.8499999999999996,1.935178678e-08
MUL,14,8,16,323.625606,1.316e-05,0.8599999999999994,1.141238873e-09
MUL,14,8,18,331.459206,1.471e-05,0.8599999999999994,5.936234811e-11
MUL,14,8,20,339.292806,1.583e-05,0.8599999999999994,2.045252586e-12
MUL,14,8,22,349.574406,1.728e-05,0.8599999999999994,0.0
MUL,14,10,14,393.638407,1.271e-05,0.9700000000000006,1.970007467e-08
MUL,14,10,16,396.576008,1.433e-05,0.9100000000000001,1.209864201e-09
MUL,14,10,18,403.430408,1.54e-05,0.9100000000000001,7.125393427e-11
MUL,14,10,20,411.590407,1.679e-05,0.9199999999999999,3.706747464e-12
MUL,14,10,22,419.913607,1.842e-05,0.9199999999999999,1.281646291e-13
MUL,14,10,24,428.726408,1.91e-05,0.9100000000000001,0.0
MUL,14,12,14,461.529608,1.383e-05,0.9600000000000009,1.981230839e-08
MUL,14,12,16,469.689609,1.514e-05,0.9700000000000006,1.231474511e-09
MUL,14,12,18,476.544009,1.622e-05,0.9700000000000006,7.55852873e-11
MUL,14,12,20,483.398409,1.729e-05,0.9700000000000006,4.458831e-12
MUL,14,12,22,499.39201,1.89e-05,0.9800000000000004,2.319298034e-13
MUL,14,12,24,507.38881,2.011e-05,0.9800000000000004,7.98038613e-15
MUL,14,12,26,508.531209,2.102e-05,0.9700000000000006,0.0
MUL,14,14,14,535.94881,1.482e-05,1.0299999999999994,1.984040269e-08
MUL,14,14,16,542.80321,1.591e-05,1.0299999999999994,1.238834249e-09
MUL,14,14,18,549.65761,1.699e-05,1.0299999999999994,7.701479779e-11
MUL,14,14,20,556.51201,1.806e-05,1.0399999999999991,4.721956473e-12
MUL,14,14,22,563.85601,1.937e-05,1.0299999999999994,2.784688873e-13
MUL,14,14,24,579.360011,2.072e-05,1.0299999999999994,1.450827392e-14
MUL,14,14,26,587.356811,2.182e-05,1.0299999999999994,5.000846404e-16
MUL,14,14,28,588.499211,2.267e-05,1.0299999999999994,0.0
MUL,16,4,16,194.534403,1.06e-05,0.5999999999999996,9.483333561e-10
MUL,16,4,18,204.163203,1.166e-05,0.6699999999999999,3.26668378e-11
MUL,16,4,20,213.465604,1.275e-05,0.6699999999999999,0.0
MUL,16,6,16,274.665605,1.168e-05,0.8599999999999994,1.140709335e-09
MUL,16,6,18,285.436805,1.365e-05,0.8599999999999994,5.951153707e-11
MUL,16,6,20,293.433605,1.509e-05,0.8699999999999992,2.047245289e-12
MUL,16,6,22,303.062405,1.616e-05,0.8699999999999992,0.0
MUL,16,8,16,358.224007,1.299e-05,0.9299999999999997,1.208299594e-09
MUL,16,8,18,366.547207,1.462e-05,0.9299999999999997,7.121750969e-11
MUL,16,8,20,374.217607,1.623e-05,0.9299999999999997,3.703819687e-12
MUL,16,8,22,382.540807,1.76e-05,0.9299999999999997,1.281187565e-13
MUL,16,8,24,392.332807,1.87e-05,0.9299999999999997,0.0
MUL,16,10,16,440.476808,1.424e-05,0.9800000000000004,1.232653895e-09
MUL,16,10,18,448.800009,1.591e-05,0.9900000000000002,7.55885128e-11
MUL,16,10,20,455.654409,1.698e-05,0.9800000000000004,4.454024833e-12
MUL,16,10,22,464.304008,1.865e-05,0.9900000000000002,2.319001311e-13
MUL,16,10,24,472.137608,1.991e-05,1.0,8.002672303e-15
MUL,16,10,26,480.950409,2.071e-05,0.9800000000000004,0.0
MUL,16,12,16,523.219209,1.56e-05,1.0500000000000007,1.237473207e-09
MUL,16,12,18,531.37921,1.733e-05,1.0500000000000007,7.70249546e-11
MUL,16,12,20,538.23361,1.84e-05,1.0500000000000007,4.722897193e-12
MUL,16,12,22,545.57761,1.971e-05,1.0500000000000007,2.783152018e-13
MUL,16,12,24,553.57441,2.104e-05,1.0600000000000005,1.447725739e-14
MUL,16,12,26,561.24481,2.25e-05,1.0600000000000005,5.001810077e-16
MUL,16,12,28,570.220811,2.327e-05,1.0500000000000007,0.0
MUL,16,14,16,605.635211,1.671e-05,1.1099999999999994,1.242541725e-09
MUL,16,14,18,613.958411,1.796e-05,1.1099999999999994,7.753112823e-11
MUL,16,14,20,620.649611,1.902e-05,1.1099999999999994,4.814122118e-12
MUL,16,14,22,627.993611,2.033e-05,1.1099999999999994,2.947520732e-13
MUL,16,14,24,634.848012,2.133e-05,1.1099999999999994,1.73969357e-14
MUL,16,14,26,642.192012,2.238e-05,1.1099999999999994,9.049091754e-16
MUL,16,14,28,650.188812,2.357e-05,1.1099999999999994,3.11845133e-17
MUL,16,14,30,659.817612,2.493e-05,1.1099999999999994,0.0
MUL,16,16,16,689.683212,1.798e-05,1.17,1.242684518e-09
MUL,16,16,18,696.537612,1.904e-05,1.17,7.760685895e-11
MUL,16,16,20,703.392012,2.012e-05,1.17,4.84535836e-12
MUL,16,16,22,710.736013,2.143e-05,1.17,3.008026589e-13
MUL,16,16,24,717.427213,2.241e-05,1.17,1.846686366e-14
MUL,16,16,26,724.281613,2.35e-05,1.17,1.083970308e-15
MUL,16,16,28,741.417613,2.512e-05,1.17,5.655611656e-17
MUL,16,16,30,749.414414,2.644e-05,1.17,1.955011673e-18
MUL,16,16,32,749.251213,2.733e-05,1.1799999999999997,0.0
\ No newline at end of file
+OPE,IN1,IN2,OUT,AREA,POWER,DELAY,EQM
ADD,4,4,4,28.070401,3.35E-06,0.15,0.007808906
ADD,6,4,4,28.070401,3.35E-06,0.15,0.017118242
ADD,6,4,6,33.945601,4.42E-06,0.17,0.00048765
ADD,6,6,4,30.844801,3.40E-06,0.21,0.017101431
ADD,6,6,6,39.494401,4.49E-06,0.22,0.000488334
ADD,8,4,4,28.070401,3.35E-06,0.15,0.019839481
ADD,8,4,6,33.945601,4.42E-06,0.17,0.00106592
ADD,8,4,8,40.147201,5.48E-06,0.17,3.05E-05
ADD,8,6,4,30.844801,3.40E-06,0.21,0.019862793
ADD,8,6,6,39.494401,4.49E-06,0.22,0.001068973
ADD,8,6,8,45.369601,5.55E-06,0.22,3.05E-05
ADD,8,8,4,36.067201,3.47E-06,0.28,0.01989186
ADD,8,8,6,42.268801,4.53E-06,0.28,0.001068172
ADD,8,8,8,50.918401,5.64E-06,0.29,3.05E-05
ADD,10,4,4,28.070401,3.35E-06,0.15,0.020618687
ADD,10,4,6,33.945601,4.42E-06,0.17,0.001241565
ADD,10,4,8,40.147201,5.48E-06,0.17,6.67E-05
ADD,10,4,10,46.348801,6.54E-06,0.17,1.91E-06
ADD,10,6,4,30.844801,3.40E-06,0.21,0.020615246
ADD,10,6,6,39.494401,4.49E-06,0.22,0.00124151
ADD,10,6,8,45.369601,5.55E-06,0.22,6.68E-05
ADD,10,6,10,51.571201,6.62E-06,0.22,1.91E-06
ADD,10,8,4,36.067201,3.47E-06,0.28,0.020571726
ADD,10,8,6,42.268801,4.53E-06,0.28,0.001241382
ADD,10,8,8,50.918401,5.64E-06,0.29,6.67E-05
ADD,10,8,10,56.793601,6.69E-06,0.29,1.91E-06
ADD,10,10,4,41.289601,3.54E-06,0.34,0.02059211
ADD,10,10,6,47.491201,4.60E-06,0.35,0.001241008
ADD,10,10,8,53.692801,5.67E-06,0.35,6.67E-05
ADD,10,10,10,62.342401,6.77E-06,0.35,1.91E-06
ADD,12,4,4,28.070401,3.35E-06,0.15,0.020777001
ADD,12,4,6,33.945601,4.42E-06,0.17,0.001286252
ADD,12,4,8,40.147201,5.48E-06,0.17,7.76E-05
ADD,12,4,10,46.348801,6.54E-06,0.17,4.18E-06
ADD,12,4,12,52.550401,7.61E-06,0.17,1.19E-07
ADD,12,6,4,30.844801,3.40E-06,0.21,0.020756534
ADD,12,6,6,39.494401,4.49E-06,0.22,0.001285821
ADD,12,6,8,45.369601,5.55E-06,0.22,7.76E-05
ADD,12,6,10,51.571201,6.62E-06,0.22,4.18E-06
ADD,12,6,12,57.772801,7.68E-06,0.22,1.19E-07
ADD,12,8,4,36.067201,3.47E-06,0.28,0.02078809
ADD,12,8,6,42.268801,4.53E-06,0.28,0.001284329
ADD,12,8,8,50.918401,5.64E-06,0.29,7.76E-05
ADD,12,8,10,56.793601,6.69E-06,0.29,4.17E-06
ADD,12,8,12,62.995201,7.75E-06,0.29,1.19E-07
ADD,12,10,4,41.289601,3.54E-06,0.34,0.020769571
ADD,12,10,6,47.491201,4.60E-06,0.35,0.001286564
ADD,12,10,8,53.692801,5.67E-06,0.35,7.74E-05
ADD,12,10,10,62.342401,6.77E-06,0.35,4.18E-06
ADD,12,10,12,68.217601,7.83E-06,0.35,1.19E-07
ADD,12,12,4,46.512001,3.61E-06,0.41,0.02079408
ADD,12,12,6,52.713601,4.68E-06,0.41,0.001286087
ADD,12,12,8,58.915202,5.74E-06,0.41,7.77E-05
ADD,12,12,10,65.116802,6.81E-06,0.41,4.17E-06
ADD,12,12,12,73.766402,7.91E-06,0.42,1.19E-07
ADD,14,4,4,28.070401,3.35E-06,0.15,0.020823099
ADD,14,4,6,33.945601,4.42E-06,0.17,0.001298381
ADD,14,4,8,40.147201,5.48E-06,0.17,8.04E-05
ADD,14,4,10,46.348801,6.54E-06,0.17,4.85E-06
ADD,14,4,12,52.550401,7.61E-06,0.17,2.61E-07
ADD,14,4,14,58.752001,8.67E-06,0.19,7.45E-09
ADD,14,6,4,30.844801,3.40E-06,0.21,0.020837241
ADD,14,6,6,39.494401,4.49E-06,0.22,0.001298009
ADD,14,6,8,45.369601,5.55E-06,0.22,8.05E-05
ADD,14,6,10,51.571201,6.62E-06,0.22,4.86E-06
ADD,14,6,12,57.772801,7.68E-06,0.22,2.61E-07
ADD,14,6,14,63.974401,8.74E-06,0.22,7.45E-09
ADD,14,8,4,36.067201,3.47E-06,0.28,0.02081336
ADD,14,8,6,42.268801,4.53E-06,0.28,0.001298962
ADD,14,8,8,50.918401,5.64E-06,0.29,8.05E-05
ADD,14,8,10,56.793601,6.69E-06,0.29,4.85E-06
ADD,14,8,12,62.995201,7.75E-06,0.29,2.61E-07
ADD,14,8,14,69.196801,8.82E-06,0.29,7.45E-09
ADD,14,10,4,41.289601,3.54E-06,0.34,0.020825315
ADD,14,10,6,47.491201,4.60E-06,0.35,0.001298563
ADD,14,10,8,53.692801,5.67E-06,0.35,8.04E-05
ADD,14,10,10,62.342401,6.77E-06,0.35,4.84E-06
ADD,14,10,12,68.217601,7.83E-06,0.35,2.61E-07
ADD,14,10,14,74.419202,8.89E-06,0.35,7.45E-09
ADD,14,12,4,46.512001,3.61E-06,0.41,0.020799002
ADD,14,12,6,52.713601,4.68E-06,0.41,0.001299367
ADD,14,12,8,58.915202,5.74E-06,0.41,8.05E-05
ADD,14,12,10,65.116802,6.81E-06,0.41,4.85E-06
ADD,14,12,12,73.766402,7.91E-06,0.42,2.61E-07
ADD,14,12,14,79.641602,8.96E-06,0.42,7.45E-09
ADD,14,14,4,51.734402,3.69E-06,0.48,0.020804766
ADD,14,14,6,57.936002,4.75E-06,0.48,0.001296967
ADD,14,14,8,64.137602,5.82E-06,0.48,8.05E-05
ADD,14,14,10,70.339202,6.88E-06,0.48,4.84E-06
ADD,14,14,12,76.540802,7.94E-06,0.48,2.61E-07
ADD,14,14,14,85.190402,9.05E-06,0.49,7.45E-09
ADD,16,4,4,28.070401,3.35E-06,0.15,0.020840114
ADD,16,4,6,33.945601,4.42E-06,0.17,0.001303063
ADD,16,4,8,40.147201,5.48E-06,0.17,8.11E-05
ADD,16,4,10,46.348801,6.54E-06,0.17,5.02E-06
ADD,16,4,12,52.550401,7.61E-06,0.17,3.03E-07
ADD,16,4,14,58.752001,8.67E-06,0.19,1.63E-08
ADD,16,4,16,64.953601,9.73E-06,0.2,4.65E-10
ADD,16,6,4,30.844801,3.40E-06,0.21,0.020807178
ADD,16,6,6,39.494401,4.49E-06,0.22,0.001301815
ADD,16,6,8,45.369601,5.55E-06,0.22,8.12E-05
ADD,16,6,10,51.571201,6.62E-06,0.22,5.03E-06
ADD,16,6,12,57.772801,7.68E-06,0.22,3.03E-07
ADD,16,6,14,63.974401,8.74E-06,0.22,1.63E-08
ADD,16,6,16,70.176001,9.81E-06,0.22,4.65E-10
ADD,16,8,4,36.067201,3.47E-06,0.28,0.020857616
ADD,16,8,6,42.268801,4.53E-06,0.28,0.001302087
ADD,16,8,8,50.918401,5.64E-06,0.29,8.13E-05
ADD,16,8,10,56.793601,6.69E-06,0.29,5.03E-06
ADD,16,8,12,62.995201,7.75E-06,0.29,3.03E-07
ADD,16,8,14,69.196801,8.82E-06,0.29,1.63E-08
ADD,16,8,16,75.398401,9.88E-06,0.29,4.67E-10
ADD,16,10,4,41.289601,3.54E-06,0.34,0.020794595
ADD,16,10,6,47.491201,4.60E-06,0.35,0.001299585
ADD,16,10,8,53.692801,5.67E-06,0.35,8.12E-05
ADD,16,10,10,62.342401,6.77E-06,0.35,5.03E-06
ADD,16,10,12,68.217601,7.83E-06,0.35,3.04E-07
ADD,16,10,14,74.419202,8.89E-06,0.35,1.63E-08
ADD,16,10,16,80.620802,9.95E-06,0.36,4.66E-10
ADD,16,12,4,46.512001,3.61E-06,0.41,0.020839912
ADD,16,12,6,52.713601,4.68E-06,0.41,0.001300344
ADD,16,12,8,58.915202,5.74E-06,0.41,8.11E-05
ADD,16,12,10,65.116802,6.81E-06,0.41,5.03E-06
ADD,16,12,12,73.766402,7.91E-06,0.42,3.03E-07
ADD,16,12,14,79.641602,8.96E-06,0.42,1.63E-08
ADD,16,12,16,85.843202,1.00E-05,0.42,4.66E-10
ADD,16,14,4,51.734402,3.69E-06,0.48,0.020827128
ADD,16,14,6,57.936002,4.75E-06,0.48,0.001301603
ADD,16,14,8,64.137602,5.82E-06,0.48,8.12E-05
ADD,16,14,10,70.339202,6.88E-06,0.48,5.03E-06
ADD,16,14,12,76.540802,7.94E-06,0.48,3.03E-07
ADD,16,14,14,85.190402,9.05E-06,0.49,1.63E-08
ADD,16,14,16,91.065602,1.01E-05,0.49,4.66E-10
ADD,16,16,4,56.956802,3.76E-06,0.54,0.020826263
ADD,16,16,6,63.158402,4.82E-06,0.54,0.001301252
ADD,16,16,8,69.360002,5.89E-06,0.54,8.12E-05
ADD,16,16,10,75.561602,6.95E-06,0.54,5.03E-06
ADD,16,16,12,81.763202,8.02E-06,0.55,3.03E-07
ADD,16,16,14,87.964802,9.08E-06,0.55,1.63E-08
ADD,16,16,16,96.614402,1.02E-05,0.55,4.66E-10
ADD,18,4,4,28.070401,3.35E-06,0.15,0.020841297
ADD,18,4,6,33.945601,4.42E-06,0.17,0.001301343
ADD,18,4,8,40.147201,5.48E-06,0.17,8.13E-05
ADD,18,4,10,46.348801,6.54E-06,0.17,5.08E-06
ADD,18,4,12,52.550401,7.61E-06,0.17,3.14E-07
ADD,18,4,14,58.752001,8.67E-06,0.19,1.90E-08
ADD,18,4,16,64.953601,9.73E-06,0.2,1.02E-09
ADD,18,4,18,71.155201,1.08E-05,0.22,2.91E-11
ADD,18,6,4,30.844801,3.40E-06,0.21,0.020823785
ADD,18,6,6,39.494401,4.49E-06,0.22,0.001302573
ADD,18,6,8,45.369601,5.55E-06,0.22,8.13E-05
ADD,18,6,10,51.571201,6.62E-06,0.22,5.07E-06
ADD,18,6,12,57.772801,7.68E-06,0.22,3.14E-07
ADD,18,6,14,63.974401,8.74E-06,0.22,1.89E-08
ADD,18,6,16,70.176001,9.81E-06,0.22,1.02E-09
ADD,18,6,18,76.377601,1.09E-05,0.23,2.91E-11
ADD,18,8,4,36.067201,3.47E-06,0.28,0.020797321
ADD,18,8,6,42.268801,4.53E-06,0.28,0.001303145
ADD,18,8,8,50.918401,5.64E-06,0.29,8.14E-05
ADD,18,8,10,56.793601,6.69E-06,0.29,5.07E-06
ADD,18,8,12,62.995201,7.75E-06,0.29,3.14E-07
ADD,18,8,14,69.196801,8.82E-06,0.29,1.90E-08
ADD,18,8,16,75.398401,9.88E-06,0.29,1.02E-09
ADD,18,8,18,81.600002,1.09E-05,0.29,2.90E-11
ADD,18,10,4,41.289601,3.54E-06,0.34,0.020818698
ADD,18,10,6,47.491201,4.60E-06,0.35,0.001301858
ADD,18,10,8,53.692801,5.67E-06,0.35,8.13E-05
ADD,18,10,10,62.342401,6.77E-06,0.35,5.07E-06
ADD,18,10,12,68.217601,7.83E-06,0.35,3.15E-07
ADD,18,10,14,74.419202,8.89E-06,0.35,1.89E-08
ADD,18,10,16,80.620802,9.95E-06,0.36,1.02E-09
ADD,18,10,18,86.822402,1.10E-05,0.36,2.91E-11
ADD,18,12,4,46.512001,3.61E-06,0.41,0.020842414
ADD,18,12,6,52.713601,4.68E-06,0.41,0.001301441
ADD,18,12,8,58.915202,5.74E-06,0.41,8.13E-05
ADD,18,12,10,65.116802,6.81E-06,0.41,5.08E-06
ADD,18,12,12,73.766402,7.91E-06,0.42,3.14E-07
ADD,18,12,14,79.641602,8.96E-06,0.42,1.90E-08
ADD,18,12,16,85.843202,1.00E-05,0.42,1.02E-09
ADD,18,12,18,92.044802,1.11E-05,0.42,2.91E-11
ADD,18,14,4,51.734402,3.69E-06,0.48,0.020842133
ADD,18,14,6,57.936002,4.75E-06,0.48,0.001299846
ADD,18,14,8,64.137602,5.82E-06,0.48,8.13E-05
ADD,18,14,10,70.339202,6.88E-06,0.48,5.07E-06
ADD,18,14,12,76.540802,7.94E-06,0.48,3.14E-07
ADD,18,14,14,85.190402,9.05E-06,0.49,1.89E-08
ADD,18,14,16,91.065602,1.01E-05,0.49,1.02E-09
ADD,18,14,18,97.267202,1.12E-05,0.49,2.91E-11
ADD,18,16,4,56.956802,3.76E-06,0.54,0.020815636
ADD,18,16,6,63.158402,4.82E-06,0.54,0.00130187
ADD,18,16,8,69.360002,5.89E-06,0.54,8.12E-05
ADD,18,16,10,75.561602,6.95E-06,0.54,5.07E-06
ADD,18,16,12,81.763202,8.02E-06,0.55,3.14E-07
ADD,18,16,14,87.964802,9.08E-06,0.55,1.90E-08
ADD,18,16,16,96.614402,1.02E-05,0.55,1.02E-09
ADD,18,16,18,102.489602,1.12E-05,0.55,2.91E-11
ADD,18,18,4,62.179202,3.83E-06,0.61,0.020836028
ADD,18,18,6,68.380802,4.89E-06,0.61,0.001303788
ADD,18,18,8,74.582402,5.96E-06,0.61,8.13E-05
ADD,18,18,10,80.784002,7.03E-06,0.61,5.07E-06
ADD,18,18,12,86.985602,8.09E-06,0.61,3.14E-07
ADD,18,18,14,93.187202,9.15E-06,0.61,1.90E-08
ADD,18,18,16,99.388802,1.02E-05,0.61,1.02E-09
ADD,18,18,18,108.038402,1.13E-05,0.62,2.91E-11
ADD,20,4,4,28.070401,3.35E-06,0.15,0.020839562
ADD,20,4,6,33.945601,4.42E-06,0.17,0.001301542
ADD,20,4,8,40.147201,5.48E-06,0.17,8.16E-05
ADD,20,4,10,46.348801,6.54E-06,0.17,5.08E-06
ADD,20,4,12,52.550401,7.61E-06,0.17,3.17E-07
ADD,20,4,14,58.752001,8.67E-06,0.19,1.96E-08
ADD,20,4,16,64.953601,9.73E-06,0.2,1.19E-09
ADD,20,4,18,71.155201,1.08E-05,0.22,6.39E-11
ADD,20,4,20,77.356801,1.19E-05,0.23,1.82E-12
ADD,20,6,4,30.844801,3.40E-06,0.21,0.020815056
ADD,20,6,6,39.494401,4.49E-06,0.22,0.001302743
ADD,20,6,8,45.369601,5.55E-06,0.22,8.13E-05
ADD,20,6,10,51.571201,6.62E-06,0.22,5.08E-06
ADD,20,6,12,57.772801,7.68E-06,0.22,3.17E-07
ADD,20,6,14,63.974401,8.74E-06,0.22,1.96E-08
ADD,20,6,16,70.176001,9.81E-06,0.22,1.18E-09
ADD,20,6,18,76.377601,1.09E-05,0.23,6.37E-11
ADD,20,6,20,82.579201,1.19E-05,0.23,1.82E-12
ADD,20,8,4,36.067201,3.47E-06,0.28,0.020837505
ADD,20,8,6,42.268801,4.53E-06,0.28,0.001302159
ADD,20,8,8,50.918401,5.64E-06,0.29,8.13E-05
ADD,20,8,10,56.793601,6.69E-06,0.29,5.09E-06
ADD,20,8,12,62.995201,7.75E-06,0.29,3.17E-07
ADD,20,8,14,69.196801,8.82E-06,0.29,1.96E-08
ADD,20,8,16,75.398401,9.88E-06,0.29,1.19E-09
ADD,20,8,18,81.600002,1.09E-05,0.29,6.37E-11
ADD,20,8,20,87.801602,1.20E-05,0.29,1.82E-12
ADD,20,10,4,41.289601,3.54E-06,0.34,0.020863609
ADD,20,10,6,47.491201,4.60E-06,0.35,0.001302779
ADD,20,10,8,53.692801,5.67E-06,0.35,8.13E-05
ADD,20,10,10,62.342401,6.77E-06,0.35,5.08E-06
ADD,20,10,12,68.217601,7.83E-06,0.35,3.17E-07
ADD,20,10,14,74.419202,8.89E-06,0.35,1.96E-08
ADD,20,10,16,80.620802,9.95E-06,0.36,1.18E-09
ADD,20,10,18,86.822402,1.10E-05,0.36,6.36E-11
ADD,20,10,20,93.024002,1.21E-05,0.36,1.82E-12
ADD,20,12,4,46.512001,3.61E-06,0.41,0.020828145
ADD,20,12,6,52.713601,4.68E-06,0.41,0.001300284
ADD,20,12,8,58.915202,5.74E-06,0.41,8.12E-05
ADD,20,12,10,65.116802,6.81E-06,0.41,5.08E-06
ADD,20,12,12,73.766402,7.91E-06,0.42,3.17E-07
ADD,20,12,14,79.641602,8.96E-06,0.42,1.96E-08
ADD,20,12,16,85.843202,1.00E-05,0.42,1.18E-09
ADD,20,12,18,92.044802,1.11E-05,0.42,6.37E-11
ADD,20,12,20,98.246402,1.22E-05,0.42,1.82E-12
ADD,20,14,4,51.734402,3.69E-06,0.48,0.020795682
ADD,20,14,6,57.936002,4.75E-06,0.48,0.00130378
ADD,20,14,8,64.137602,5.82E-06,0.48,8.13E-05
ADD,20,14,10,70.339202,6.88E-06,0.48,5.08E-06
ADD,20,14,12,76.540802,7.94E-06,0.48,3.17E-07
ADD,20,14,14,85.190402,9.05E-06,0.49,1.96E-08
ADD,20,14,16,91.065602,1.01E-05,0.49,1.18E-09
ADD,20,14,18,97.267202,1.12E-05,0.49,6.37E-11
ADD,20,14,20,103.468802,1.22E-05,0.49,1.82E-12
ADD,20,16,4,56.956802,3.76E-06,0.54,0.020830138
ADD,20,16,6,63.158402,4.82E-06,0.54,0.001300406
ADD,20,16,8,69.360002,5.89E-06,0.54,8.14E-05
ADD,20,16,10,75.561602,6.95E-06,0.54,5.07E-06
ADD,20,16,12,81.763202,8.02E-06,0.55,3.17E-07
ADD,20,16,14,87.964802,9.08E-06,0.55,1.96E-08
ADD,20,16,16,96.614402,1.02E-05,0.55,1.18E-09
ADD,20,16,18,102.489602,1.12E-05,0.55,6.37E-11
ADD,20,16,20,108.691202,1.23E-05,0.55,1.82E-12
ADD,20,18,4,62.179202,3.83E-06,0.61,0.020821888
ADD,20,18,6,68.380802,4.89E-06,0.61,0.00130343
ADD,20,18,8,74.582402,5.96E-06,0.61,8.14E-05
ADD,20,18,10,80.784002,7.03E-06,0.61,5.08E-06
ADD,20,18,12,86.985602,8.09E-06,0.61,3.17E-07
ADD,20,18,14,93.187202,9.15E-06,0.61,1.96E-08
ADD,20,18,16,99.388802,1.02E-05,0.61,1.18E-09
ADD,20,18,18,108.038402,1.13E-05,0.62,6.37E-11
ADD,20,18,20,113.913603,1.24E-05,0.62,1.82E-12
ADD,20,20,4,67.401602,3.90E-06,0.67,0.020835192
ADD,20,20,6,73.603202,4.97E-06,0.67,0.001301018
ADD,20,20,8,79.804802,6.03E-06,0.67,8.13E-05
ADD,20,20,10,86.006402,7.10E-06,0.68,5.09E-06
ADD,20,20,12,92.208002,8.16E-06,0.68,3.16E-07
ADD,20,20,14,98.409602,9.23E-06,0.68,1.96E-08
ADD,20,20,16,104.611203,1.03E-05,0.68,1.19E-09
ADD,20,20,18,110.812803,1.14E-05,0.68,6.38E-11
ADD,20,20,20,119.462403,1.25E-05,0.69,1.82E-12
ADD,22,4,4,28.070401,3.35E-06,0.15,0.020838818
ADD,22,4,6,33.945601,4.42E-06,0.17,0.001300966
ADD,22,4,8,40.147201,5.48E-06,0.17,8.14E-05
ADD,22,4,10,46.348801,6.54E-06,0.17,5.10E-06
ADD,22,4,12,52.550401,7.61E-06,0.17,3.17E-07
ADD,22,4,14,58.752001,8.67E-06,0.19,1.98E-08
ADD,22,4,16,64.953601,9.73E-06,0.2,1.23E-09
ADD,22,4,18,71.155201,1.08E-05,0.22,7.40E-11
ADD,22,4,20,77.356801,1.19E-05,0.23,3.98E-12
ADD,22,4,22,84.211201,1.32E-05,0.23,1.14E-13
ADD,22,6,4,30.844801,3.40E-06,0.21,0.020818943
ADD,22,6,6,39.494401,4.49E-06,0.22,0.001304764
ADD,22,6,8,45.369601,5.55E-06,0.22,8.15E-05
ADD,22,6,10,51.571201,6.62E-06,0.22,5.09E-06
ADD,22,6,12,57.772801,7.68E-06,0.22,3.18E-07
ADD,22,6,14,63.974401,8.74E-06,0.22,1.98E-08
ADD,22,6,16,70.176001,9.81E-06,0.22,1.23E-09
ADD,22,6,18,76.377601,1.09E-05,0.23,7.39E-11
ADD,22,6,20,82.579201,1.19E-05,0.23,3.98E-12
ADD,22,6,22,89.433601,1.32E-05,0.23,1.14E-13
ADD,22,8,4,36.067201,3.47E-06,0.28,0.020814421
ADD,22,8,6,42.268801,4.53E-06,0.28,0.001303018
ADD,22,8,8,50.918401,5.64E-06,0.29,8.13E-05
ADD,22,8,10,56.793601,6.69E-06,0.29,5.08E-06
ADD,22,8,12,62.995201,7.75E-06,0.29,3.17E-07
ADD,22,8,14,69.196801,8.82E-06,0.29,1.98E-08
ADD,22,8,16,75.398401,9.88E-06,0.29,1.23E-09
ADD,22,8,18,81.600002,1.09E-05,0.29,7.41E-11
ADD,22,8,20,87.801602,1.20E-05,0.29,3.99E-12
ADD,22,8,22,94.656002,1.33E-05,0.29,1.14E-13
ADD,22,10,4,41.289601,3.54E-06,0.34,0.020841826
ADD,22,10,6,47.491201,4.60E-06,0.35,0.001303519
ADD,22,10,8,53.692801,5.67E-06,0.35,8.15E-05
ADD,22,10,10,62.342401,6.77E-06,0.35,5.09E-06
ADD,22,10,12,68.217601,7.83E-06,0.35,3.17E-07
ADD,22,10,14,74.419202,8.89E-06,0.35,1.98E-08
ADD,22,10,16,80.620802,9.95E-06,0.36,1.23E-09
ADD,22,10,18,86.822402,1.10E-05,0.36,7.40E-11
ADD,22,10,20,93.024002,1.21E-05,0.36,3.98E-12
ADD,22,10,22,99.878402,1.34E-05,0.35,1.14E-13
ADD,22,12,4,46.512001,3.61E-06,0.41,0.020796873
ADD,22,12,6,52.713601,4.68E-06,0.41,0.001302486
ADD,22,12,8,58.915202,5.74E-06,0.41,8.14E-05
ADD,22,12,10,65.116802,6.81E-06,0.41,5.08E-06
ADD,22,12,12,73.766402,7.91E-06,0.42,3.17E-07
ADD,22,12,14,79.641602,8.96E-06,0.42,1.98E-08
ADD,22,12,16,85.843202,1.00E-05,0.42,1.23E-09
ADD,22,12,18,92.044802,1.11E-05,0.42,7.40E-11
ADD,22,12,20,98.246402,1.22E-05,0.42,3.98E-12
ADD,22,12,22,105.100802,1.35E-05,0.42,1.14E-13
ADD,22,14,4,51.734402,3.69E-06,0.48,0.020840378
ADD,22,14,6,57.936002,4.75E-06,0.48,0.001301998
ADD,22,14,8,64.137602,5.82E-06,0.48,8.12E-05
ADD,22,14,10,70.339202,6.88E-06,0.48,5.08E-06
ADD,22,14,12,76.540802,7.94E-06,0.48,3.17E-07
ADD,22,14,14,85.190402,9.05E-06,0.49,1.98E-08
ADD,22,14,16,91.065602,1.01E-05,0.49,1.23E-09
ADD,22,14,18,97.267202,1.12E-05,0.49,7.40E-11
ADD,22,14,20,103.468802,1.22E-05,0.49,3.98E-12
ADD,22,14,22,110.323202,1.35E-05,0.49,1.14E-13
ADD,22,16,4,56.956802,3.76E-06,0.54,0.020824857
ADD,22,16,6,63.158402,4.82E-06,0.54,0.001301159
ADD,22,16,8,69.360002,5.89E-06,0.54,8.13E-05
ADD,22,16,10,75.561602,6.95E-06,0.54,5.08E-06
ADD,22,16,12,81.763202,8.02E-06,0.55,3.18E-07
ADD,22,16,14,87.964802,9.08E-06,0.55,1.98E-08
ADD,22,16,16,96.614402,1.02E-05,0.55,1.23E-09
ADD,22,16,18,102.489602,1.12E-05,0.55,7.41E-11
ADD,22,16,20,108.691202,1.23E-05,0.55,3.97E-12
ADD,22,16,22,115.545602,1.36E-05,0.55,1.14E-13
ADD,22,18,4,62.179202,3.83E-06,0.61,0.020820926
ADD,22,18,6,68.380802,4.89E-06,0.61,0.001303995
ADD,22,18,8,74.582402,5.96E-06,0.61,8.15E-05
ADD,22,18,10,80.784002,7.03E-06,0.61,5.10E-06
ADD,22,18,12,86.985602,8.09E-06,0.61,3.18E-07
ADD,22,18,14,93.187202,9.15E-06,0.61,1.98E-08
ADD,22,18,16,99.388802,1.02E-05,0.61,1.23E-09
ADD,22,18,18,108.038402,1.13E-05,0.62,7.40E-11
ADD,22,18,20,113.913603,1.24E-05,0.62,3.98E-12
ADD,22,18,22,120.768003,1.37E-05,0.62,1.14E-13
ADD,22,20,4,67.401602,3.90E-06,0.67,0.020846627
ADD,22,20,6,73.603202,4.97E-06,0.67,0.001300679
ADD,22,20,8,79.804802,6.03E-06,0.67,8.13E-05
ADD,22,20,10,86.006402,7.10E-06,0.68,5.08E-06
ADD,22,20,12,92.208002,8.16E-06,0.68,3.18E-07
ADD,22,20,14,98.409602,9.23E-06,0.68,1.98E-08
ADD,22,20,16,104.611203,1.03E-05,0.68,1.23E-09
ADD,22,20,18,110.812803,1.14E-05,0.68,7.39E-11
ADD,22,20,20,119.462403,1.25E-05,0.69,3.98E-12
ADD,22,20,22,125.990403,1.38E-05,0.68,1.14E-13
ADD,22,22,4,72.624002,3.98E-06,0.74,0.020810551
ADD,22,22,6,78.825602,5.04E-06,0.74,0.001301817
ADD,22,22,8,85.027202,6.11E-06,0.74,8.13E-05
ADD,22,22,10,91.228803,7.17E-06,0.74,5.09E-06
ADD,22,22,12,97.430403,8.23E-06,0.74,3.18E-07
ADD,22,22,14,103.632003,9.30E-06,0.74,1.98E-08
ADD,22,22,16,109.833603,1.04E-05,0.74,1.23E-09
ADD,22,22,18,116.035203,1.14E-05,0.75,7.40E-11
ADD,22,22,20,122.236803,1.25E-05,0.75,3.98E-12
ADD,22,22,22,131.539203,1.38E-05,0.74,1.14E-13
ADD,24,4,4,28.070401,3.35E-06,0.15,0.020854966
ADD,24,4,6,33.945601,4.42E-06,0.17,0.001302432
ADD,24,4,8,40.147201,5.48E-06,0.17,8.14E-05
ADD,24,4,10,46.348801,6.54E-06,0.17,5.08E-06
ADD,24,4,12,52.550401,7.61E-06,0.17,3.18E-07
ADD,24,4,14,58.752001,8.67E-06,0.19,1.98E-08
ADD,24,4,16,64.953601,9.73E-06,0.2,1.24E-09
ADD,24,4,18,71.155201,1.08E-05,0.22,7.68E-11
ADD,24,4,20,77.356801,1.19E-05,0.23,4.62E-12
ADD,24,4,22,84.211201,1.32E-05,0.23,2.49E-13
ADD,24,4,24,90.576001,1.42E-05,0.25,7.11E-15
ADD,24,6,4,30.844801,3.40E-06,0.21,0.02085276
ADD,24,6,6,39.494401,4.49E-06,0.22,0.001303591
ADD,24,6,8,45.369601,5.55E-06,0.22,8.14E-05
ADD,24,6,10,51.571201,6.62E-06,0.22,5.08E-06
ADD,24,6,12,57.772801,7.68E-06,0.22,3.18E-07
ADD,24,6,14,63.974401,8.74E-06,0.22,1.98E-08
ADD,24,6,16,70.176001,9.81E-06,0.22,1.24E-09
ADD,24,6,18,76.377601,1.09E-05,0.23,7.66E-11
ADD,24,6,20,82.579201,1.19E-05,0.23,4.62E-12
ADD,24,6,22,89.433601,1.32E-05,0.23,2.49E-13
ADD,24,6,24,95.798402,1.43E-05,0.25,7.09E-15
ADD,24,8,4,36.067201,3.47E-06,0.28,0.020835151
ADD,24,8,6,42.268801,4.53E-06,0.28,0.001303045
ADD,24,8,8,50.918401,5.64E-06,0.29,8.13E-05
ADD,24,8,10,56.793601,6.69E-06,0.29,5.09E-06
ADD,24,8,12,62.995201,7.75E-06,0.29,3.18E-07
ADD,24,8,14,69.196801,8.82E-06,0.29,1.98E-08
ADD,24,8,16,75.398401,9.88E-06,0.29,1.24E-09
ADD,24,8,18,81.600002,1.09E-05,0.29,7.67E-11
ADD,24,8,20,87.801602,1.20E-05,0.29,4.63E-12
ADD,24,8,22,94.656002,1.33E-05,0.29,2.48E-13
ADD,24,8,24,101.020802,1.44E-05,0.29,7.11E-15
ADD,24,10,4,41.289601,3.54E-06,0.34,0.020843966
ADD,24,10,6,47.491201,4.60E-06,0.35,0.001302409
ADD,24,10,8,53.692801,5.67E-06,0.35,8.14E-05
ADD,24,10,10,62.342401,6.77E-06,0.35,5.09E-06
ADD,24,10,12,68.217601,7.83E-06,0.35,3.18E-07
ADD,24,10,14,74.419202,8.89E-06,0.35,1.98E-08
ADD,24,10,16,80.620802,9.95E-06,0.36,1.24E-09
ADD,24,10,18,86.822402,1.10E-05,0.36,7.67E-11
ADD,24,10,20,93.024002,1.21E-05,0.36,4.63E-12
ADD,24,10,22,99.878402,1.34E-05,0.35,2.48E-13
ADD,24,10,24,106.243202,1.45E-05,0.35,7.10E-15
ADD,24,12,4,46.512001,3.61E-06,0.41,0.020837967
ADD,24,12,6,52.713601,4.68E-06,0.41,0.001302463
ADD,24,12,8,58.915202,5.74E-06,0.41,8.14E-05
ADD,24,12,10,65.116802,6.81E-06,0.41,5.09E-06
ADD,24,12,12,73.766402,7.91E-06,0.42,3.17E-07
ADD,24,12,14,79.641602,8.96E-06,0.42,1.98E-08
ADD,24,12,16,85.843202,1.00E-05,0.42,1.24E-09
ADD,24,12,18,92.044802,1.11E-05,0.42,7.67E-11
ADD,24,12,20,98.246402,1.22E-05,0.42,4.62E-12
ADD,24,12,22,105.100802,1.35E-05,0.42,2.49E-13
ADD,24,12,24,111.465602,1.45E-05,0.42,7.12E-15
ADD,24,14,4,51.734402,3.69E-06,0.48,0.020805669
ADD,24,14,6,57.936002,4.75E-06,0.48,0.001302122
ADD,24,14,8,64.137602,5.82E-06,0.48,8.15E-05
ADD,24,14,10,70.339202,6.88E-06,0.48,5.09E-06
ADD,24,14,12,76.540802,7.94E-06,0.48,3.18E-07
ADD,24,14,14,85.190402,9.05E-06,0.49,1.98E-08
ADD,24,14,16,91.065602,1.01E-05,0.49,1.24E-09
ADD,24,14,18,97.267202,1.12E-05,0.49,7.68E-11
ADD,24,14,20,103.468802,1.22E-05,0.49,4.62E-12
ADD,24,14,22,110.323202,1.35E-05,0.49,2.48E-13
ADD,24,14,24,116.688002,1.46E-05,0.49,7.10E-15
ADD,24,16,4,56.956802,3.76E-06,0.54,0.020856801
ADD,24,16,6,63.158402,4.82E-06,0.54,0.001300623
ADD,24,16,8,69.360002,5.89E-06,0.54,8.15E-05
ADD,24,16,10,75.561602,6.95E-06,0.54,5.08E-06
ADD,24,16,12,81.763202,8.02E-06,0.55,3.17E-07
ADD,24,16,14,87.964802,9.08E-06,0.55,1.99E-08
ADD,24,16,16,96.614402,1.02E-05,0.55,1.24E-09
ADD,24,16,18,102.489602,1.12E-05,0.55,7.67E-11
ADD,24,16,20,108.691202,1.23E-05,0.55,4.62E-12
ADD,24,16,22,115.545602,1.36E-05,0.55,2.49E-13
ADD,24,16,24,121.910403,1.47E-05,0.55,7.09E-15
ADD,24,18,4,62.179202,3.83E-06,0.61,0.020830386
ADD,24,18,6,68.380802,4.89E-06,0.61,0.001299933
ADD,24,18,8,74.582402,5.96E-06,0.61,8.13E-05
ADD,24,18,10,80.784002,7.03E-06,0.61,5.09E-06
ADD,24,18,12,86.985602,8.09E-06,0.61,3.18E-07
ADD,24,18,14,93.187202,9.15E-06,0.61,1.98E-08
ADD,24,18,16,99.388802,1.02E-05,0.61,1.24E-09
ADD,24,18,18,108.038402,1.13E-05,0.62,7.67E-11
ADD,24,18,20,113.913603,1.24E-05,0.62,4.62E-12
ADD,24,18,22,120.768003,1.37E-05,0.62,2.49E-13
ADD,24,18,24,127.132803,1.47E-05,0.62,7.11E-15
ADD,24,20,4,67.401602,3.90E-06,0.67,0.020858469
ADD,24,20,6,73.603202,4.97E-06,0.67,0.001300502
ADD,24,20,8,79.804802,6.03E-06,0.67,8.13E-05
ADD,24,20,10,86.006402,7.10E-06,0.68,5.08E-06
ADD,24,20,12,92.208002,8.16E-06,0.68,3.17E-07
ADD,24,20,14,98.409602,9.23E-06,0.68,1.99E-08
ADD,24,20,16,104.611203,1.03E-05,0.68,1.24E-09
ADD,24,20,18,110.812803,1.14E-05,0.68,7.66E-11
ADD,24,20,20,119.462403,1.25E-05,0.69,4.62E-12
ADD,24,20,22,125.990403,1.38E-05,0.68,2.49E-13
ADD,24,20,24,132.355203,1.48E-05,0.68,7.09E-15
ADD,24,22,4,72.624002,3.98E-06,0.74,0.020841874
ADD,24,22,6,78.825602,5.04E-06,0.74,0.001302341
ADD,24,22,8,85.027202,6.11E-06,0.74,8.14E-05
ADD,24,22,10,91.228803,7.17E-06,0.74,5.09E-06
ADD,24,22,12,97.430403,8.23E-06,0.74,3.18E-07
ADD,24,22,14,103.632003,9.30E-06,0.74,1.99E-08
ADD,24,22,16,109.833603,1.04E-05,0.74,1.24E-09
ADD,24,22,18,116.035203,1.14E-05,0.75,7.68E-11
ADD,24,22,20,122.236803,1.25E-05,0.75,4.62E-12
ADD,24,22,22,131.539203,1.38E-05,0.74,2.49E-13
ADD,24,22,24,137.577603,1.49E-05,0.75,7.10E-15
ADD,24,24,4,77.846402,4.05E-06,0.8,0.020843408
ADD,24,24,6,84.048003,5.11E-06,0.8,0.001302452
ADD,24,24,8,90.249603,6.18E-06,0.8,8.13E-05
ADD,24,24,10,96.451203,7.24E-06,0.81,5.09E-06
ADD,24,24,12,102.652803,8.31E-06,0.81,3.18E-07
ADD,24,24,14,108.854403,9.37E-06,0.81,1.99E-08
ADD,24,24,16,115.056003,1.04E-05,0.81,1.24E-09
ADD,24,24,18,121.257603,1.15E-05,0.81,7.68E-11
ADD,24,24,20,127.459203,1.26E-05,0.81,4.62E-12
ADD,24,24,22,134.640003,1.39E-05,0.8,2.49E-13
ADD,24,24,24,143.126403,1.50E-05,0.81,7.11E-15
ADD,26,4,4,28.070401,3.35E-06,0.15,0.020830111
ADD,26,4,6,33.945601,4.42E-06,0.17,0.001303628
ADD,26,4,8,40.147201,5.48E-06,0.17,8.14E-05
ADD,26,4,10,46.348801,6.54E-06,0.17,5.09E-06
ADD,26,4,12,52.550401,7.61E-06,0.17,3.17E-07
ADD,26,4,14,58.752001,8.67E-06,0.19,1.98E-08
ADD,26,4,16,64.953601,9.73E-06,0.2,1.24E-09
ADD,26,4,18,71.155201,1.08E-05,0.22,7.74E-11
ADD,26,4,20,77.356801,1.19E-05,0.23,4.78E-12
ADD,26,4,22,84.211201,1.32E-05,0.23,2.90E-13
ADD,26,4,24,90.576001,1.42E-05,0.25,1.55E-14
ADD,26,4,26,96.940801,1.53E-05,0.22,4.44E-16
ADD,26,6,4,30.844801,3.40E-06,0.21,0.020812911
ADD,26,6,6,39.494401,4.49E-06,0.22,0.001300637
ADD,26,6,8,45.369601,5.55E-06,0.22,8.13E-05
ADD,26,6,10,51.571201,6.62E-06,0.22,5.09E-06
ADD,26,6,12,57.772801,7.68E-06,0.22,3.18E-07
ADD,26,6,14,63.974401,8.74E-06,0.22,1.99E-08
ADD,26,6,16,70.176001,9.81E-06,0.22,1.24E-09
ADD,26,6,18,76.377601,1.09E-05,0.23,7.73E-11
ADD,26,6,20,82.579201,1.19E-05,0.23,4.80E-12
ADD,26,6,22,89.433601,1.32E-05,0.23,2.89E-13
ADD,26,6,24,95.798402,1.43E-05,0.25,1.55E-14
ADD,26,6,26,102.000002,1.53E-05,0.23,4.45E-16
ADD,26,8,4,36.067201,3.47E-06,0.28,0.020851206
ADD,26,8,6,42.268801,4.53E-06,0.28,0.001301323
ADD,26,8,8,50.918401,5.64E-06,0.29,8.15E-05
ADD,26,8,10,56.793601,6.69E-06,0.29,5.08E-06
ADD,26,8,12,62.995201,7.75E-06,0.29,3.18E-07
ADD,26,8,14,69.196801,8.82E-06,0.29,1.98E-08
ADD,26,8,16,75.398401,9.88E-06,0.29,1.24E-09
ADD,26,8,18,81.600002,1.09E-05,0.29,7.74E-11
ADD,26,8,20,87.801602,1.20E-05,0.29,4.80E-12
ADD,26,8,22,94.656002,1.33E-05,0.29,2.89E-13
ADD,26,8,24,101.020802,1.44E-05,0.29,1.55E-14
ADD,26,8,26,107.222402,1.54E-05,0.29,4.44E-16
ADD,26,10,4,41.289601,3.54E-06,0.34,0.020840835
ADD,26,10,6,47.491201,4.60E-06,0.35,0.001301219
ADD,26,10,8,53.692801,5.67E-06,0.35,8.13E-05
ADD,26,10,10,62.342401,6.77E-06,0.35,5.09E-06
ADD,26,10,12,68.217601,7.83E-06,0.35,3.17E-07
ADD,26,10,14,74.419202,8.89E-06,0.35,1.99E-08
ADD,26,10,16,80.620802,9.95E-06,0.36,1.24E-09
ADD,26,10,18,86.822402,1.10E-05,0.36,7.73E-11
ADD,26,10,20,93.024002,1.21E-05,0.36,4.80E-12
ADD,26,10,22,99.878402,1.34E-05,0.35,2.89E-13
ADD,26,10,24,106.243202,1.45E-05,0.35,1.55E-14
ADD,26,10,26,112.444802,1.54E-05,0.35,4.44E-16
ADD,26,12,4,46.512001,3.61E-06,0.41,0.020785477
ADD,26,12,6,52.713601,4.68E-06,0.41,0.00130234
ADD,26,12,8,58.915202,5.74E-06,0.41,8.13E-05
ADD,26,12,10,65.116802,6.81E-06,0.41,5.08E-06
ADD,26,12,12,73.766402,7.91E-06,0.42,3.18E-07
ADD,26,12,14,79.641602,8.96E-06,0.42,1.99E-08
ADD,26,12,16,85.843202,1.00E-05,0.42,1.24E-09
ADD,26,12,18,92.044802,1.11E-05,0.42,7.73E-11
ADD,26,12,20,98.246402,1.22E-05,0.42,4.80E-12
ADD,26,12,22,105.100802,1.35E-05,0.42,2.89E-13
ADD,26,12,24,111.465602,1.45E-05,0.42,1.55E-14
ADD,26,12,26,117.667202,1.55E-05,0.42,4.44E-16
ADD,26,14,4,51.734402,3.69E-06,0.48,0.020858955
ADD,26,14,6,57.936002,4.75E-06,0.48,0.001300196
ADD,26,14,8,64.137602,5.82E-06,0.48,8.13E-05
ADD,26,14,10,70.339202,6.88E-06,0.48,5.08E-06
ADD,26,14,12,76.540802,7.94E-06,0.48,3.18E-07
ADD,26,14,14,85.190402,9.05E-06,0.49,1.99E-08
ADD,26,14,16,91.065602,1.01E-05,0.49,1.24E-09
ADD,26,14,18,97.267202,1.12E-05,0.49,7.75E-11
ADD,26,14,20,103.468802,1.22E-05,0.49,4.79E-12
ADD,26,14,22,110.323202,1.35E-05,0.49,2.89E-13
ADD,26,14,24,116.688002,1.46E-05,0.49,1.56E-14
ADD,26,14,26,122.889602,1.56E-05,0.48,4.44E-16
ADD,26,16,4,56.956802,3.76E-06,0.54,0.020841012
ADD,26,16,6,63.158402,4.82E-06,0.54,0.001302656
ADD,26,16,8,69.360002,5.89E-06,0.54,8.14E-05
ADD,26,16,10,75.561602,6.95E-06,0.54,5.09E-06
ADD,26,16,12,81.763202,8.02E-06,0.55,3.18E-07
ADD,26,16,14,87.964802,9.08E-06,0.55,1.99E-08
ADD,26,16,16,96.614402,1.02E-05,0.55,1.24E-09
ADD,26,16,18,102.489602,1.12E-05,0.55,7.73E-11
ADD,26,16,20,108.691202,1.23E-05,0.55,4.80E-12
ADD,26,16,22,115.545602,1.36E-05,0.55,2.90E-13
ADD,26,16,24,121.910403,1.47E-05,0.55,1.55E-14
ADD,26,16,26,128.112003,1.57E-05,0.55,4.44E-16
ADD,26,18,4,62.179202,3.83E-06,0.61,0.020823392
ADD,26,18,6,68.380802,4.89E-06,0.61,0.001300383
ADD,26,18,8,74.582402,5.96E-06,0.61,8.13E-05
ADD,26,18,10,80.784002,7.03E-06,0.61,5.08E-06
ADD,26,18,12,86.985602,8.09E-06,0.61,3.18E-07
ADD,26,18,14,93.187202,9.15E-06,0.61,1.98E-08
ADD,26,18,16,99.388802,1.02E-05,0.61,1.24E-09
ADD,26,18,18,108.038402,1.13E-05,0.62,7.73E-11
ADD,26,18,20,113.913603,1.24E-05,0.62,4.79E-12
ADD,26,18,22,120.768003,1.37E-05,0.62,2.89E-13
ADD,26,18,24,127.132803,1.47E-05,0.62,1.55E-14
ADD,26,18,26,133.334403,1.57E-05,0.61,4.44E-16
ADD,26,20,4,67.401602,3.90E-06,0.67,0.020819612
ADD,26,20,6,73.603202,4.97E-06,0.67,0.001301476
ADD,26,20,8,79.804802,6.03E-06,0.67,8.14E-05
ADD,26,20,10,86.006402,7.10E-06,0.68,5.08E-06
ADD,26,20,12,92.208002,8.16E-06,0.68,3.18E-07
ADD,26,20,14,98.409602,9.23E-06,0.68,1.99E-08
ADD,26,20,16,104.611203,1.03E-05,0.68,1.24E-09
ADD,26,20,18,110.812803,1.14E-05,0.68,7.74E-11
ADD,26,20,20,119.462403,1.25E-05,0.69,4.79E-12
ADD,26,20,22,125.990403,1.38E-05,0.68,2.89E-13
ADD,26,20,24,132.355203,1.48E-05,0.68,1.56E-14
ADD,26,20,26,138.556803,1.58E-05,0.68,4.44E-16
ADD,26,22,4,72.624002,3.98E-06,0.74,0.020835856
ADD,26,22,6,78.825602,5.04E-06,0.74,0.00130138
ADD,26,22,8,85.027202,6.11E-06,0.74,8.14E-05
ADD,26,22,10,91.228803,7.17E-06,0.74,5.08E-06
ADD,26,22,12,97.430403,8.23E-06,0.74,3.18E-07
ADD,26,22,14,103.632003,9.30E-06,0.74,1.99E-08
ADD,26,22,16,109.833603,1.04E-05,0.74,1.24E-09
ADD,26,22,18,116.035203,1.14E-05,0.75,7.75E-11
ADD,26,22,20,122.236803,1.25E-05,0.75,4.79E-12
ADD,26,22,22,131.539203,1.38E-05,0.74,2.89E-13
ADD,26,22,24,137.577603,1.49E-05,0.75,1.55E-14
ADD,26,22,26,143.779203,1.59E-05,0.75,4.45E-16
ADD,26,24,4,77.846402,4.05E-06,0.8,0.020846008
ADD,26,24,6,84.048003,5.11E-06,0.8,0.001302268
ADD,26,24,8,90.249603,6.18E-06,0.8,8.14E-05
ADD,26,24,10,96.451203,7.24E-06,0.81,5.08E-06
ADD,26,24,12,102.652803,8.31E-06,0.81,3.17E-07
ADD,26,24,14,108.854403,9.37E-06,0.81,1.99E-08
ADD,26,24,16,115.056003,1.04E-05,0.81,1.24E-09
ADD,26,24,18,121.257603,1.15E-05,0.81,7.73E-11
ADD,26,24,20,127.459203,1.26E-05,0.81,4.79E-12
ADD,26,24,22,134.640003,1.39E-05,0.8,2.89E-13
ADD,26,24,24,143.126403,1.50E-05,0.81,1.55E-14
ADD,26,24,26,149.001603,1.59E-05,0.81,4.44E-16
ADD,26,26,4,83.068803,4.12E-06,0.87,0.020827671
ADD,26,26,6,89.270403,5.18E-06,0.87,0.001302046
ADD,26,26,8,95.472003,6.25E-06,0.87,8.14E-05
ADD,26,26,10,101.673603,7.32E-06,0.87,5.09E-06
ADD,26,26,12,107.875203,8.38E-06,0.87,3.18E-07
ADD,26,26,14,114.076803,9.44E-06,0.87,1.98E-08
ADD,26,26,16,120.278403,1.05E-05,0.87,1.24E-09
ADD,26,26,18,126.480003,1.16E-05,0.88,7.73E-11
ADD,26,26,20,132.681603,1.26E-05,0.88,4.79E-12
ADD,26,26,22,139.862403,1.40E-05,0.87,2.89E-13
ADD,26,26,24,145.900803,1.49E-05,0.87,1.55E-14
ADD,26,26,26,154.550404,1.60E-05,0.88,4.44E-16
ADD,28,4,4,28.070401,3.35E-06,0.15,0.020823097
ADD,28,4,6,33.945601,4.42E-06,0.17,0.001303333
ADD,28,4,8,40.147201,5.48E-06,0.17,8.15E-05
ADD,28,4,10,46.348801,6.54E-06,0.17,5.09E-06
ADD,28,4,12,52.550401,7.61E-06,0.17,3.18E-07
ADD,28,4,14,58.752001,8.67E-06,0.19,1.99E-08
ADD,28,4,16,64.953601,9.73E-06,0.2,1.24E-09
ADD,28,4,18,71.155201,1.08E-05,0.22,7.76E-11
ADD,28,4,20,77.356801,1.19E-05,0.23,4.84E-12
ADD,28,4,22,84.211201,1.32E-05,0.23,2.99E-13
ADD,28,4,24,90.576001,1.42E-05,0.25,1.80E-14
ADD,28,4,26,96.940801,1.53E-05,0.22,9.72E-16
ADD,28,4,28,103.142402,1.64E-05,0.23,2.78E-17
ADD,28,6,4,30.844801,3.40E-06,0.21,0.02083112
ADD,28,6,6,39.494401,4.49E-06,0.22,0.001304082
ADD,28,6,8,45.369601,5.55E-06,0.22,8.13E-05
ADD,28,6,10,51.571201,6.62E-06,0.22,5.09E-06
ADD,28,6,12,57.772801,7.68E-06,0.22,3.18E-07
ADD,28,6,14,63.974401,8.74E-06,0.22,1.99E-08
ADD,28,6,16,70.176001,9.81E-06,0.22,1.24E-09
ADD,28,6,18,76.377601,1.09E-05,0.23,7.75E-11
ADD,28,6,20,82.579201,1.19E-05,0.23,4.84E-12
ADD,28,6,22,89.433601,1.32E-05,0.23,3.00E-13
ADD,28,6,24,95.798402,1.43E-05,0.25,1.81E-14
ADD,28,6,26,102.000002,1.53E-05,0.23,9.71E-16
ADD,28,6,28,108.201602,1.64E-05,0.24,2.78E-17
ADD,28,8,4,36.067201,3.47E-06,0.28,0.020834409
ADD,28,8,6,42.268801,4.53E-06,0.28,0.001302607
ADD,28,8,8,50.918401,5.64E-06,0.29,8.14E-05
ADD,28,8,10,56.793601,6.69E-06,0.29,5.09E-06
ADD,28,8,12,62.995201,7.75E-06,0.29,3.18E-07
ADD,28,8,14,69.196801,8.82E-06,0.29,1.98E-08
ADD,28,8,16,75.398401,9.88E-06,0.29,1.24E-09
ADD,28,8,18,81.600002,1.09E-05,0.29,7.76E-11
ADD,28,8,20,87.801602,1.20E-05,0.29,4.83E-12
ADD,28,8,22,94.656002,1.33E-05,0.29,3.00E-13
ADD,28,8,24,101.020802,1.44E-05,0.29,1.81E-14
ADD,28,8,26,107.222402,1.54E-05,0.29,9.71E-16
ADD,28,8,28,113.424002,1.64E-05,0.29,2.77E-17
ADD,28,10,4,41.289601,3.54E-06,0.34,0.020828574
ADD,28,10,6,47.491201,4.60E-06,0.35,0.001302124
ADD,28,10,8,53.692801,5.67E-06,0.35,8.14E-05
ADD,28,10,10,62.342401,6.77E-06,0.35,5.07E-06
ADD,28,10,12,68.217601,7.83E-06,0.35,3.17E-07
ADD,28,10,14,74.419202,8.89E-06,0.35,1.99E-08
ADD,28,10,16,80.620802,9.95E-06,0.36,1.24E-09
ADD,28,10,18,86.822402,1.10E-05,0.36,7.76E-11
ADD,28,10,20,93.024002,1.21E-05,0.36,4.84E-12
ADD,28,10,22,99.878402,1.34E-05,0.35,2.99E-13
ADD,28,10,24,106.243202,1.45E-05,0.35,1.81E-14
ADD,28,10,26,112.444802,1.54E-05,0.35,9.71E-16
ADD,28,10,28,118.646402,1.65E-05,0.35,2.77E-17
ADD,28,12,4,46.512001,3.61E-06,0.41,0.020868371
ADD,28,12,6,52.713601,4.68E-06,0.41,0.00130157
ADD,28,12,8,58.915202,5.74E-06,0.41,8.12E-05
ADD,28,12,10,65.116802,6.81E-06,0.41,5.09E-06
ADD,28,12,12,73.766402,7.91E-06,0.42,3.17E-07
ADD,28,12,14,79.641602,8.96E-06,0.42,1.99E-08
ADD,28,12,16,85.843202,1.00E-05,0.42,1.24E-09
ADD,28,12,18,92.044802,1.11E-05,0.42,7.76E-11
ADD,28,12,20,98.246402,1.22E-05,0.42,4.84E-12
ADD,28,12,22,105.100802,1.35E-05,0.42,3.00E-13
ADD,28,12,24,111.465602,1.45E-05,0.42,1.81E-14
ADD,28,12,26,117.667202,1.55E-05,0.42,9.71E-16
ADD,28,12,28,123.868802,1.66E-05,0.42,2.78E-17
ADD,28,14,4,51.734402,3.69E-06,0.48,0.020796111
ADD,28,14,6,57.936002,4.75E-06,0.48,0.001301514
ADD,28,14,8,64.137602,5.82E-06,0.48,8.14E-05
ADD,28,14,10,70.339202,6.88E-06,0.48,5.09E-06
ADD,28,14,12,76.540802,7.94E-06,0.48,3.18E-07
ADD,28,14,14,85.190402,9.05E-06,0.49,1.99E-08
ADD,28,14,16,91.065602,1.01E-05,0.49,1.24E-09
ADD,28,14,18,97.267202,1.12E-05,0.49,7.75E-11
ADD,28,14,20,103.468802,1.22E-05,0.49,4.84E-12
ADD,28,14,22,110.323202,1.35E-05,0.49,2.99E-13
ADD,28,14,24,116.688002,1.46E-05,0.49,1.81E-14
ADD,28,14,26,122.889602,1.56E-05,0.48,9.71E-16
ADD,28,14,28,129.091202,1.66E-05,0.48,2.78E-17
ADD,28,16,4,56.956802,3.76E-06,0.54,0.020816992
ADD,28,16,6,63.158402,4.82E-06,0.54,0.001300654
ADD,28,16,8,69.360002,5.89E-06,0.54,8.14E-05
ADD,28,16,10,75.561602,6.95E-06,0.54,5.09E-06
ADD,28,16,12,81.763202,8.02E-06,0.55,3.17E-07
ADD,28,16,14,87.964802,9.08E-06,0.55,1.99E-08
ADD,28,16,16,96.614402,1.02E-05,0.55,1.24E-09
ADD,28,16,18,102.489602,1.12E-05,0.55,7.75E-11
ADD,28,16,20,108.691202,1.23E-05,0.55,4.83E-12
ADD,28,16,22,115.545602,1.36E-05,0.55,3.00E-13
ADD,28,16,24,121.910403,1.47E-05,0.55,1.81E-14
ADD,28,16,26,128.112003,1.57E-05,0.55,9.70E-16
ADD,28,16,28,134.313603,1.67E-05,0.55,2.77E-17
ADD,28,18,4,62.179202,3.83E-06,0.61,0.020825
ADD,28,18,6,68.380802,4.89E-06,0.61,0.001302639
ADD,28,18,8,74.582402,5.96E-06,0.61,8.14E-05
ADD,28,18,10,80.784002,7.03E-06,0.61,5.09E-06
ADD,28,18,12,86.985602,8.09E-06,0.61,3.18E-07
ADD,28,18,14,93.187202,9.15E-06,0.61,1.99E-08
ADD,28,18,16,99.388802,1.02E-05,0.61,1.24E-09
ADD,28,18,18,108.038402,1.13E-05,0.62,7.75E-11
ADD,28,18,20,113.913603,1.24E-05,0.62,4.84E-12
ADD,28,18,22,120.768003,1.37E-05,0.62,3.00E-13
ADD,28,18,24,127.132803,1.47E-05,0.62,1.81E-14
ADD,28,18,26,133.334403,1.57E-05,0.61,9.71E-16
ADD,28,18,28,139.536003,1.68E-05,0.61,2.77E-17
ADD,28,20,4,67.401602,3.90E-06,0.67,0.02087043
ADD,28,20,6,73.603202,4.97E-06,0.67,0.001301639
ADD,28,20,8,79.804802,6.03E-06,0.67,8.14E-05
ADD,28,20,10,86.006402,7.10E-06,0.68,5.09E-06
ADD,28,20,12,92.208002,8.16E-06,0.68,3.17E-07
ADD,28,20,14,98.409602,9.23E-06,0.68,1.99E-08
ADD,28,20,16,104.611203,1.03E-05,0.68,1.24E-09
ADD,28,20,18,110.812803,1.14E-05,0.68,7.75E-11
ADD,28,20,20,119.462403,1.25E-05,0.69,4.83E-12
ADD,28,20,22,125.990403,1.38E-05,0.68,3.00E-13
ADD,28,20,24,132.355203,1.48E-05,0.68,1.81E-14
ADD,28,20,26,138.556803,1.58E-05,0.68,9.72E-16
ADD,28,20,28,144.758403,1.69E-05,0.68,2.78E-17
ADD,28,22,4,72.624002,3.98E-06,0.74,0.020836512
ADD,28,22,6,78.825602,5.04E-06,0.74,0.001300603
ADD,28,22,8,85.027202,6.11E-06,0.74,8.13E-05
ADD,28,22,10,91.228803,7.17E-06,0.74,5.09E-06
ADD,28,22,12,97.430403,8.23E-06,0.74,3.17E-07
ADD,28,22,14,103.632003,9.30E-06,0.74,1.98E-08
ADD,28,22,16,109.833603,1.04E-05,0.74,1.24E-09
ADD,28,22,18,116.035203,1.14E-05,0.75,7.76E-11
ADD,28,22,20,122.236803,1.25E-05,0.75,4.84E-12
ADD,28,22,22,131.539203,1.38E-05,0.74,3.00E-13
ADD,28,22,24,137.577603,1.49E-05,0.75,1.81E-14
ADD,28,22,26,143.779203,1.59E-05,0.75,9.73E-16
ADD,28,22,28,149.980803,1.69E-05,0.74,2.77E-17
ADD,28,24,4,77.846402,4.05E-06,0.8,0.020833158
ADD,28,24,6,84.048003,5.11E-06,0.8,0.001301312
ADD,28,24,8,90.249603,6.18E-06,0.8,8.14E-05
ADD,28,24,10,96.451203,7.24E-06,0.81,5.08E-06
ADD,28,24,12,102.652803,8.31E-06,0.81,3.18E-07
ADD,28,24,14,108.854403,9.37E-06,0.81,1.99E-08
ADD,28,24,16,115.056003,1.04E-05,0.81,1.24E-09
ADD,28,24,18,121.257603,1.15E-05,0.81,7.76E-11
ADD,28,24,20,127.459203,1.26E-05,0.81,4.83E-12
ADD,28,24,22,134.640003,1.39E-05,0.8,3.00E-13
ADD,28,24,24,143.126403,1.50E-05,0.81,1.81E-14
ADD,28,24,26,149.001603,1.59E-05,0.81,9.72E-16
ADD,28,24,28,155.203203,1.70E-05,0.81,2.78E-17
ADD,28,26,4,83.068803,4.12E-06,0.87,0.020848194
ADD,28,26,6,89.270403,5.18E-06,0.87,0.001302515
ADD,28,26,8,95.472003,6.25E-06,0.87,8.13E-05
ADD,28,26,10,101.673603,7.32E-06,0.87,5.09E-06
ADD,28,26,12,107.875203,8.38E-06,0.87,3.18E-07
ADD,28,26,14,114.076803,9.44E-06,0.87,1.99E-08
ADD,28,26,16,120.278403,1.05E-05,0.87,1.24E-09
ADD,28,26,18,126.480003,1.16E-05,0.88,7.74E-11
ADD,28,26,20,132.681603,1.26E-05,0.88,4.84E-12
ADD,28,26,22,139.862403,1.40E-05,0.87,3.00E-13
ADD,28,26,24,145.900803,1.49E-05,0.87,1.80E-14
ADD,28,26,26,154.550404,1.60E-05,0.88,9.73E-16
ADD,28,26,28,160.425604,1.71E-05,0.87,2.78E-17
ADD,28,28,4,88.291203,4.19E-06,0.93,0.020816304
ADD,28,28,6,94.492803,5.26E-06,0.93,0.00130226
ADD,28,28,8,100.694403,6.32E-06,0.94,8.13E-05
ADD,28,28,10,106.896003,7.39E-06,0.94,5.07E-06
ADD,28,28,12,113.097603,8.45E-06,0.94,3.17E-07
ADD,28,28,14,119.299203,9.52E-06,0.94,1.99E-08
ADD,28,28,16,125.500803,1.06E-05,0.94,1.24E-09
ADD,28,28,18,131.702403,1.16E-05,0.94,7.76E-11
ADD,28,28,20,137.904003,1.27E-05,0.94,4.83E-12
ADD,28,28,22,145.084804,1.41E-05,0.93,2.99E-13
ADD,28,28,24,151.123204,1.50E-05,0.94,1.81E-14
ADD,28,28,26,157.324804,1.61E-05,0.94,9.71E-16
ADD,28,28,28,165.974404,1.72E-05,0.94,2.78E-17
ADD,30,4,4,28.070401,3.35E-06,0.15,0.020833319
ADD,30,4,6,33.945601,4.42E-06,0.17,0.001301862
ADD,30,4,8,40.147201,5.48E-06,0.17,8.13E-05
ADD,30,4,10,46.348801,6.54E-06,0.17,5.09E-06
ADD,30,4,12,52.550401,7.61E-06,0.17,3.17E-07
ADD,30,4,14,58.752001,8.67E-06,0.19,1.99E-08
ADD,30,4,16,64.953601,9.73E-06,0.2,1.24E-09
ADD,30,4,18,71.155201,1.08E-05,0.22,7.76E-11
ADD,30,4,20,77.356801,1.19E-05,0.23,4.85E-12
ADD,30,4,22,84.211201,1.32E-05,0.23,3.02E-13
ADD,30,4,24,90.576001,1.42E-05,0.25,1.88E-14
ADD,30,4,26,96.940801,1.53E-05,0.22,1.13E-15
ADD,30,4,28,103.142402,1.64E-05,0.23,6.07E-17
ADD,30,4,30,109.344002,1.74E-05,0.25,1.74E-18
ADD,30,6,4,30.844801,3.40E-06,0.21,0.020852937
ADD,30,6,6,39.494401,4.49E-06,0.22,0.001300563
ADD,30,6,8,45.369601,5.55E-06,0.22,8.13E-05
ADD,30,6,10,51.571201,6.62E-06,0.22,5.09E-06
ADD,30,6,12,57.772801,7.68E-06,0.22,3.18E-07
ADD,30,6,14,63.974401,8.74E-06,0.22,1.99E-08
ADD,30,6,16,70.176001,9.81E-06,0.22,1.24E-09
ADD,30,6,18,76.377601,1.09E-05,0.23,7.76E-11
ADD,30,6,20,82.579201,1.19E-05,0.23,4.85E-12
ADD,30,6,22,89.433601,1.32E-05,0.23,3.02E-13
ADD,30,6,24,95.798402,1.43E-05,0.25,1.87E-14
ADD,30,6,26,102.000002,1.53E-05,0.23,1.13E-15
ADD,30,6,28,108.201602,1.64E-05,0.24,6.07E-17
ADD,30,6,30,114.403202,1.75E-05,0.27,1.74E-18
ADD,30,8,4,36.067201,3.47E-06,0.28,0.020850435
ADD,30,8,6,42.268801,4.53E-06,0.28,0.001300166
ADD,30,8,8,50.918401,5.64E-06,0.29,8.13E-05
ADD,30,8,10,56.793601,6.69E-06,0.29,5.08E-06
ADD,30,8,12,62.995201,7.75E-06,0.29,3.18E-07
ADD,30,8,14,69.196801,8.82E-06,0.29,1.99E-08
ADD,30,8,16,75.398401,9.88E-06,0.29,1.24E-09
ADD,30,8,18,81.600002,1.09E-05,0.29,7.76E-11
ADD,30,8,20,87.801602,1.20E-05,0.29,4.84E-12
ADD,30,8,22,94.656002,1.33E-05,0.29,3.02E-13
ADD,30,8,24,101.020802,1.44E-05,0.29,1.87E-14
ADD,30,8,26,107.222402,1.54E-05,0.29,1.13E-15
ADD,30,8,28,113.424002,1.64E-05,0.29,6.07E-17
ADD,30,8,30,119.625602,1.75E-05,0.29,1.73E-18
ADD,30,10,4,41.289601,3.54E-06,0.34,0.020841792
ADD,30,10,6,47.491201,4.60E-06,0.35,0.001301949
ADD,30,10,8,53.692801,5.67E-06,0.35,8.14E-05
ADD,30,10,10,62.342401,6.77E-06,0.35,5.09E-06
ADD,30,10,12,68.217601,7.83E-06,0.35,3.18E-07
ADD,30,10,14,74.419202,8.89E-06,0.35,1.99E-08
ADD,30,10,16,80.620802,9.95E-06,0.36,1.24E-09
ADD,30,10,18,86.822402,1.10E-05,0.36,7.76E-11
ADD,30,10,20,93.024002,1.21E-05,0.36,4.84E-12
ADD,30,10,22,99.878402,1.34E-05,0.35,3.02E-13
ADD,30,10,24,106.243202,1.45E-05,0.35,1.87E-14
ADD,30,10,26,112.444802,1.54E-05,0.35,1.13E-15
ADD,30,10,28,118.646402,1.65E-05,0.35,6.07E-17
ADD,30,10,30,124.848002,1.76E-05,0.36,1.74E-18
ADD,30,12,4,46.512001,3.61E-06,0.41,0.020833624
ADD,30,12,6,52.713601,4.68E-06,0.41,0.001303526
ADD,30,12,8,58.915202,5.74E-06,0.41,8.14E-05
ADD,30,12,10,65.116802,6.81E-06,0.41,5.08E-06
ADD,30,12,12,73.766402,7.91E-06,0.42,3.18E-07
ADD,30,12,14,79.641602,8.96E-06,0.42,1.99E-08
ADD,30,12,16,85.843202,1.00E-05,0.42,1.24E-09
ADD,30,12,18,92.044802,1.11E-05,0.42,7.76E-11
ADD,30,12,20,98.246402,1.22E-05,0.42,4.85E-12
ADD,30,12,22,105.100802,1.35E-05,0.42,3.02E-13
ADD,30,12,24,111.465602,1.45E-05,0.42,1.88E-14
ADD,30,12,26,117.667202,1.55E-05,0.42,1.13E-15
ADD,30,12,28,123.868802,1.66E-05,0.42,6.08E-17
ADD,30,12,30,130.070402,1.77E-05,0.42,1.73E-18
ADD,30,14,4,51.734402,3.69E-06,0.48,0.020813444
ADD,30,14,6,57.936002,4.75E-06,0.48,0.001303405
ADD,30,14,8,64.137602,5.82E-06,0.48,8.15E-05
ADD,30,14,10,70.339202,6.88E-06,0.48,5.09E-06
ADD,30,14,12,76.540802,7.94E-06,0.48,3.18E-07
ADD,30,14,14,85.190402,9.05E-06,0.49,1.99E-08
ADD,30,14,16,91.065602,1.01E-05,0.49,1.24E-09
ADD,30,14,18,97.267202,1.12E-05,0.49,7.76E-11
ADD,30,14,20,103.468802,1.22E-05,0.49,4.85E-12
ADD,30,14,22,110.323202,1.35E-05,0.49,3.03E-13
ADD,30,14,24,116.688002,1.46E-05,0.49,1.87E-14
ADD,30,14,26,122.889602,1.56E-05,0.48,1.13E-15
ADD,30,14,28,129.091202,1.66E-05,0.48,6.07E-17
ADD,30,14,30,135.292803,1.77E-05,0.49,1.74E-18
ADD,30,16,4,56.956802,3.76E-06,0.54,0.020805935
ADD,30,16,6,63.158402,4.82E-06,0.54,0.001304004
ADD,30,16,8,69.360002,5.89E-06,0.54,8.13E-05
ADD,30,16,10,75.561602,6.95E-06,0.54,5.08E-06
ADD,30,16,12,81.763202,8.02E-06,0.55,3.18E-07
ADD,30,16,14,87.964802,9.08E-06,0.55,1.99E-08
ADD,30,16,16,96.614402,1.02E-05,0.55,1.24E-09
ADD,30,16,18,102.489602,1.12E-05,0.55,7.76E-11
ADD,30,16,20,108.691202,1.23E-05,0.55,4.84E-12
ADD,30,16,22,115.545602,1.36E-05,0.55,3.02E-13
ADD,30,16,24,121.910403,1.47E-05,0.55,1.87E-14
ADD,30,16,26,128.112003,1.57E-05,0.55,1.13E-15
ADD,30,16,28,134.313603,1.67E-05,0.55,6.07E-17
ADD,30,16,30,140.515203,1.78E-05,0.55,1.73E-18
ADD,30,18,4,62.179202,3.83E-06,0.61,0.020840848
ADD,30,18,6,68.380802,4.89E-06,0.61,0.001300691
ADD,30,18,8,74.582402,5.96E-06,0.61,8.14E-05
ADD,30,18,10,80.784002,7.03E-06,0.61,5.09E-06
ADD,30,18,12,86.985602,8.09E-06,0.61,3.18E-07
ADD,30,18,14,93.187202,9.15E-06,0.61,1.98E-08
ADD,30,18,16,99.388802,1.02E-05,0.61,1.24E-09
ADD,30,18,18,108.038402,1.13E-05,0.62,7.76E-11
ADD,30,18,20,113.913603,1.24E-05,0.62,4.85E-12
ADD,30,18,22,120.768003,1.37E-05,0.62,3.02E-13
ADD,30,18,24,127.132803,1.47E-05,0.62,1.87E-14
ADD,30,18,26,133.334403,1.57E-05,0.61,1.13E-15
ADD,30,18,28,139.536003,1.68E-05,0.61,6.07E-17
ADD,30,18,30,145.737603,1.79E-05,0.62,1.73E-18
ADD,30,20,4,67.401602,3.90E-06,0.67,0.020816334
ADD,30,20,6,73.603202,4.97E-06,0.67,0.001300567
ADD,30,20,8,79.804802,6.03E-06,0.67,8.14E-05
ADD,30,20,10,86.006402,7.10E-06,0.68,5.09E-06
ADD,30,20,12,92.208002,8.16E-06,0.68,3.18E-07
ADD,30,20,14,98.409602,9.23E-06,0.68,1.99E-08
ADD,30,20,16,104.611203,1.03E-05,0.68,1.24E-09
ADD,30,20,18,110.812803,1.14E-05,0.68,7.76E-11
ADD,30,20,20,119.462403,1.25E-05,0.69,4.85E-12
ADD,30,20,22,125.990403,1.38E-05,0.68,3.02E-13
ADD,30,20,24,132.355203,1.48E-05,0.68,1.87E-14
ADD,30,20,26,138.556803,1.58E-05,0.68,1.13E-15
ADD,30,20,28,144.758403,1.69E-05,0.68,6.07E-17
ADD,30,20,30,150.960003,1.80E-05,0.68,1.73E-18
ADD,30,22,4,72.624002,3.98E-06,0.74,0.02084998
ADD,30,22,6,78.825602,5.04E-06,0.74,0.001300948
ADD,30,22,8,85.027202,6.11E-06,0.74,8.13E-05
ADD,30,22,10,91.228803,7.17E-06,0.74,5.08E-06
ADD,30,22,12,97.430403,8.23E-06,0.74,3.18E-07
ADD,30,22,14,103.632003,9.30E-06,0.74,1.99E-08
ADD,30,22,16,109.833603,1.04E-05,0.74,1.24E-09
ADD,30,22,18,116.035203,1.14E-05,0.75,7.77E-11
ADD,30,22,20,122.236803,1.25E-05,0.75,4.85E-12
ADD,30,22,22,131.539203,1.38E-05,0.74,3.03E-13
ADD,30,22,24,137.577603,1.49E-05,0.75,1.87E-14
ADD,30,22,26,143.779203,1.59E-05,0.75,1.13E-15
ADD,30,22,28,149.980803,1.69E-05,0.74,6.06E-17
ADD,30,22,30,156.182403,1.80E-05,0.75,1.73E-18
ADD,30,24,4,77.846402,4.05E-06,0.8,0.020842814
ADD,30,24,6,84.048003,5.11E-06,0.8,0.001301228
ADD,30,24,8,90.249603,6.18E-06,0.8,8.14E-05
ADD,30,24,10,96.451203,7.24E-06,0.81,5.09E-06
ADD,30,24,12,102.652803,8.31E-06,0.81,3.17E-07
ADD,30,24,14,108.854403,9.37E-06,0.81,1.98E-08
ADD,30,24,16,115.056003,1.04E-05,0.81,1.24E-09
ADD,30,24,18,121.257603,1.15E-05,0.81,7.75E-11
ADD,30,24,20,127.459203,1.26E-05,0.81,4.85E-12
ADD,30,24,22,134.640003,1.39E-05,0.8,3.02E-13
ADD,30,24,24,143.126403,1.50E-05,0.81,1.87E-14
ADD,30,24,26,149.001603,1.59E-05,0.81,1.13E-15
ADD,30,24,28,155.203203,1.70E-05,0.81,6.08E-17
ADD,30,24,30,161.404803,1.81E-05,0.81,1.73E-18
ADD,30,26,4,83.068803,4.12E-06,0.87,0.020843548
ADD,30,26,6,89.270403,5.18E-06,0.87,0.00130345
ADD,30,26,8,95.472003,6.25E-06,0.87,8.13E-05
ADD,30,26,10,101.673603,7.32E-06,0.87,5.08E-06
ADD,30,26,12,107.875203,8.38E-06,0.87,3.18E-07
ADD,30,26,14,114.076803,9.44E-06,0.87,1.98E-08
ADD,30,26,16,120.278403,1.05E-05,0.87,1.24E-09
ADD,30,26,18,126.480003,1.16E-05,0.88,7.75E-11
ADD,30,26,20,132.681603,1.26E-05,0.88,4.86E-12
ADD,30,26,22,139.862403,1.40E-05,0.87,3.02E-13
ADD,30,26,24,145.900803,1.49E-05,0.87,1.87E-14
ADD,30,26,26,154.550404,1.60E-05,0.88,1.13E-15
ADD,30,26,28,160.425604,1.71E-05,0.87,6.07E-17
ADD,30,26,30,166.627204,1.82E-05,0.88,1.73E-18
ADD,30,28,4,88.291203,4.19E-06,0.93,0.020848419
ADD,30,28,6,94.492803,5.26E-06,0.93,0.001301209
ADD,30,28,8,100.694403,6.32E-06,0.94,8.14E-05
ADD,30,28,10,106.896003,7.39E-06,0.94,5.08E-06
ADD,30,28,12,113.097603,8.45E-06,0.94,3.18E-07
ADD,30,28,14,119.299203,9.52E-06,0.94,1.99E-08
ADD,30,28,16,125.500803,1.06E-05,0.94,1.24E-09
ADD,30,28,18,131.702403,1.16E-05,0.94,7.76E-11
ADD,30,28,20,137.904003,1.27E-05,0.94,4.84E-12
ADD,30,28,22,145.084804,1.41E-05,0.93,3.02E-13
ADD,30,28,24,151.123204,1.50E-05,0.94,1.87E-14
ADD,30,28,26,157.324804,1.61E-05,0.94,1.13E-15
ADD,30,28,28,165.974404,1.72E-05,0.94,6.06E-17
ADD,30,28,30,171.849604,1.83E-05,0.94,1.74E-18
ADD,30,30,4,93.513603,4.26E-06,1,0.020838976
ADD,30,30,6,99.715203,5.33E-06,1,0.001303308
ADD,30,30,8,105.916803,6.40E-06,1,8.14E-05
ADD,30,30,10,112.118403,7.46E-06,1,5.09E-06
ADD,30,30,12,118.320003,8.52E-06,1,3.18E-07
ADD,30,30,14,124.521603,9.59E-06,1,1.98E-08
ADD,30,30,16,130.723204,1.07E-05,1.01,1.24E-09
ADD,30,30,18,136.924804,1.17E-05,1.01,7.76E-11
ADD,30,30,20,143.126404,1.28E-05,1.01,4.84E-12
ADD,30,30,22,150.307204,1.41E-05,1,3.02E-13
ADD,30,30,24,156.508804,1.52E-05,1,1.87E-14
ADD,30,30,26,162.547204,1.62E-05,1,1.13E-15
ADD,30,30,28,168.748804,1.72E-05,1,6.08E-17
ADD,30,30,30,177.561604,1.84E-05,1.01,1.73E-18
ADD,32,4,4,28.070401,3.35E-06,0.15,0.02084629
ADD,32,4,6,33.945601,4.42E-06,0.17,0.001302373
ADD,32,4,8,40.147201,5.48E-06,0.17,8.14E-05
ADD,32,4,10,46.348801,6.54E-06,0.17,5.08E-06
ADD,32,4,12,52.550401,7.61E-06,0.17,3.18E-07
ADD,32,4,14,58.752001,8.67E-06,0.19,1.99E-08
ADD,32,4,16,64.953601,9.73E-06,0.2,1.24E-09
ADD,32,4,18,71.155201,1.08E-05,0.22,7.76E-11
ADD,32,4,20,77.356801,1.19E-05,0.23,4.85E-12
ADD,32,4,22,84.211201,1.32E-05,0.23,3.03E-13
ADD,32,4,24,90.576001,1.42E-05,0.25,1.89E-14
ADD,32,4,26,96.940801,1.53E-05,0.22,1.17E-15
ADD,32,4,28,103.142402,1.64E-05,0.23,7.06E-17
ADD,32,4,30,109.344002,1.74E-05,0.25,3.80E-18
ADD,32,4,32,115.545602,1.85E-05,0.27,1.08E-19
ADD,32,6,4,30.844801,3.40E-06,0.21,0.020846048
ADD,32,6,6,39.494401,4.49E-06,0.22,0.001301958
ADD,32,6,8,45.369601,5.55E-06,0.22,8.14E-05
ADD,32,6,10,51.571201,6.62E-06,0.22,5.09E-06
ADD,32,6,12,57.772801,7.68E-06,0.22,3.18E-07
ADD,32,6,14,63.974401,8.74E-06,0.22,1.99E-08
ADD,32,6,16,70.176001,9.81E-06,0.22,1.24E-09
ADD,32,6,18,76.377601,1.09E-05,0.23,7.75E-11
ADD,32,6,20,82.579201,1.19E-05,0.23,4.85E-12
ADD,32,6,22,89.433601,1.32E-05,0.23,3.03E-13
ADD,32,6,24,95.798402,1.43E-05,0.25,1.89E-14
ADD,32,6,26,102.000002,1.53E-05,0.23,1.17E-15
ADD,32,6,28,108.201602,1.64E-05,0.24,7.06E-17
ADD,32,6,30,114.403202,1.75E-05,0.27,3.79E-18
ADD,32,6,32,120.604802,1.85E-05,0.28,1.08E-19
ADD,32,8,4,36.067201,3.47E-06,0.28,0.020872248
ADD,32,8,6,42.268801,4.53E-06,0.28,0.001305108
ADD,32,8,8,50.918401,5.64E-06,0.29,8.14E-05
ADD,32,8,10,56.793601,6.69E-06,0.29,5.09E-06
ADD,32,8,12,62.995201,7.75E-06,0.29,3.18E-07
ADD,32,8,14,69.196801,8.82E-06,0.29,1.98E-08
ADD,32,8,16,75.398401,9.88E-06,0.29,1.24E-09
ADD,32,8,18,81.600002,1.09E-05,0.29,7.75E-11
ADD,32,8,20,87.801602,1.20E-05,0.29,4.85E-12
ADD,32,8,22,94.656002,1.33E-05,0.29,3.03E-13
ADD,32,8,24,101.020802,1.44E-05,0.29,1.89E-14
ADD,32,8,26,107.222402,1.54E-05,0.29,1.17E-15
ADD,32,8,28,113.424002,1.64E-05,0.29,7.05E-17
ADD,32,8,30,119.625602,1.75E-05,0.29,3.79E-18
ADD,32,8,32,125.827202,1.86E-05,0.29,1.08E-19
ADD,32,10,4,41.289601,3.54E-06,0.34,0.020826343
ADD,32,10,6,47.491201,4.60E-06,0.35,0.001301038
ADD,32,10,8,53.692801,5.67E-06,0.35,8.14E-05
ADD,32,10,10,62.342401,6.77E-06,0.35,5.09E-06
ADD,32,10,12,68.217601,7.83E-06,0.35,3.18E-07
ADD,32,10,14,74.419202,8.89E-06,0.35,1.99E-08
ADD,32,10,16,80.620802,9.95E-06,0.36,1.24E-09
ADD,32,10,18,86.822402,1.10E-05,0.36,7.75E-11
ADD,32,10,20,93.024002,1.21E-05,0.36,4.86E-12
ADD,32,10,22,99.878402,1.34E-05,0.35,3.03E-13
ADD,32,10,24,106.243202,1.45E-05,0.35,1.88E-14
ADD,32,10,26,112.444802,1.54E-05,0.35,1.17E-15
ADD,32,10,28,118.646402,1.65E-05,0.35,7.06E-17
ADD,32,10,30,124.848002,1.76E-05,0.36,3.80E-18
ADD,32,10,32,131.049602,1.87E-05,0.36,1.08E-19
ADD,32,12,4,46.512001,3.61E-06,0.41,0.020832024
ADD,32,12,6,52.713601,4.68E-06,0.41,0.001303899
ADD,32,12,8,58.915202,5.74E-06,0.41,8.13E-05
ADD,32,12,10,65.116802,6.81E-06,0.41,5.09E-06
ADD,32,12,12,73.766402,7.91E-06,0.42,3.18E-07
ADD,32,12,14,79.641602,8.96E-06,0.42,1.99E-08
ADD,32,12,16,85.843202,1.00E-05,0.42,1.24E-09
ADD,32,12,18,92.044802,1.11E-05,0.42,7.77E-11
ADD,32,12,20,98.246402,1.22E-05,0.42,4.86E-12
ADD,32,12,22,105.100802,1.35E-05,0.42,3.03E-13
ADD,32,12,24,111.465602,1.45E-05,0.42,1.89E-14
ADD,32,12,26,117.667202,1.55E-05,0.42,1.17E-15
ADD,32,12,28,123.868802,1.66E-05,0.42,7.05E-17
ADD,32,12,30,130.070402,1.77E-05,0.42,3.80E-18
ADD,32,12,32,136.272002,1.87E-05,0.42,1.08E-19
ADD,32,14,4,51.734402,3.69E-06,0.48,0.020853412
ADD,32,14,6,57.936002,4.75E-06,0.48,0.001300808
ADD,32,14,8,64.137602,5.82E-06,0.48,8.14E-05
ADD,32,14,10,70.339202,6.88E-06,0.48,5.08E-06
ADD,32,14,12,76.540802,7.94E-06,0.48,3.18E-07
ADD,32,14,14,85.190402,9.05E-06,0.49,1.99E-08
ADD,32,14,16,91.065602,1.01E-05,0.49,1.24E-09
ADD,32,14,18,97.267202,1.12E-05,0.49,7.76E-11
ADD,32,14,20,103.468802,1.22E-05,0.49,4.84E-12
ADD,32,14,22,110.323202,1.35E-05,0.49,3.03E-13
ADD,32,14,24,116.688002,1.46E-05,0.49,1.89E-14
ADD,32,14,26,122.889602,1.56E-05,0.48,1.17E-15
ADD,32,14,28,129.091202,1.66E-05,0.48,7.06E-17
ADD,32,14,30,135.292803,1.77E-05,0.49,3.79E-18
ADD,32,14,32,141.494403,1.88E-05,0.49,1.08E-19
ADD,32,16,4,56.956802,3.76E-06,0.54,0.020840394
ADD,32,16,6,63.158402,4.82E-06,0.54,0.001302408
ADD,32,16,8,69.360002,5.89E-06,0.54,8.15E-05
ADD,32,16,10,75.561602,6.95E-06,0.54,5.09E-06
ADD,32,16,12,81.763202,8.02E-06,0.55,3.18E-07
ADD,32,16,14,87.964802,9.08E-06,0.55,1.99E-08
ADD,32,16,16,96.614402,1.02E-05,0.55,1.24E-09
ADD,32,16,18,102.489602,1.12E-05,0.55,7.76E-11
ADD,32,16,20,108.691202,1.23E-05,0.55,4.85E-12
ADD,32,16,22,115.545602,1.36E-05,0.55,3.02E-13
ADD,32,16,24,121.910403,1.47E-05,0.55,1.89E-14
ADD,32,16,26,128.112003,1.57E-05,0.55,1.17E-15
ADD,32,16,28,134.313603,1.67E-05,0.55,7.06E-17
ADD,32,16,30,140.515203,1.78E-05,0.55,3.80E-18
ADD,32,16,32,146.716803,1.89E-05,0.55,1.08E-19
ADD,32,18,4,62.179202,3.83E-06,0.61,0.0208226
ADD,32,18,6,68.380802,4.89E-06,0.61,0.001303235
ADD,32,18,8,74.582402,5.96E-06,0.61,8.14E-05
ADD,32,18,10,80.784002,7.03E-06,0.61,5.08E-06
ADD,32,18,12,86.985602,8.09E-06,0.61,3.18E-07
ADD,32,18,14,93.187202,9.15E-06,0.61,1.99E-08
ADD,32,18,16,99.388802,1.02E-05,0.61,1.24E-09
ADD,32,18,18,108.038402,1.13E-05,0.62,7.75E-11
ADD,32,18,20,113.913603,1.24E-05,0.62,4.85E-12
ADD,32,18,22,120.768003,1.37E-05,0.62,3.03E-13
ADD,32,18,24,127.132803,1.47E-05,0.62,1.89E-14
ADD,32,18,26,133.334403,1.57E-05,0.61,1.17E-15
ADD,32,18,28,139.536003,1.68E-05,0.61,7.06E-17
ADD,32,18,30,145.737603,1.79E-05,0.62,3.79E-18
ADD,32,18,32,151.939203,1.90E-05,0.62,1.09E-19
ADD,32,20,4,67.401602,3.90E-06,0.67,0.020863743
ADD,32,20,6,73.603202,4.97E-06,0.67,0.001303465
ADD,32,20,8,79.804802,6.03E-06,0.67,8.13E-05
ADD,32,20,10,86.006402,7.10E-06,0.68,5.09E-06
ADD,32,20,12,92.208002,8.16E-06,0.68,3.17E-07
ADD,32,20,14,98.409602,9.23E-06,0.68,1.99E-08
ADD,32,20,16,104.611203,1.03E-05,0.68,1.24E-09
ADD,32,20,18,110.812803,1.14E-05,0.68,7.77E-11
ADD,32,20,20,119.462403,1.25E-05,0.69,4.85E-12
ADD,32,20,22,125.990403,1.38E-05,0.68,3.03E-13
ADD,32,20,24,132.355203,1.48E-05,0.68,1.89E-14
ADD,32,20,26,138.556803,1.58E-05,0.68,1.17E-15
ADD,32,20,28,144.758403,1.69E-05,0.68,7.07E-17
ADD,32,20,30,150.960003,1.80E-05,0.68,3.79E-18
ADD,32,20,32,157.161603,1.90E-05,0.68,1.09E-19
ADD,32,22,4,72.624002,3.98E-06,0.74,0.02080571
ADD,32,22,6,78.825602,5.04E-06,0.74,0.001301246
ADD,32,22,8,85.027202,6.11E-06,0.74,8.13E-05
ADD,32,22,10,91.228803,7.17E-06,0.74,5.08E-06
ADD,32,22,12,97.430403,8.23E-06,0.74,3.18E-07
ADD,32,22,14,103.632003,9.30E-06,0.74,1.99E-08
ADD,32,22,16,109.833603,1.04E-05,0.74,1.24E-09
ADD,32,22,18,116.035203,1.14E-05,0.75,7.76E-11
ADD,32,22,20,122.236803,1.25E-05,0.75,4.85E-12
ADD,32,22,22,131.539203,1.38E-05,0.74,3.03E-13
ADD,32,22,24,137.577603,1.49E-05,0.75,1.89E-14
ADD,32,22,26,143.779203,1.59E-05,0.75,1.17E-15
ADD,32,22,28,149.980803,1.69E-05,0.74,7.06E-17
ADD,32,22,30,156.182403,1.80E-05,0.75,3.79E-18
ADD,32,22,32,162.384003,1.91E-05,0.75,1.08E-19
ADD,32,24,4,77.846402,4.05E-06,0.8,0.02081786
ADD,32,24,6,84.048003,5.11E-06,0.8,0.001303223
ADD,32,24,8,90.249603,6.18E-06,0.8,8.13E-05
ADD,32,24,10,96.451203,7.24E-06,0.81,5.09E-06
ADD,32,24,12,102.652803,8.31E-06,0.81,3.18E-07
ADD,32,24,14,108.854403,9.37E-06,0.81,1.99E-08
ADD,32,24,16,115.056003,1.04E-05,0.81,1.24E-09
ADD,32,24,18,121.257603,1.15E-05,0.81,7.76E-11
ADD,32,24,20,127.459203,1.26E-05,0.81,4.85E-12
ADD,32,24,22,134.640003,1.39E-05,0.8,3.03E-13
ADD,32,24,24,143.126403,1.50E-05,0.81,1.89E-14
ADD,32,24,26,149.001603,1.59E-05,0.81,1.17E-15
ADD,32,24,28,155.203203,1.70E-05,0.81,7.07E-17
ADD,32,24,30,161.404803,1.81E-05,0.81,3.79E-18
ADD,32,24,32,167.606404,1.92E-05,0.81,1.08E-19
ADD,32,26,4,83.068803,4.12E-06,0.87,0.020825646
ADD,32,26,6,89.270403,5.18E-06,0.87,0.001300677
ADD,32,26,8,95.472003,6.25E-06,0.87,8.14E-05
ADD,32,26,10,101.673603,7.32E-06,0.87,5.09E-06
ADD,32,26,12,107.875203,8.38E-06,0.87,3.18E-07
ADD,32,26,14,114.076803,9.44E-06,0.87,1.99E-08
ADD,32,26,16,120.278403,1.05E-05,0.87,1.24E-09
ADD,32,26,18,126.480003,1.16E-05,0.88,7.76E-11
ADD,32,26,20,132.681603,1.26E-05,0.88,4.86E-12
ADD,32,26,22,139.862403,1.40E-05,0.87,3.03E-13
ADD,32,26,24,145.900803,1.49E-05,0.87,1.89E-14
ADD,32,26,26,154.550404,1.60E-05,0.88,1.17E-15
ADD,32,26,28,160.425604,1.71E-05,0.87,7.05E-17
ADD,32,26,30,166.627204,1.82E-05,0.88,3.80E-18
ADD,32,26,32,172.828804,1.92E-05,0.88,1.08E-19
ADD,32,28,4,88.291203,4.19E-06,0.93,0.02084729
ADD,32,28,6,94.492803,5.26E-06,0.93,0.001302778
ADD,32,28,8,100.694403,6.32E-06,0.94,8.13E-05
ADD,32,28,10,106.896003,7.39E-06,0.94,5.09E-06
ADD,32,28,12,113.097603,8.45E-06,0.94,3.18E-07
ADD,32,28,14,119.299203,9.52E-06,0.94,1.99E-08
ADD,32,28,16,125.500803,1.06E-05,0.94,1.24E-09
ADD,32,28,18,131.702403,1.16E-05,0.94,7.76E-11
ADD,32,28,20,137.904003,1.27E-05,0.94,4.85E-12
ADD,32,28,22,145.084804,1.41E-05,0.93,3.03E-13
ADD,32,28,24,151.123204,1.50E-05,0.94,1.89E-14
ADD,32,28,26,157.324804,1.61E-05,0.94,1.17E-15
ADD,32,28,28,165.974404,1.72E-05,0.94,7.05E-17
ADD,32,28,30,171.849604,1.83E-05,0.94,3.79E-18
ADD,32,28,32,178.051204,1.93E-05,0.94,1.08E-19
ADD,32,30,4,93.513603,4.26E-06,1,0.020859473
ADD,32,30,6,99.715203,5.33E-06,1,0.001301528
ADD,32,30,8,105.916803,6.40E-06,1,8.16E-05
ADD,32,30,10,112.118403,7.46E-06,1,5.09E-06
ADD,32,30,12,118.320003,8.52E-06,1,3.18E-07
ADD,32,30,14,124.521603,9.59E-06,1,1.99E-08
ADD,32,30,16,130.723204,1.07E-05,1.01,1.24E-09
ADD,32,30,18,136.924804,1.17E-05,1.01,7.75E-11
ADD,32,30,20,143.126404,1.28E-05,1.01,4.85E-12
ADD,32,30,22,150.307204,1.41E-05,1,3.03E-13
ADD,32,30,24,156.508804,1.52E-05,1,1.89E-14
ADD,32,30,26,162.547204,1.62E-05,1,1.17E-15
ADD,32,30,28,168.748804,1.72E-05,1,7.06E-17
ADD,32,30,30,177.561604,1.84E-05,1.01,3.80E-18
ADD,32,30,32,183.436804,1.94E-05,1.01,1.08E-19
ADD,32,32,4,98.736003,4.34E-06,1.06,0.020862262
ADD,32,32,6,104.937603,5.40E-06,1.06,0.001303034
ADD,32,32,8,111.139203,6.47E-06,1.07,8.13E-05
ADD,32,32,10,117.340803,7.53E-06,1.07,5.09E-06
ADD,32,32,12,123.542404,8.60E-06,1.07,3.18E-07
ADD,32,32,14,129.744004,9.66E-06,1.07,1.99E-08
ADD,32,32,16,135.945604,1.07E-05,1.07,1.24E-09
ADD,32,32,18,142.147204,1.18E-05,1.07,7.76E-11
ADD,32,32,20,148.348804,1.29E-05,1.07,4.84E-12
ADD,32,32,22,155.529604,1.42E-05,1.06,3.03E-13
ADD,32,32,24,161.731204,1.52E-05,1.07,1.89E-14
ADD,32,32,26,167.769604,1.62E-05,1.07,1.17E-15
ADD,32,32,28,173.971204,1.73E-05,1.07,7.06E-17
ADD,32,32,30,180.172804,1.83E-05,1.07,3.80E-18
ADD,32,32,32,188.985604,1.95E-05,1.08,1.09E-19
MUL,4,4,4,47.491201,3.66E-06,0.23,0.015914616
MUL,4,4,6,59.241601,4.78E-06,0.27,0.000549324
MUL,4,4,8,67.891201,5.78E-06,0.28,0
MUL,6,4,6,73.440001,4.77E-06,0.33,0.000995167
MUL,6,4,8,83.232001,6.00E-06,0.35,3.43E-05
MUL,6,4,10,92.371201,7.13E-06,0.36,0
MUL,6,6,6,105.590402,5.18E-06,0.48,0.001194641
MUL,6,6,8,112.771202,6.42E-06,0.48,6.22E-05
MUL,6,6,10,122.726402,7.58E-06,0.48,2.14E-06
MUL,6,6,12,132.028802,8.69E-06,0.48,0
MUL,8,4,8,96.614401,5.99E-06,0.38,6.22E-05
MUL,8,4,10,105.590401,7.08E-06,0.41,2.14E-06
MUL,8,4,12,114.566401,8.35E-06,0.41,0
MUL,8,6,8,134.313602,6.57E-06,0.56,7.48E-05
MUL,8,6,10,145.248002,8.17E-06,0.57,3.88E-06
MUL,8,6,12,154.876802,9.28E-06,0.57,1.34E-07
MUL,8,6,14,164.342403,1.04E-05,0.57,0
MUL,8,8,8,177.888003,7.29E-06,0.66,7.93E-05
MUL,8,8,10,185.068803,8.53E-06,0.65,4.66E-06
MUL,8,8,12,193.065603,9.77E-06,0.65,2.43E-07
MUL,8,8,14,202.694403,1.09E-05,0.65,8.39E-09
MUL,8,8,16,212.160003,1.22E-05,0.66,0
MUL,10,4,10,119.462402,7.18E-06,0.43,3.89E-06
MUL,10,4,12,129.417602,8.44E-06,0.43,1.34E-07
MUL,10,4,14,138.556802,9.56E-06,0.44,0
MUL,10,6,10,167.116802,7.99E-06,0.66,4.67E-06
MUL,10,6,12,178.051203,9.61E-06,0.67,2.43E-07
MUL,10,6,14,187.680003,1.07E-05,0.66,8.38E-09
MUL,10,6,16,197.145603,1.19E-05,0.67,0
MUL,10,8,10,218.198403,8.67E-06,0.75,4.96E-06
MUL,10,8,12,226.195203,1.03E-05,0.75,2.92E-07
MUL,10,8,14,234.192004,1.16E-05,0.74,1.52E-08
MUL,10,8,16,243.820804,1.29E-05,0.74,5.24E-10
MUL,10,8,18,253.286404,1.41E-05,0.75,0
MUL,10,10,10,268.137604,9.60E-06,0.82,5.04E-06
MUL,10,10,12,274.828804,1.09E-05,0.82,3.10E-07
MUL,10,10,14,282.009604,1.22E-05,0.81,1.82E-08
MUL,10,10,16,290.006405,1.37E-05,0.76,9.50E-10
MUL,10,10,18,299.635205,1.48E-05,0.76,3.28E-11
MUL,10,10,20,309.100805,1.60E-05,0.77,0
MUL,12,4,12,147.369602,8.27E-06,0.5,2.43E-07
MUL,12,4,14,156.835203,9.30E-06,0.55,8.40E-09
MUL,12,4,16,166.137603,1.04E-05,0.55,0
MUL,12,6,12,211.507204,9.32E-06,0.71,2.92E-07
MUL,12,6,14,222.768003,1.11E-05,0.72,1.52E-08
MUL,12,6,16,230.928004,1.23E-05,0.73,5.24E-10
MUL,12,6,18,239.904004,1.35E-05,0.73,0
MUL,12,8,12,277.113605,1.02E-05,0.76,3.09E-07
MUL,12,8,14,283.968005,1.18E-05,0.81,1.82E-08
MUL,12,8,16,291.964805,1.32E-05,0.81,9.48E-10
MUL,12,8,18,300.124805,1.44E-05,0.82,3.28E-11
MUL,12,8,20,309.590405,1.54E-05,0.84,0
MUL,12,10,12,339.782406,1.12E-05,0.86,3.16E-07
MUL,12,10,14,346.473606,1.24E-05,0.87,1.93E-08
MUL,12,10,16,352.838406,1.35E-05,0.86,1.14E-09
MUL,12,10,18,361.324806,1.49E-05,0.88,5.93E-11
MUL,12,10,20,369.158406,1.60E-05,0.88,2.05E-12
MUL,12,10,22,377.971207,1.71E-05,0.88,0
MUL,12,12,12,404.899207,1.23E-05,0.92,3.17E-07
MUL,12,12,14,410.937608,1.32E-05,0.93,1.97E-08
MUL,12,12,16,416.812808,1.41E-05,0.93,1.21E-09
MUL,12,12,18,423.177608,1.51E-05,0.93,7.12E-11
MUL,12,12,20,437.376009,1.65E-05,0.93,3.71E-12
MUL,12,12,22,445.699209,1.79E-05,0.93,1.28E-13
MUL,12,12,24,447.820809,1.86E-05,0.94,0
MUL,14,4,14,171.033603,9.44E-06,0.56,1.52E-08
MUL,14,4,16,180.499203,1.05E-05,0.61,5.25E-10
MUL,14,4,18,189.801603,1.16E-05,0.61,0
MUL,14,6,14,241.209604,1.04E-05,0.78,1.83E-08
MUL,14,6,16,252.144004,1.23E-05,0.79,9.48E-10
MUL,14,6,18,260.140804,1.37E-05,0.79,3.28E-11
MUL,14,6,20,269.280005,1.46E-05,0.79,0
MUL,14,8,14,315.139206,1.15E-05,0.85,1.94E-08
MUL,14,8,16,323.625606,1.32E-05,0.86,1.14E-09
MUL,14,8,18,331.459206,1.47E-05,0.86,5.94E-11
MUL,14,8,20,339.292806,1.58E-05,0.86,2.05E-12
MUL,14,8,22,349.574406,1.73E-05,0.86,0
MUL,14,10,14,393.638407,1.27E-05,0.97,1.97E-08
MUL,14,10,16,396.576008,1.43E-05,0.91,1.21E-09
MUL,14,10,18,403.430408,1.54E-05,0.91,7.13E-11
MUL,14,10,20,411.590407,1.68E-05,0.92,3.71E-12
MUL,14,10,22,419.913607,1.84E-05,0.92,1.28E-13
MUL,14,10,24,428.726408,1.91E-05,0.91,0
MUL,14,12,14,461.529608,1.38E-05,0.96,1.98E-08
MUL,14,12,16,469.689609,1.51E-05,0.97,1.23E-09
MUL,14,12,18,476.544009,1.62E-05,0.97,7.56E-11
MUL,14,12,20,483.398409,1.73E-05,0.97,4.46E-12
MUL,14,12,22,499.39201,1.89E-05,0.98,2.32E-13
MUL,14,12,24,507.38881,2.01E-05,0.98,7.98E-15
MUL,14,12,26,508.531209,2.10E-05,0.97,0
MUL,14,14,14,535.94881,1.48E-05,1.03,1.98E-08
MUL,14,14,16,542.80321,1.59E-05,1.03,1.24E-09
MUL,14,14,18,549.65761,1.70E-05,1.03,7.70E-11
MUL,14,14,20,556.51201,1.81E-05,1.04,4.72E-12
MUL,14,14,22,563.85601,1.94E-05,1.03,2.78E-13
MUL,14,14,24,579.360011,2.07E-05,1.03,1.45E-14
MUL,14,14,26,587.356811,2.18E-05,1.03,5.00E-16
MUL,14,14,28,588.499211,2.27E-05,1.03,0
MUL,16,4,16,194.534403,1.06E-05,0.6,9.48E-10
MUL,16,4,18,204.163203,1.17E-05,0.67,3.27E-11
MUL,16,4,20,213.465604,1.28E-05,0.67,0
MUL,16,6,16,274.665605,1.17E-05,0.86,1.14E-09
MUL,16,6,18,285.436805,1.37E-05,0.86,5.95E-11
MUL,16,6,20,293.433605,1.51E-05,0.87,2.05E-12
MUL,16,6,22,303.062405,1.62E-05,0.87,0
MUL,16,8,16,358.224007,1.30E-05,0.93,1.21E-09
MUL,16,8,18,366.547207,1.46E-05,0.93,7.12E-11
MUL,16,8,20,374.217607,1.62E-05,0.93,3.70E-12
MUL,16,8,22,382.540807,1.76E-05,0.93,1.28E-13
MUL,16,8,24,392.332807,1.87E-05,0.93,0
MUL,16,10,16,440.476808,1.42E-05,0.98,1.23E-09
MUL,16,10,18,448.800009,1.59E-05,0.99,7.56E-11
MUL,16,10,20,455.654409,1.70E-05,0.98,4.45E-12
MUL,16,10,22,464.304008,1.87E-05,0.99,2.32E-13
MUL,16,10,24,472.137608,1.99E-05,1,8.00E-15
MUL,16,10,26,480.950409,2.07E-05,0.98,0
MUL,16,12,16,523.219209,1.56E-05,1.05,1.24E-09
MUL,16,12,18,531.37921,1.73E-05,1.05,7.70E-11
MUL,16,12,20,538.23361,1.84E-05,1.05,4.72E-12
MUL,16,12,22,545.57761,1.97E-05,1.05,2.78E-13
MUL,16,12,24,553.57441,2.10E-05,1.06,1.45E-14
MUL,16,12,26,561.24481,2.25E-05,1.06,5.00E-16
MUL,16,12,28,570.220811,2.33E-05,1.05,0
MUL,16,14,16,605.635211,1.67E-05,1.11,1.24E-09
MUL,16,14,18,613.958411,1.80E-05,1.11,7.75E-11
MUL,16,14,20,620.649611,1.90E-05,1.11,4.81E-12
MUL,16,14,22,627.993611,2.03E-05,1.11,2.95E-13
MUL,16,14,24,634.848012,2.13E-05,1.11,1.74E-14
MUL,16,14,26,642.192012,2.24E-05,1.11,9.05E-16
MUL,16,14,28,650.188812,2.36E-05,1.11,3.12E-17
MUL,16,14,30,659.817612,2.49E-05,1.11,0
MUL,16,16,16,689.683212,1.80E-05,1.17,1.24E-09
MUL,16,16,18,696.537612,1.90E-05,1.17,7.76E-11
MUL,16,16,20,703.392012,2.01E-05,1.17,4.85E-12
MUL,16,16,22,710.736013,2.14E-05,1.17,3.01E-13
MUL,16,16,24,717.427213,2.24E-05,1.17,1.85E-14
MUL,16,16,26,724.281613,2.35E-05,1.17,1.08E-15
MUL,16,16,28,741.417613,2.51E-05,1.17,5.66E-17
MUL,16,16,30,749.414414,2.64E-05,1.17,1.96E-18
MUL,16,16,32,749.251213,2.73E-05,1.18,0
MUL,18,4,18,218.198404,1.18E-05,0.66,5.93E-11
MUL,18,4,20,227.827204,1.28E-05,0.73,2.04E-12
MUL,18,4,22,237.619204,1.41E-05,0.73,0
MUL,18,6,18,307.958406,1.30E-05,0.94,7.11E-11
MUL,18,6,20,318.729605,1.50E-05,0.94,3.71E-12
MUL,18,6,22,327.216005,1.68E-05,0.95,1.28E-13
MUL,18,6,24,336.355206,1.74E-05,0.95,0
MUL,18,8,18,400.656008,1.47E-05,1,7.55E-11
MUL,18,8,20,409.305608,1.61E-05,1.01,4.46E-12
MUL,18,8,22,417.955208,1.79E-05,1.01,2.31E-13
MUL,18,8,24,425.299208,1.91E-05,1.01,7.99E-15
MUL,18,8,26,435.091208,2.02E-05,1.01,0
MUL,18,10,18,492.537609,1.58E-05,1.05,7.70E-11
MUL,18,10,20,501.02401,1.75E-05,1.06,4.72E-12
MUL,18,10,22,508.36801,1.88E-05,1.06,2.78E-13
MUL,18,10,24,516.528009,2.01E-05,1.07,1.45E-14
MUL,18,10,26,524.361609,2.16E-05,1.07,5.00E-16
MUL,18,10,28,533.17441,2.24E-05,1.06,0
MUL,18,12,18,538.886405,1.70E-05,1.22,7.73E-11
MUL,18,12,20,548.188805,1.80E-05,1.22,4.81E-12
MUL,18,12,22,555.532805,1.89E-05,1.21,2.95E-13
MUL,18,12,24,565.977604,2.01E-05,1.2,1.74E-14
MUL,18,12,26,575.116804,2.22E-05,1.22,9.07E-16
MUL,18,12,28,590.457604,2.35E-05,1.23,3.12E-17
MUL,18,12,30,596.332804,2.46E-05,1.22,0
MUL,18,14,18,676.953612,1.85E-05,1.2,7.76E-11
MUL,18,14,20,685.113612,2.03E-05,1.19,4.84E-12
MUL,18,14,22,692.457613,2.16E-05,1.19,3.01E-13
MUL,18,14,24,699.148813,2.26E-05,1.19,1.84E-14
MUL,18,14,26,706.003213,2.37E-05,1.19,1.09E-15
MUL,18,14,28,714.000012,2.52E-05,1.19,5.65E-17
MUL,18,14,30,721.344012,2.65E-05,1.2,1.96E-18
MUL,18,14,32,730.972813,2.74E-05,1.19,0
MUL,18,16,18,768.835213,2.00E-05,1.26,7.74E-11
MUL,18,16,20,776.995214,2.12E-05,1.25,4.84E-12
MUL,18,16,22,784.339214,2.25E-05,1.25,3.02E-13
MUL,18,16,24,791.193614,2.35E-05,1.25,1.88E-14
MUL,18,16,26,797.884814,2.46E-05,1.25,1.15E-15
MUL,18,16,28,804.739214,2.57E-05,1.25,6.79E-17
MUL,18,16,30,823.180815,2.74E-05,1.25,3.53E-18
MUL,18,16,32,831.177615,2.87E-05,1.25,1.22E-19
MUL,18,18,18,782.380817,1.97E-05,1.42,7.76E-11
MUL,18,18,20,789.888018,2.16E-05,1.41,4.85E-12
MUL,18,18,22,797.232018,2.42E-05,1.5,3.03E-13
MUL,18,18,24,807.350418,2.58E-05,1.44,1.89E-14
MUL,18,18,26,813.552018,2.79E-05,1.48,1.18E-15
MUL,18,18,28,819.427218,2.86E-05,1.5,7.21E-17
MUL,18,18,30,831.667218,2.95E-05,1.42,4.24E-18
MUL,18,18,32,843.254419,3.09E-05,1.38,2.21E-19
MUL,20,4,20,241.862404,1.29E-05,0.72,3.71E-12
MUL,20,4,22,251.980804,1.42E-05,0.79,1.28E-13
MUL,20,4,24,262.262404,1.53E-05,0.79,0
MUL,20,6,20,341.088006,1.43E-05,1.02,4.45E-12
MUL,20,6,22,352.512006,1.66E-05,1.02,2.32E-13
MUL,20,6,24,360.508806,1.81E-05,1.02,7.98E-15
MUL,20,6,26,369.648006,1.88E-05,1.02,0
MUL,20,8,20,443.414409,1.62E-05,1.08,4.72E-12
MUL,20,8,22,452.553609,1.78E-05,1.09,2.78E-13
MUL,20,8,24,460.713608,1.94E-05,1.09,1.45E-14
MUL,20,8,26,468.057608,2.06E-05,1.09,5.00E-16
MUL,20,8,28,477.849609,2.19E-05,1.09,0
MUL,20,10,20,544.92481,1.74E-05,1.14,4.82E-12
MUL,20,10,22,553.737611,1.93E-05,1.15,2.95E-13
MUL,20,10,24,560.592011,2.03E-05,1.15,1.74E-14
MUL,20,10,26,568.75201,2.18E-05,1.15,9.06E-16
MUL,20,10,28,576.58561,2.34E-05,1.15,3.12E-17
MUL,20,10,30,585.724811,2.42E-05,1.14,0
MUL,20,12,20,596.332804,1.87E-05,1.3,4.84E-12
MUL,20,12,22,606.288004,2.00E-05,1.3,3.01E-13
MUL,20,12,24,612.816004,2.05E-05,1.3,1.85E-14
MUL,20,12,26,623.913604,2.19E-05,1.28,1.09E-15
MUL,20,12,28,632.889605,2.39E-05,1.28,5.65E-17
MUL,20,12,30,648.067205,2.53E-05,1.31,1.95E-18
MUL,20,12,32,654.595205,2.65E-05,1.29,0
MUL,20,14,20,748.108813,2.04E-05,1.28,4.85E-12
MUL,20,14,22,756.921614,2.24E-05,1.27,3.02E-13
MUL,20,14,24,763.776014,2.34E-05,1.27,1.88E-14
MUL,20,14,26,770.467214,2.44E-05,1.27,1.15E-15
MUL,20,14,28,777.321614,2.55E-05,1.27,6.80E-17
MUL,20,14,30,785.644813,2.72E-05,1.27,3.54E-18
MUL,20,14,32,792.988813,2.87E-05,1.27,1.22E-19
MUL,20,16,20,849.292815,2.19E-05,1.34,4.85E-12
MUL,20,16,22,858.105615,2.40E-05,1.34,3.03E-13
MUL,20,16,24,864.796815,2.49E-05,1.33,1.89E-14
MUL,20,16,26,871.814416,2.61E-05,1.34,1.17E-15
MUL,20,16,28,878.505616,2.71E-05,1.33,7.20E-17
MUL,20,16,30,885.360016,2.82E-05,1.33,4.25E-18
MUL,20,16,32,893.683215,2.99E-05,1.33,2.21E-19
MUL,20,18,20,860.553619,2.22E-05,1.51,4.85E-12
MUL,20,18,22,869.69282,2.36E-05,1.51,3.03E-13
MUL,20,18,24,878.505619,2.48E-05,1.59,1.89E-14
MUL,20,18,26,888.78722,2.60E-05,1.54,1.18E-15
MUL,20,18,28,894.17282,2.97E-05,1.58,7.34E-17
MUL,20,18,30,900.70082,2.83E-05,1.59,4.50E-18
MUL,20,18,32,911.30882,2.88E-05,1.51,2.65E-19
MUL,20,20,20,1053.456018,2.50E-05,1.46,4.85E-12
MUL,20,20,22,1060.800018,2.63E-05,1.46,3.03E-13
MUL,20,20,24,1067.654418,2.73E-05,1.46,1.90E-14
MUL,20,20,26,1074.508818,2.84E-05,1.46,1.18E-15
MUL,20,20,28,1081.363219,2.94E-05,1.46,7.37E-17
MUL,20,20,30,1088.544019,3.07E-05,1.46,4.59E-18
MUL,20,20,32,1095.398419,3.18E-05,1.45,2.82E-19
MUL,22,4,22,267.158404,1.43E-05,0.78,2.32E-13
MUL,22,4,24,277.440005,1.54E-05,0.86,8.01E-15
MUL,22,4,26,287.884805,1.65E-05,0.84,0
MUL,22,6,22,378.297607,1.57E-05,1.09,2.78E-13
MUL,22,6,24,389.232006,1.75E-05,1.1,1.45E-14
MUL,22,6,26,397.718407,1.91E-05,1.09,5.00E-16
MUL,22,6,28,407.510407,2.00E-05,1.11,0
MUL,22,8,22,492.048009,1.75E-05,1.15,2.95E-13
MUL,22,8,24,500.371209,1.90E-05,1.16,1.74E-14
MUL,22,8,26,508.531209,2.05E-05,1.16,9.06E-16
MUL,22,8,28,517.180809,2.17E-05,1.17,3.12E-17
MUL,22,8,30,526.809609,2.29E-05,1.15,0
MUL,22,10,22,603.513611,1.88E-05,1.23,3.01E-13
MUL,22,10,24,612.000012,2.04E-05,1.24,1.85E-14
MUL,22,10,26,618.691212,2.14E-05,1.23,1.09E-15
MUL,22,10,28,627.667211,2.30E-05,1.21,5.67E-17
MUL,22,10,30,633.705611,2.46E-05,1.22,1.95E-18
MUL,22,10,32,643.334412,2.55E-05,1.21,0
MUL,22,12,22,658.185605,2.09E-05,1.35,3.03E-13
MUL,22,12,24,666.672005,2.19E-05,1.34,1.88E-14
MUL,22,12,26,674.668804,2.25E-05,1.31,1.15E-15
MUL,22,12,28,684.950404,2.37E-05,1.3,6.80E-17
MUL,22,12,30,698.006405,2.61E-05,1.34,3.54E-18
MUL,22,12,32,714.163205,2.74E-05,1.3,1.22E-19
MUL,22,14,22,828.403215,2.23E-05,1.37,3.03E-13
MUL,22,14,24,836.889615,2.40E-05,1.36,1.89E-14
MUL,22,14,26,843.744015,2.51E-05,1.36,1.18E-15
MUL,22,14,28,850.435216,2.62E-05,1.35,7.22E-17
MUL,22,14,30,857.616016,2.74E-05,1.35,4.25E-18
MUL,22,14,32,865.939215,2.88E-05,1.35,2.21E-19
MUL,22,16,22,940.684816,2.40E-05,1.43,3.03E-13
MUL,22,16,24,949.171217,2.57E-05,1.42,1.89E-14
MUL,22,16,26,955.862417,2.68E-05,1.42,1.18E-15
MUL,22,16,28,962.716817,2.79E-05,1.42,7.34E-17
MUL,22,16,30,969.571217,2.89E-05,1.42,4.51E-18
MUL,22,16,32,976.752018,3.02E-05,1.41,2.66E-19
MUL,22,18,22,943.459221,2.49E-05,1.55,3.03E-13
MUL,22,18,24,951.945621,2.60E-05,1.55,1.90E-14
MUL,22,18,26,961.24802,2.70E-05,1.72,1.18E-15
MUL,22,18,28,971.203221,2.84E-05,1.66,7.37E-17
MUL,22,18,30,976.915221,3.28E-05,1.71,4.59E-18
MUL,22,18,32,983.932821,3.04E-05,1.71,2.82E-19
MUL,22,20,22,1048.560026,2.66E-05,1.62,3.03E-13
MUL,22,20,24,1058.025626,2.79E-05,1.64,1.89E-14
MUL,22,20,26,1064.227226,2.98E-05,1.6,1.18E-15
MUL,22,20,28,1071.408026,3.01E-05,1.66,7.39E-17
MUL,22,20,30,1081.526426,3.19E-05,1.65,4.61E-18
MUL,22,20,32,1086.748827,3.48E-05,1.6,2.87E-19
MUL,22,22,22,1279.324822,2.90E-05,1.6,3.04E-13
MUL,22,22,24,1286.179222,3.00E-05,1.6,1.90E-14
MUL,22,22,26,1293.033622,3.11E-05,1.6,1.18E-15
MUL,22,22,28,1299.888022,3.21E-05,1.6,7.41E-17
MUL,22,22,30,1306.742422,3.32E-05,1.61,4.62E-18
MUL,22,22,32,1313.923222,3.45E-05,1.6,2.88E-19
MUL,24,4,24,293.433605,1.55E-05,0.77,1.45E-14
MUL,24,4,26,302.899205,1.65E-05,0.82,4.99E-16
MUL,24,4,28,312.528005,1.76E-05,0.81,0
MUL,24,6,24,411.590408,1.73E-05,1.16,1.74E-14
MUL,24,6,26,423.830407,1.88E-05,1.15,9.04E-16
MUL,24,6,28,431.664007,2.05E-05,1.17,3.12E-17
MUL,24,6,30,440.313607,2.16E-05,1.16,0
MUL,24,8,24,537.580809,1.93E-05,1.23,1.84E-14
MUL,24,8,26,545.41441,2.08E-05,1.24,1.09E-15
MUL,24,8,28,554.39041,2.27E-05,1.24,5.67E-17
MUL,24,8,30,562.38721,2.38E-05,1.24,1.95E-18
MUL,24,8,32,571.36321,2.52E-05,1.23,0
MUL,24,10,24,658.838412,2.05E-05,1.25,1.88E-14
MUL,24,10,26,667.651213,2.22E-05,1.29,1.15E-15
MUL,24,10,28,674.832013,2.34E-05,1.29,6.79E-17
MUL,24,10,30,682.992012,2.51E-05,1.31,3.53E-18
MUL,24,10,32,691.478412,2.69E-05,1.3,1.22E-19
MUL,24,12,24,717.100805,2.25E-05,1.43,1.89E-14
MUL,24,12,26,726.240005,2.35E-05,1.38,1.17E-15
MUL,24,12,28,733.257605,2.41E-05,1.43,7.21E-17
MUL,24,12,30,742.723204,2.53E-05,1.39,4.25E-18
MUL,24,12,32,753.984005,2.76E-05,1.4,2.21E-19
MUL,24,14,24,904.291216,2.41E-05,1.39,1.89E-14
MUL,24,14,26,912.940817,2.58E-05,1.41,1.18E-15
MUL,24,14,28,919.795217,2.69E-05,1.41,7.35E-17
MUL,24,14,30,926.976017,2.84E-05,1.41,4.50E-18
MUL,24,14,32,933.830417,2.95E-05,1.4,2.66E-19
MUL,24,16,24,1026.201618,2.60E-05,1.46,1.89E-14
MUL,24,16,26,1034.524818,2.78E-05,1.47,1.18E-15
MUL,24,16,28,1041.542419,2.90E-05,1.47,7.39E-17
MUL,24,16,30,1048.396819,3.01E-05,1.47,4.59E-18
MUL,24,16,32,1055.577619,3.13E-05,1.47,2.82E-19
MUL,24,18,24,1030.118422,2.74E-05,1.58,1.89E-14
MUL,24,18,26,1038.604822,2.84E-05,1.58,1.19E-15
MUL,24,18,28,1046.601622,2.89E-05,1.59,7.39E-17
MUL,24,18,30,1056.720022,3.00E-05,1.67,4.61E-18
MUL,24,18,32,1062.105623,3.51E-05,1.59,2.87E-19
MUL,24,20,24,1143.542428,2.95E-05,1.62,1.90E-14
MUL,24,20,26,1153.660828,3.05E-05,1.74,1.18E-15
MUL,24,20,28,1159.372829,3.34E-05,1.64,7.40E-17
MUL,24,20,30,1166.880028,3.32E-05,1.66,4.62E-18
MUL,24,20,32,1177.161629,3.45E-05,1.74,2.88E-19
MUL,24,22,24,1393.728024,3.13E-05,1.65,1.90E-14
MUL,24,22,26,1402.051224,3.27E-05,1.66,1.18E-15
MUL,24,22,28,1408.905624,3.38E-05,1.66,7.41E-17
MUL,24,22,30,1415.760024,3.50E-05,1.66,4.63E-18
MUL,24,22,32,1422.940824,3.63E-05,1.66,2.89E-19
MUL,24,24,24,1347.868833,3.21E-05,2,1.89E-14
MUL,24,24,26,1353.254433,3.32E-05,1.77,1.18E-15
MUL,24,24,28,1361.740833,3.47E-05,1.77,7.40E-17
MUL,24,24,30,1371.369634,3.64E-05,1.86,4.63E-18
MUL,24,24,32,1377.408034,3.87E-05,1.77,2.90E-19
MUL,26,4,26,317.260805,1.67E-05,0.9,9.06E-16
MUL,26,4,28,326.889605,1.77E-05,0.87,3.12E-17
MUL,26,4,30,336.355206,1.89E-05,0.93,0
MUL,26,6,26,446.352007,1.90E-05,1.24,1.09E-15
MUL,26,6,28,457.449609,2.03E-05,1.24,5.65E-17
MUL,26,6,30,465.609608,2.19E-05,1.22,1.95E-18
MUL,26,6,32,474.422408,2.30E-05,1.22,0
MUL,26,8,26,580.01281,2.02E-05,1.28,1.15E-15
MUL,26,8,28,588.17281,2.27E-05,1.28,6.80E-17
MUL,26,8,30,596.332811,2.43E-05,1.3,3.54E-18
MUL,26,8,32,603.840011,2.54E-05,1.3,1.22E-19
MUL,26,10,26,711.388813,2.14E-05,1.32,1.17E-15
MUL,26,10,28,719.548814,2.31E-05,1.34,7.21E-17
MUL,26,10,30,726.403214,2.52E-05,1.33,4.24E-18
MUL,26,10,32,735.216013,2.69E-05,1.37,2.21E-19
MUL,26,12,26,773.731205,2.42E-05,1.46,1.18E-15
MUL,26,12,28,783.686405,2.54E-05,1.46,7.34E-17
MUL,26,12,30,790.214405,2.59E-05,1.48,4.51E-18
MUL,26,12,32,798.048004,2.72E-05,1.45,2.65E-19
MUL,26,14,26,974.630417,2.45E-05,1.45,1.18E-15
MUL,26,14,28,982.953618,2.64E-05,1.47,7.39E-17
MUL,26,14,30,990.134418,2.93E-05,1.47,4.59E-18
MUL,26,14,32,996.988818,3.04E-05,1.47,2.81E-19
MUL,26,16,26,1106.169619,2.61E-05,1.53,1.18E-15
MUL,26,16,28,1114.656019,2.80E-05,1.53,7.40E-17
MUL,26,16,30,1121.34722,3.11E-05,1.53,4.61E-18
MUL,26,16,32,1128.52802,3.24E-05,1.53,2.87E-19
MUL,26,18,26,1111.065624,2.96E-05,1.68,1.19E-15
MUL,26,18,28,1119.225624,3.07E-05,1.69,7.39E-17
MUL,26,18,30,1127.875223,3.12E-05,1.69,4.61E-18
MUL,26,18,32,1138.646424,3.24E-05,1.67,2.89E-19
MUL,26,20,26,1232.16003,3.19E-05,1.74,1.19E-15
MUL,26,20,28,1242.93123,3.30E-05,1.72,7.41E-17
MUL,26,20,30,1248.316831,3.67E-05,1.75,4.62E-18
MUL,26,20,32,1256.476831,3.56E-05,1.76,2.89E-19
MUL,26,22,26,1501.440025,3.10E-05,1.72,1.18E-15
MUL,26,22,28,1509.600025,3.61E-05,1.73,7.39E-17
MUL,26,22,30,1516.454425,3.71E-05,1.73,4.63E-18
MUL,26,22,32,1523.308826,3.82E-05,1.73,2.89E-19
MUL,26,24,26,1449.379236,3.48E-05,1.9,1.18E-15
MUL,26,24,28,1457.539236,3.60E-05,1.89,7.40E-17
MUL,26,24,30,1466.188836,3.61E-05,1.93,4.63E-18
MUL,26,24,32,1475.328036,3.72E-05,1.91,2.89E-19
MUL,26,26,26,1552.684811,3.39E-05,1.9,1.19E-15
MUL,26,26,28,1562.313612,3.55E-05,1.9,7.40E-17
MUL,26,26,30,1567.699212,3.81E-05,1.89,4.63E-18
MUL,26,26,32,1575.532812,3.86E-05,1.91,2.89E-19
MUL,28,4,28,341.088006,1.78E-05,0.86,5.66E-17
MUL,28,4,30,350.716806,1.89E-05,1.01,1.95E-18
MUL,28,4,32,360.182406,2.00E-05,1,0
MUL,28,6,28,479.971209,2.01E-05,1.3,6.80E-17
MUL,28,6,30,491.395209,2.17E-05,1.3,3.54E-18
MUL,28,6,32,499.228808,2.33E-05,1.3,1.22E-19
MUL,28,8,28,623.260811,2.27E-05,1.36,7.20E-17
MUL,28,8,30,631.420811,2.43E-05,1.36,4.24E-18
MUL,28,8,32,639.254411,2.58E-05,1.39,2.21E-19
MUL,28,10,28,764.102414,2.42E-05,1.4,7.34E-17
MUL,28,10,30,772.262415,2.58E-05,1.43,4.51E-18
MUL,28,10,32,779.116815,2.70E-05,1.41,2.65E-19
MUL,28,12,28,831.177605,2.60E-05,1.53,7.39E-17
MUL,28,12,30,840.643205,2.71E-05,1.53,4.59E-18
MUL,28,12,32,845.376004,2.77E-05,1.55,2.81E-19
MUL,28,14,28,1045.785618,2.83E-05,1.54,7.40E-17
MUL,28,14,30,1054.108819,3.01E-05,1.55,4.62E-18
MUL,28,14,32,1061.12642,3.06E-05,1.56,2.87E-19
MUL,28,16,28,1186.79042,2.87E-05,1.61,7.40E-17
MUL,28,16,30,1194.787222,3.16E-05,1.62,4.62E-18
MUL,28,16,32,1201.968022,3.29E-05,1.62,2.88E-19
MUL,28,18,28,1190.544025,3.19E-05,1.75,7.41E-17
MUL,28,18,30,1199.356825,3.32E-05,1.74,4.63E-18
MUL,28,18,32,1207.190425,3.34E-05,1.77,2.89E-19
MUL,28,20,28,1320.940832,3.38E-05,1.81,7.39E-17
MUL,28,20,30,1331.548833,3.52E-05,1.81,4.63E-18
MUL,28,20,32,1337.260833,3.94E-05,1.81,2.89E-19
MUL,28,22,28,1621.718427,3.28E-05,1.79,7.40E-17
MUL,28,22,30,1625.961629,3.83E-05,1.81,4.63E-18
MUL,28,22,32,1625.472029,3.93E-05,1.8,2.89E-19
MUL,28,24,28,1545.014437,3.73E-05,1.96,7.41E-17
MUL,28,24,30,1553.664037,3.83E-05,1.97,4.63E-18
MUL,28,24,32,1562.150437,3.84E-05,1.99,2.89E-19
MUL,28,26,28,1658.764812,3.69E-05,1.99,7.40E-17
MUL,28,26,30,1669.862412,3.71E-05,2,4.63E-18
MUL,28,26,32,1675.411212,4.00E-05,1.99,2.89E-19
MUL,28,28,28,1837.305648,4.27E-05,2.23,7.41E-17
MUL,28,28,30,1835.836844,4.20E-05,2.05,4.63E-18
MUL,28,28,32,1847.424045,4.51E-05,2.23,2.89E-19
MUL,30,4,30,364.752006,1.90E-05,0.91,3.54E-18
MUL,30,4,32,374.544006,2.01E-05,0.96,1.22E-19
MUL,30,6,30,513.590408,2.19E-05,1.35,4.24E-18
MUL,30,6,32,524.85121,2.30E-05,1.38,2.21E-19
MUL,30,8,30,665.856013,2.36E-05,1.43,4.50E-18
MUL,30,8,32,674.016013,2.52E-05,1.43,2.66E-19
MUL,30,10,30,816.816015,2.57E-05,1.49,4.59E-18
MUL,30,10,32,824.649616,2.74E-05,1.49,2.82E-19
MUL,30,12,30,887.481605,2.78E-05,1.63,4.61E-18
MUL,30,12,32,897.110405,2.88E-05,1.61,2.87E-19
MUL,30,14,30,1118.24642,3.01E-05,1.63,4.62E-18
MUL,30,14,32,1126.73282,3.19E-05,1.62,2.89E-19
MUL,30,16,30,1268.064022,3.22E-05,1.67,4.62E-18
MUL,30,16,32,1276.387222,3.41E-05,1.68,2.89E-19
MUL,30,18,30,1272.796827,3.39E-05,1.83,4.62E-18
MUL,30,18,32,1281.283227,3.50E-05,1.83,2.89E-19
MUL,30,20,30,1411.843235,3.64E-05,1.88,4.63E-18
MUL,30,20,32,1422.288035,3.74E-05,1.89,2.89E-19
MUL,30,22,30,1719.475228,3.88E-05,1.88,4.62E-18
MUL,30,22,32,1727.961629,4.09E-05,1.89,2.89E-19
MUL,30,24,30,1649.625639,3.99E-05,2.05,4.63E-18
MUL,30,24,32,1658.438439,4.12E-05,2.05,2.90E-19
MUL,30,26,30,1794.710446,4.23E-05,2.26,4.62E-18
MUL,30,26,32,1803.523246,4.10E-05,2.11,2.89E-19
MUL,30,28,30,1943.875242,4.31E-05,2.11,4.63E-18
MUL,30,28,32,1952.198442,4.48E-05,2.1,2.89E-19
MUL,30,30,30,2015.520011,4.14E-05,2.26,4.63E-18
MUL,30,30,32,2022.700812,4.37E-05,2.27,2.89E-19
MUL,32,4,32,388.416006,2.02E-05,0.98,2.21E-19
MUL,32,6,32,546.72001,2.27E-05,1.45,2.66E-19
MUL,32,8,32,708.451212,2.55E-05,1.49,2.82E-19
MUL,32,10,32,868.876816,2.74E-05,1.57,2.87E-19
MUL,32,12,32,944.764805,2.95E-05,1.7,2.88E-19
MUL,32,14,32,1189.075221,3.16E-05,1.69,2.89E-19
MUL,32,16,32,1348.032023,3.43E-05,1.76,2.89E-19
MUL,32,18,32,1352.928029,3.58E-05,1.89,2.90E-19
MUL,32,20,32,1500.624037,3.84E-05,1.94,2.89E-19
MUL,32,22,32,1842.03843,4.19E-05,1.96,2.89E-19
MUL,32,24,32,1755.705642,4.37E-05,2.36,2.89E-19
MUL,32,26,32,1884.144013,4.16E-05,2.2,2.89E-19
MUL,32,28,32,2063.500845,4.55E-05,2.27,2.89E-19
MUL,32,30,32,2138.409612,4.50E-05,2.35,2.89E-19
MUL,32,32,32,2288.553615,4.67E-05,2.4,2.89E-19
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,,
\ No newline at end of file
diff --git a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src/typeexploration/computation/concrete/ConcreteOperation.java b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src/typeexploration/computation/concrete/ConcreteOperation.java
index caa2183..8fc91ef 100644
--- a/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src/typeexploration/computation/concrete/ConcreteOperation.java
+++ b/bundles/fr.irisa.cairn.gecos.typeexploration.computation/src/typeexploration/computation/concrete/ConcreteOperation.java
@@ -13,28 +13,30 @@ public class ConcreteOperation {
 	public ConcreteOperation(HWOpType type, int BWin1, int BWin2, int BWout) {
 		this.type = type;
 		
-		//FIXME
-		if (BWin1 > 16) { System.err.println("Input1 of concrete operation reduced from " + BWin1 + " to 16 due to library limitations."); BWin1 = 16; }
-		if (BWin2 > 16) { System.err.println("Input2 of concrete operation reduced from " + BWin2 + " to 16 due to library limitations."); BWin2 = 16; }
-		// FIXME Update code: Phu
+		//Force max WL due to limited data
+		if (BWin1 > 32) { System.err.println("Input1 of concrete operation reduced from " + BWin1 + " to 32 due to library limitations."); BWin1 = 32; }
+		if (BWin2 > 32) { System.err.println("Input2 of concrete operation reduced from " + BWin2 + " to 32 due to library limitations."); BWin2 = 32; }
 		if (BWout > 32) { System.err.println("Output of concrete operation reduced from " + BWout + " to 32 due to library limitations."); BWout = 32; }
 		
-		//FIXME library supports even sizes
+		//Force even sizes due to limited data
 		BWin1 = (int)(2*Math.ceil(BWin1/2.0));
 		BWin2 = (int)(2*Math.ceil(BWin2/2.0));
 		BWout = (int)(2*Math.ceil(BWout/2.0));
 			
-		//FIXME force output of mult to be higher than inputs
-		if (type == HWOpType.MUL) {
-			// FIXME Update code: Phu
-			// BWout = Math.max(Math.max(BWin1, BWin2), BWout);
-			BWout = Math.min(Math.max(Math.max(BWin1, BWin2), BWout), BWin1+BWin2);
-		}
-		
-		// FIXME Update code: Phu
-		//FIXME force output of add to not be higher than inputs
-		if (type == HWOpType.ADD) {
-			BWout = Math.min(BWout, Math.max(BWin1, BWin2));
+		//Force output consistency
+		{
+			int BWtmp = BWout;
+			if (type == HWOpType.MUL) {
+				// BWout = Math.max(Math.max(BWin1, BWin2), BWout);
+				BWtmp = Math.min(Math.max(Math.max(BWin1, BWin2), BWout), BWin1+BWin2);
+	
+			} else if (type == HWOpType.ADD) {
+				BWtmp = Math.min(BWout, Math.max(BWin1, BWin2));
+			}
+			if (BWtmp != BWout) {
+				System.err.println("Output of concrete operation reduced from " + BWout + " to " + BWtmp + " for consistency reasons.");
+			}
+			BWout = BWtmp;
 		}
 		
 		if (BWin2 > BWin1) {
-- 
GitLab