From 419e76265ecbdf65e960e0624be006d31ed1e191 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Fri, 8 May 2020 18:28:19 +0200 Subject: Update solver language grammar First version, still needs TokenSource and Linker to work. --- .../impl/SolverLanguagePackageImpl.java | 1465 +++++++++++++------- 1 file changed, 930 insertions(+), 535 deletions(-) (limited to 'Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SolverLanguagePackageImpl.java') diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SolverLanguagePackageImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SolverLanguagePackageImpl.java index f617be3f..393a2545 100644 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SolverLanguagePackageImpl.java +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SolverLanguagePackageImpl.java @@ -1,67 +1,70 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.solverLanguage.impl; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.impl.EPackageImpl; -import org.eclipse.viatra.solver.language.solverLanguage.AllInstances; -import org.eclipse.viatra.solver.language.solverLanguage.AllObjects; -import org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanObject; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanValue; -import org.eclipse.viatra.solver.language.solverLanguage.CDInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.ClosureType; -import org.eclipse.viatra.solver.language.solverLanguage.ComplexObject; -import org.eclipse.viatra.solver.language.solverLanguage.Constraint; -import org.eclipse.viatra.solver.language.solverLanguage.DataObject; -import org.eclipse.viatra.solver.language.solverLanguage.DataSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.False; -import org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.IntObject; -import org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.Interpretation; -import org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure; +import org.eclipse.viatra.solver.language.solverLanguage.Aggregation; +import org.eclipse.viatra.solver.language.solverLanguage.AggregationOp; +import org.eclipse.viatra.solver.language.solverLanguage.Argument; +import org.eclipse.viatra.solver.language.solverLanguage.ArgumentList; +import org.eclipse.viatra.solver.language.solverLanguage.Assertion; +import org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression; +import org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator; +import org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity; +import org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.Call; +import org.eclipse.viatra.solver.language.solverLanguage.Case; +import org.eclipse.viatra.solver.language.solverLanguage.Comparison; +import org.eclipse.viatra.solver.language.solverLanguage.Conjunction; +import org.eclipse.viatra.solver.language.solverLanguage.Count; +import org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.Disjunction; +import org.eclipse.viatra.solver.language.solverLanguage.EmptyIntervalLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity; +import org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument; +import org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.IfElse; +import org.eclipse.viatra.solver.language.solverLanguage.InfinityLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.Interval; import org.eclipse.viatra.solver.language.solverLanguage.Literal; -import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition; -import org.eclipse.viatra.solver.language.solverLanguage.NamedObject; -import org.eclipse.viatra.solver.language.solverLanguage.Negative; -import org.eclipse.viatra.solver.language.solverLanguage.Parameter; -import org.eclipse.viatra.solver.language.solverLanguage.PartialitySymbol; -import org.eclipse.viatra.solver.language.solverLanguage.PatternBody; -import org.eclipse.viatra.solver.language.solverLanguage.Polarity; -import org.eclipse.viatra.solver.language.solverLanguage.Positive; -import org.eclipse.viatra.solver.language.solverLanguage.Predicate; +import org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.LogicValue; +import org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.ManyMultiplicity; +import org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.MetricType; +import org.eclipse.viatra.solver.language.solverLanguage.Multiplicity; +import org.eclipse.viatra.solver.language.solverLanguage.NamedElement; +import org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind; +import org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition; import org.eclipse.viatra.solver.language.solverLanguage.Problem; -import org.eclipse.viatra.solver.language.solverLanguage.RealObject; -import org.eclipse.viatra.solver.language.solverLanguage.RealSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure; +import org.eclipse.viatra.solver.language.solverLanguage.Reference; +import org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition; import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguageFactory; import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; +import org.eclipse.viatra.solver.language.solverLanguage.StarArgument; import org.eclipse.viatra.solver.language.solverLanguage.Statement; -import org.eclipse.viatra.solver.language.solverLanguage.StringObject; -import org.eclipse.viatra.solver.language.solverLanguage.StringSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.Symbol; -import org.eclipse.viatra.solver.language.solverLanguage.True; -import org.eclipse.viatra.solver.language.solverLanguage.TruthValue; -import org.eclipse.viatra.solver.language.solverLanguage.Unknown; -import org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject; -import org.eclipse.viatra.solver.language.solverLanguage.Variable; +import org.eclipse.viatra.solver.language.solverLanguage.StringLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.Switch; +import org.eclipse.viatra.solver.language.solverLanguage.TypedArgument; +import org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument; +import org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression; +import org.eclipse.viatra.solver.language.solverLanguage.UnaryOp; +import org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition; /** * @@ -90,350 +93,350 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * * @generated */ - private EClass booleanValueEClass = null; + private EClass predicateDefinitionEClass = null; /** * * * @generated */ - private EClass truthValueEClass = null; + private EClass unnamedErrorPrediateDefinitionEClass = null; /** * * * @generated */ - private EClass interpretationEClass = null; + private EClass defaultDefinitionEClass = null; /** * * * @generated */ - private EClass basicInterpretationEClass = null; + private EClass externPredicateDefinitionEClass = null; /** * * * @generated */ - private EClass symbolEClass = null; + private EClass metricDefinitionEClass = null; /** * * * @generated */ - private EClass modelSymbolEClass = null; + private EClass externMetricDefinitionEClass = null; /** * * * @generated */ - private EClass partialitySymbolEClass = null; + private EClass expressionEClass = null; /** * * * @generated */ - private EClass existSymbolEClass = null; + private EClass ifElseEClass = null; /** * * * @generated */ - private EClass equalsSymbolEClass = null; + private EClass caseEClass = null; /** * * * @generated */ - private EClass dataSymbolEClass = null; + private EClass countEClass = null; /** * * * @generated */ - private EClass booleanSymbolEClass = null; + private EClass aggregationEClass = null; /** * * * @generated */ - private EClass integerSymbolEClass = null; + private EClass callEClass = null; /** * * * @generated */ - private EClass realSymbolEClass = null; + private EClass argumentListEClass = null; /** * * * @generated */ - private EClass stringSymbolEClass = null; + private EClass argumentEClass = null; /** * * * @generated */ - private EClass complexObjectEClass = null; + private EClass expressionArgumentEClass = null; /** * * * @generated */ - private EClass objectEClass = null; + private EClass starArgumentEClass = null; /** * * * @generated */ - private EClass namedObjectEClass = null; + private EClass typedArgumentEClass = null; /** * * * @generated */ - private EClass unnamedObjectEClass = null; + private EClass typedStarArgumentEClass = null; /** * * * @generated */ - private EClass dataObjectEClass = null; + private EClass referenceEClass = null; /** * * * @generated */ - private EClass booleanObjectEClass = null; + private EClass intervalEClass = null; /** * * * @generated */ - private EClass intObjectEClass = null; + private EClass literalEClass = null; /** * * * @generated */ - private EClass realObjectEClass = null; + private EClass logicLiteralEClass = null; /** * * * @generated */ - private EClass stringObjectEClass = null; + private EClass numericLiteralEClass = null; /** * * * @generated */ - private EClass predicateEClass = null; + private EClass infinityLiteralEClass = null; /** * * * @generated */ - private EClass parameterEClass = null; + private EClass emptyIntervalLiteralEClass = null; /** * * * @generated */ - private EClass patternBodyEClass = null; + private EClass stringLiteralEClass = null; /** * * * @generated */ - private EClass polarityEClass = null; + private EClass memberDefinitionEClass = null; /** * * * @generated */ - private EClass constraintEClass = null; + private EClass multiplicityEClass = null; /** * * * @generated */ - private EClass closureTypeEClass = null; + private EClass manyMultiplicityEClass = null; /** * * * @generated */ - private EClass literalEClass = null; + private EClass exactMultiplicityEClass = null; /** * * * @generated */ - private EClass variableEClass = null; + private EClass boundedMultiplicityEClass = null; /** * * * @generated */ - private EClass allInstancesEClass = null; + private EClass scopeDefinitionEClass = null; /** * * * @generated */ - private EClass allObjectsEClass = null; + private EClass exactScopeDefinitionEClass = null; /** * * * @generated */ - private EClass defaultInterpretationEClass = null; + private EClass boundedScopeDefinitionEClass = null; /** * * * @generated */ - private EClass cdInterpretationEClass = null; + private EClass lowerBoundedScopeDefinitionEClass = null; /** * * * @generated */ - private EClass classInterpretationEClass = null; + private EClass objectiveDefinitionEClass = null; /** * * * @generated */ - private EClass enumInterpretationEClass = null; + private EClass namedElementEClass = null; /** * * * @generated */ - private EClass fieldRelationInterpretationEClass = null; + private EClass assertionEClass = null; /** * * * @generated */ - private EClass globalRelationInterpretationEClass = null; + private EClass disjunctionEClass = null; /** * * * @generated */ - private EClass multiplicityDefinitionEClass = null; + private EClass switchEClass = null; /** * * * @generated */ - private EClass booleanTrueEClass = null; + private EClass conjunctionEClass = null; /** * * * @generated */ - private EClass booleanFalseEClass = null; + private EClass comparisonEClass = null; /** * * * @generated */ - private EClass trueEClass = null; + private EClass binaryExpressionEClass = null; /** * * * @generated */ - private EClass falseEClass = null; + private EClass unaryExpressionEClass = null; /** * * * @generated */ - private EClass unknownEClass = null; + private EEnum metricTypeEEnum = null; /** * * * @generated */ - private EClass errorEClass = null; + private EEnum binaryOperatorEEnum = null; /** * * * @generated */ - private EClass positiveEClass = null; + private EEnum unaryOpEEnum = null; /** * * * @generated */ - private EClass negativeEClass = null; + private EEnum aggregationOpEEnum = null; /** * * * @generated */ - private EClass reflexiveClosureEClass = null; + private EEnum logicValueEEnum = null; /** * * * @generated */ - private EClass irreflexiveClosureEClass = null; + private EEnum objectiveKindEEnum = null; /** * Creates an instance of the model Package, registered with @@ -537,9 +540,108 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getBooleanValue() + public EAttribute getStatement_Abstract() + { + return (EAttribute)statementEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getStatement_Name() + { + return (EAttribute)statementEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStatement_Superclasses() + { + return (EReference)statementEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStatement_Members() + { + return (EReference)statementEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EClass getPredicateDefinition() + { + return predicateDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getPredicateDefinition_Head() + { + return (EReference)predicateDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getPredicateDefinition_Body() + { + return (EReference)predicateDefinitionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getPredicateDefinition_Functional() + { + return (EAttribute)predicateDefinitionEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getPredicateDefinition_Error() + { + return (EAttribute)predicateDefinitionEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EClass getUnnamedErrorPrediateDefinition() { - return booleanValueEClass; + return unnamedErrorPrediateDefinitionEClass; } /** @@ -548,9 +650,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getTruthValue() + public EReference getUnnamedErrorPrediateDefinition_ArgumentList() { - return truthValueEClass; + return (EReference)unnamedErrorPrediateDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -559,9 +661,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getInterpretation() + public EReference getUnnamedErrorPrediateDefinition_Body() { - return interpretationEClass; + return (EReference)unnamedErrorPrediateDefinitionEClass.getEStructuralFeatures().get(1); } /** @@ -570,9 +672,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getBasicInterpretation() + public EClass getDefaultDefinition() { - return basicInterpretationEClass; + return defaultDefinitionEClass; } /** @@ -581,9 +683,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getBasicInterpretation_Symbol() + public EReference getDefaultDefinition_Head() { - return (EReference)basicInterpretationEClass.getEStructuralFeatures().get(0); + return (EReference)defaultDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -592,9 +694,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getBasicInterpretation_Objects() + public EReference getDefaultDefinition_Range() { - return (EReference)basicInterpretationEClass.getEStructuralFeatures().get(1); + return (EReference)defaultDefinitionEClass.getEStructuralFeatures().get(1); } /** @@ -603,9 +705,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getBasicInterpretation_Value() + public EClass getExternPredicateDefinition() { - return (EReference)basicInterpretationEClass.getEStructuralFeatures().get(2); + return externPredicateDefinitionEClass; } /** @@ -614,9 +716,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getSymbol() + public EReference getExternPredicateDefinition_Head() { - return symbolEClass; + return (EReference)externPredicateDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -625,9 +727,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getModelSymbol() + public EClass getMetricDefinition() { - return modelSymbolEClass; + return metricDefinitionEClass; } /** @@ -636,9 +738,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getModelSymbol_Name() + public EReference getMetricDefinition_Head() { - return (EAttribute)modelSymbolEClass.getEStructuralFeatures().get(0); + return (EReference)metricDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -647,9 +749,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getPartialitySymbol() + public EReference getMetricDefinition_Body() { - return partialitySymbolEClass; + return (EReference)metricDefinitionEClass.getEStructuralFeatures().get(1); } /** @@ -658,9 +760,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getExistSymbol() + public EAttribute getMetricDefinition_Type() { - return existSymbolEClass; + return (EAttribute)metricDefinitionEClass.getEStructuralFeatures().get(2); } /** @@ -669,9 +771,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getEqualsSymbol() + public EClass getExternMetricDefinition() { - return equalsSymbolEClass; + return externMetricDefinitionEClass; } /** @@ -680,9 +782,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getDataSymbol() + public EAttribute getExternMetricDefinition_Type() { - return dataSymbolEClass; + return (EAttribute)externMetricDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -691,9 +793,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getBooleanSymbol() + public EReference getExternMetricDefinition_Head() { - return booleanSymbolEClass; + return (EReference)externMetricDefinitionEClass.getEStructuralFeatures().get(1); } /** @@ -702,9 +804,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getIntegerSymbol() + public EClass getExpression() { - return integerSymbolEClass; + return expressionEClass; } /** @@ -713,9 +815,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getRealSymbol() + public EClass getIfElse() { - return realSymbolEClass; + return ifElseEClass; } /** @@ -724,9 +826,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getStringSymbol() + public EReference getIfElse_Condition() { - return stringSymbolEClass; + return (EReference)ifElseEClass.getEStructuralFeatures().get(0); } /** @@ -735,9 +837,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getComplexObject() + public EReference getIfElse_Then() { - return complexObjectEClass; + return (EReference)ifElseEClass.getEStructuralFeatures().get(1); } /** @@ -746,9 +848,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getObject() + public EReference getIfElse_Else() { - return objectEClass; + return (EReference)ifElseEClass.getEStructuralFeatures().get(2); } /** @@ -757,9 +859,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getNamedObject() + public EClass getCase() { - return namedObjectEClass; + return caseEClass; } /** @@ -768,9 +870,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getNamedObject_Name() + public EReference getCase_Condition() { - return (EAttribute)namedObjectEClass.getEStructuralFeatures().get(0); + return (EReference)caseEClass.getEStructuralFeatures().get(0); } /** @@ -779,9 +881,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getUnnamedObject() + public EReference getCase_Body() { - return unnamedObjectEClass; + return (EReference)caseEClass.getEStructuralFeatures().get(1); } /** @@ -790,9 +892,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getUnnamedObject_Name() + public EClass getCount() { - return (EAttribute)unnamedObjectEClass.getEStructuralFeatures().get(0); + return countEClass; } /** @@ -801,9 +903,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getDataObject() + public EReference getCount_Body() { - return dataObjectEClass; + return (EReference)countEClass.getEStructuralFeatures().get(0); } /** @@ -812,9 +914,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getBooleanObject() + public EClass getAggregation() { - return booleanObjectEClass; + return aggregationEClass; } /** @@ -823,9 +925,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getBooleanObject_Value() + public EAttribute getAggregation_Op() { - return (EReference)booleanObjectEClass.getEStructuralFeatures().get(0); + return (EAttribute)aggregationEClass.getEStructuralFeatures().get(0); } /** @@ -834,9 +936,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getIntObject() + public EReference getAggregation_Body() { - return intObjectEClass; + return (EReference)aggregationEClass.getEStructuralFeatures().get(1); } /** @@ -845,9 +947,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getIntObject_Value() + public EReference getAggregation_Condition() { - return (EAttribute)intObjectEClass.getEStructuralFeatures().get(0); + return (EReference)aggregationEClass.getEStructuralFeatures().get(2); } /** @@ -856,9 +958,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getRealObject() + public EClass getCall() { - return realObjectEClass; + return callEClass; } /** @@ -867,9 +969,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getRealObject_Value() + public EReference getCall_Functor() { - return (EAttribute)realObjectEClass.getEStructuralFeatures().get(0); + return (EReference)callEClass.getEStructuralFeatures().get(0); } /** @@ -878,9 +980,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getStringObject() + public EReference getCall_ArgumentList() { - return stringObjectEClass; + return (EReference)callEClass.getEStructuralFeatures().get(1); } /** @@ -889,9 +991,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getStringObject_Value() + public EAttribute getCall_TransitiveClosure() { - return (EAttribute)stringObjectEClass.getEStructuralFeatures().get(0); + return (EAttribute)callEClass.getEStructuralFeatures().get(2); } /** @@ -900,9 +1002,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getPredicate() + public EAttribute getCall_ReflexiveTransitiveClosure() { - return predicateEClass; + return (EAttribute)callEClass.getEStructuralFeatures().get(3); } /** @@ -911,9 +1013,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getPredicate_IsError() + public EClass getArgumentList() { - return (EAttribute)predicateEClass.getEStructuralFeatures().get(0); + return argumentListEClass; } /** @@ -922,9 +1024,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getPredicate_Symbol() + public EReference getArgumentList_Arguments() { - return (EReference)predicateEClass.getEStructuralFeatures().get(1); + return (EReference)argumentListEClass.getEStructuralFeatures().get(0); } /** @@ -933,9 +1035,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getPredicate_Parameters() + public EClass getArgument() { - return (EReference)predicateEClass.getEStructuralFeatures().get(2); + return argumentEClass; } /** @@ -944,9 +1046,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getPredicate_Bodies() + public EClass getExpressionArgument() { - return (EReference)predicateEClass.getEStructuralFeatures().get(3); + return expressionArgumentEClass; } /** @@ -955,9 +1057,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getParameter() + public EReference getExpressionArgument_Body() { - return parameterEClass; + return (EReference)expressionArgumentEClass.getEStructuralFeatures().get(0); } /** @@ -966,9 +1068,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getParameter_Variable() + public EClass getStarArgument() { - return (EReference)parameterEClass.getEStructuralFeatures().get(0); + return starArgumentEClass; } /** @@ -977,9 +1079,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getParameter_Type() + public EClass getTypedArgument() { - return (EReference)parameterEClass.getEStructuralFeatures().get(1); + return typedArgumentEClass; } /** @@ -988,9 +1090,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getPatternBody() + public EReference getTypedArgument_Type() { - return patternBodyEClass; + return (EReference)typedArgumentEClass.getEStructuralFeatures().get(0); } /** @@ -999,9 +1101,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getPatternBody_Constraints() + public EReference getTypedArgument_Variable() { - return (EReference)patternBodyEClass.getEStructuralFeatures().get(0); + return (EReference)typedArgumentEClass.getEStructuralFeatures().get(1); } /** @@ -1010,9 +1112,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getPolarity() + public EClass getTypedStarArgument() { - return polarityEClass; + return typedStarArgumentEClass; } /** @@ -1021,9 +1123,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getConstraint() + public EReference getTypedStarArgument_Type() { - return constraintEClass; + return (EReference)typedStarArgumentEClass.getEStructuralFeatures().get(0); } /** @@ -1032,9 +1134,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getConstraint_Polarity() + public EClass getReference() { - return (EReference)constraintEClass.getEStructuralFeatures().get(0); + return referenceEClass; } /** @@ -1043,9 +1145,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getConstraint_Symbol() + public EReference getReference_Referred() { - return (EReference)constraintEClass.getEStructuralFeatures().get(1); + return (EReference)referenceEClass.getEStructuralFeatures().get(0); } /** @@ -1054,9 +1156,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getConstraint_Params() + public EClass getInterval() { - return (EReference)constraintEClass.getEStructuralFeatures().get(2); + return intervalEClass; } /** @@ -1065,9 +1167,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getConstraint_ClosureType() + public EReference getInterval_LowerBound() { - return (EReference)constraintEClass.getEStructuralFeatures().get(3); + return (EReference)intervalEClass.getEStructuralFeatures().get(0); } /** @@ -1076,9 +1178,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getClosureType() + public EReference getInterval_UpperBound() { - return closureTypeEClass; + return (EReference)intervalEClass.getEStructuralFeatures().get(1); } /** @@ -1098,9 +1200,207 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getVariable() + public EClass getLogicLiteral() + { + return logicLiteralEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getLogicLiteral_Value() + { + return (EAttribute)logicLiteralEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getNumericLiteral() + { + return numericLiteralEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getNumericLiteral_Value() + { + return (EAttribute)numericLiteralEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getInfinityLiteral() + { + return infinityLiteralEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getEmptyIntervalLiteral() + { + return emptyIntervalLiteralEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getStringLiteral() + { + return stringLiteralEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getStringLiteral_Value() + { + return (EAttribute)stringLiteralEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getMemberDefinition() + { + return memberDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getMemberDefinition_Containment() + { + return (EAttribute)memberDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getMemberDefinition_Type() + { + return (EReference)memberDefinitionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getMemberDefinition_Multiplicity() + { + return (EReference)memberDefinitionEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getMemberDefinition_Name() + { + return (EAttribute)memberDefinitionEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EReference getMemberDefinition_Opposite() + { + return (EReference)memberDefinitionEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EClass getMultiplicity() + { + return multiplicityEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getManyMultiplicity() + { + return manyMultiplicityEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getExactMultiplicity() + { + return exactMultiplicityEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getExactMultiplicity_Multiplicity() + { + return (EAttribute)exactMultiplicityEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getBoundedMultiplicity() { - return variableEClass; + return boundedMultiplicityEClass; } /** @@ -1109,9 +1409,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getVariable_Name() + public EAttribute getBoundedMultiplicity_LowerBound() { - return (EAttribute)variableEClass.getEStructuralFeatures().get(0); + return (EAttribute)boundedMultiplicityEClass.getEStructuralFeatures().get(0); } /** @@ -1120,9 +1420,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getAllInstances() + public EAttribute getBoundedMultiplicity_UpperBound() { - return allInstancesEClass; + return (EAttribute)boundedMultiplicityEClass.getEStructuralFeatures().get(1); } /** @@ -1131,9 +1431,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getAllInstances_Symbol() + public EClass getScopeDefinition() { - return (EReference)allInstancesEClass.getEStructuralFeatures().get(0); + return scopeDefinitionEClass; } /** @@ -1142,9 +1442,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getAllObjects() + public EReference getScopeDefinition_Type() { - return allObjectsEClass; + return (EReference)scopeDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -1153,9 +1453,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getDefaultInterpretation() + public EClass getExactScopeDefinition() { - return defaultInterpretationEClass; + return exactScopeDefinitionEClass; } /** @@ -1164,9 +1464,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getDefaultInterpretation_Interpretation() + public EAttribute getExactScopeDefinition_ExactScope() { - return (EReference)defaultInterpretationEClass.getEStructuralFeatures().get(0); + return (EAttribute)exactScopeDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -1175,9 +1475,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getCDInterpretation() + public EClass getBoundedScopeDefinition() { - return cdInterpretationEClass; + return boundedScopeDefinitionEClass; } /** @@ -1186,9 +1486,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getClassInterpretation() + public EAttribute getBoundedScopeDefinition_LowerBound() { - return classInterpretationEClass; + return (EAttribute)boundedScopeDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -1197,9 +1497,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getClassInterpretation_Abstract() + public EAttribute getBoundedScopeDefinition_UpperBound() { - return (EAttribute)classInterpretationEClass.getEStructuralFeatures().get(0); + return (EAttribute)boundedScopeDefinitionEClass.getEStructuralFeatures().get(1); } /** @@ -1208,9 +1508,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getClassInterpretation_Symbol() + public EClass getLowerBoundedScopeDefinition() { - return (EReference)classInterpretationEClass.getEStructuralFeatures().get(1); + return lowerBoundedScopeDefinitionEClass; } /** @@ -1219,9 +1519,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getClassInterpretation_Supertypes() + public EAttribute getLowerBoundedScopeDefinition_LowerBound() { - return (EReference)classInterpretationEClass.getEStructuralFeatures().get(2); + return (EAttribute)lowerBoundedScopeDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -1230,9 +1530,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getClassInterpretation_Fielt() + public EClass getObjectiveDefinition() { - return (EReference)classInterpretationEClass.getEStructuralFeatures().get(3); + return objectiveDefinitionEClass; } /** @@ -1241,9 +1541,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getEnumInterpretation() + public EAttribute getObjectiveDefinition_Kind() { - return enumInterpretationEClass; + return (EAttribute)objectiveDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -1252,9 +1552,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getEnumInterpretation_Symbol() + public EReference getObjectiveDefinition_Objective() { - return (EReference)enumInterpretationEClass.getEStructuralFeatures().get(0); + return (EReference)objectiveDefinitionEClass.getEStructuralFeatures().get(1); } /** @@ -1263,9 +1563,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getEnumInterpretation_Objects() + public EClass getNamedElement() { - return (EReference)enumInterpretationEClass.getEStructuralFeatures().get(1); + return namedElementEClass; } /** @@ -1274,9 +1574,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getFieldRelationInterpretation() + public EAttribute getNamedElement_Name() { - return fieldRelationInterpretationEClass; + return (EAttribute)namedElementEClass.getEStructuralFeatures().get(0); } /** @@ -1285,9 +1585,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getFieldRelationInterpretation_Containment() + public EClass getAssertion() { - return (EAttribute)fieldRelationInterpretationEClass.getEStructuralFeatures().get(0); + return assertionEClass; } /** @@ -1296,9 +1596,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getFieldRelationInterpretation_Symbol() + public EReference getAssertion_Body() { - return (EReference)fieldRelationInterpretationEClass.getEStructuralFeatures().get(1); + return (EReference)assertionEClass.getEStructuralFeatures().get(0); } /** @@ -1307,9 +1607,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getFieldRelationInterpretation_Multiplicity() + public EReference getAssertion_Range() { - return (EReference)fieldRelationInterpretationEClass.getEStructuralFeatures().get(2); + return (EReference)assertionEClass.getEStructuralFeatures().get(1); } /** @@ -1318,9 +1618,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getFieldRelationInterpretation_Target() + public EClass getDisjunction() { - return (EReference)fieldRelationInterpretationEClass.getEStructuralFeatures().get(3); + return disjunctionEClass; } /** @@ -1329,9 +1629,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getGlobalRelationInterpretation() + public EReference getDisjunction_Children() { - return globalRelationInterpretationEClass; + return (EReference)disjunctionEClass.getEStructuralFeatures().get(0); } /** @@ -1340,9 +1640,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getGlobalRelationInterpretation_Containment() + public EClass getSwitch() { - return (EAttribute)globalRelationInterpretationEClass.getEStructuralFeatures().get(0); + return switchEClass; } /** @@ -1351,9 +1651,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getGlobalRelationInterpretation_Symbol() + public EReference getSwitch_Cases() { - return (EReference)globalRelationInterpretationEClass.getEStructuralFeatures().get(1); + return (EReference)switchEClass.getEStructuralFeatures().get(0); } /** @@ -1362,9 +1662,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getGlobalRelationInterpretation_SourceMultiplicity() + public EClass getConjunction() { - return (EReference)globalRelationInterpretationEClass.getEStructuralFeatures().get(2); + return conjunctionEClass; } /** @@ -1373,9 +1673,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getGlobalRelationInterpretation_Source() + public EReference getConjunction_Children() { - return (EReference)globalRelationInterpretationEClass.getEStructuralFeatures().get(3); + return (EReference)conjunctionEClass.getEStructuralFeatures().get(0); } /** @@ -1384,9 +1684,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getGlobalRelationInterpretation_TargetMultiplicity() + public EClass getComparison() { - return (EReference)globalRelationInterpretationEClass.getEStructuralFeatures().get(4); + return comparisonEClass; } /** @@ -1395,9 +1695,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getGlobalRelationInterpretation_Target() + public EReference getComparison_Left() { - return (EReference)globalRelationInterpretationEClass.getEStructuralFeatures().get(5); + return (EReference)comparisonEClass.getEStructuralFeatures().get(0); } /** @@ -1406,9 +1706,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getMultiplicityDefinition() + public EAttribute getComparison_Op() { - return multiplicityDefinitionEClass; + return (EAttribute)comparisonEClass.getEStructuralFeatures().get(1); } /** @@ -1417,9 +1717,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getMultiplicityDefinition_Lower() + public EReference getComparison_Right() { - return (EAttribute)multiplicityDefinitionEClass.getEStructuralFeatures().get(0); + return (EReference)comparisonEClass.getEStructuralFeatures().get(2); } /** @@ -1428,9 +1728,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getMultiplicityDefinition_Upper() + public EClass getBinaryExpression() { - return (EAttribute)multiplicityDefinitionEClass.getEStructuralFeatures().get(1); + return binaryExpressionEClass; } /** @@ -1439,9 +1739,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getMultiplicityDefinition_UnlimitedUpper() + public EReference getBinaryExpression_Left() { - return (EAttribute)multiplicityDefinitionEClass.getEStructuralFeatures().get(2); + return (EReference)binaryExpressionEClass.getEStructuralFeatures().get(0); } /** @@ -1450,9 +1750,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getBooleanTrue() + public EAttribute getBinaryExpression_Op() { - return booleanTrueEClass; + return (EAttribute)binaryExpressionEClass.getEStructuralFeatures().get(1); } /** @@ -1461,9 +1761,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getBooleanFalse() + public EReference getBinaryExpression_Right() { - return booleanFalseEClass; + return (EReference)binaryExpressionEClass.getEStructuralFeatures().get(2); } /** @@ -1472,9 +1772,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getTrue() + public EClass getUnaryExpression() { - return trueEClass; + return unaryExpressionEClass; } /** @@ -1483,9 +1783,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getFalse() + public EAttribute getUnaryExpression_Op() { - return falseEClass; + return (EAttribute)unaryExpressionEClass.getEStructuralFeatures().get(0); } /** @@ -1494,9 +1794,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getUnknown() + public EReference getUnaryExpression_Body() { - return unknownEClass; + return (EReference)unaryExpressionEClass.getEStructuralFeatures().get(1); } /** @@ -1505,9 +1805,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getError() + public EEnum getMetricType() { - return errorEClass; + return metricTypeEEnum; } /** @@ -1516,9 +1816,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getPositive() + public EEnum getBinaryOperator() { - return positiveEClass; + return binaryOperatorEEnum; } /** @@ -1527,9 +1827,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getNegative() + public EEnum getUnaryOp() { - return negativeEClass; + return unaryOpEEnum; } /** @@ -1538,9 +1838,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getReflexiveClosure() + public EEnum getAggregationOp() { - return reflexiveClosureEClass; + return aggregationOpEEnum; } /** @@ -1549,9 +1849,20 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getIrreflexiveClosure() + public EEnum getLogicValue() { - return irreflexiveClosureEClass; + return logicValueEEnum; + } + + /** + * + * + * @generated + */ + @Override + public EEnum getObjectiveKind() + { + return objectiveKindEEnum; } /** @@ -1589,149 +1900,173 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan createEReference(problemEClass, PROBLEM__STATEMENTS); statementEClass = createEClass(STATEMENT); + createEAttribute(statementEClass, STATEMENT__ABSTRACT); + createEAttribute(statementEClass, STATEMENT__NAME); + createEReference(statementEClass, STATEMENT__SUPERCLASSES); + createEReference(statementEClass, STATEMENT__MEMBERS); - booleanValueEClass = createEClass(BOOLEAN_VALUE); - - truthValueEClass = createEClass(TRUTH_VALUE); - - interpretationEClass = createEClass(INTERPRETATION); - - basicInterpretationEClass = createEClass(BASIC_INTERPRETATION); - createEReference(basicInterpretationEClass, BASIC_INTERPRETATION__SYMBOL); - createEReference(basicInterpretationEClass, BASIC_INTERPRETATION__OBJECTS); - createEReference(basicInterpretationEClass, BASIC_INTERPRETATION__VALUE); - - symbolEClass = createEClass(SYMBOL); + predicateDefinitionEClass = createEClass(PREDICATE_DEFINITION); + createEReference(predicateDefinitionEClass, PREDICATE_DEFINITION__HEAD); + createEReference(predicateDefinitionEClass, PREDICATE_DEFINITION__BODY); + createEAttribute(predicateDefinitionEClass, PREDICATE_DEFINITION__FUNCTIONAL); + createEAttribute(predicateDefinitionEClass, PREDICATE_DEFINITION__ERROR); - modelSymbolEClass = createEClass(MODEL_SYMBOL); - createEAttribute(modelSymbolEClass, MODEL_SYMBOL__NAME); + unnamedErrorPrediateDefinitionEClass = createEClass(UNNAMED_ERROR_PREDIATE_DEFINITION); + createEReference(unnamedErrorPrediateDefinitionEClass, UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST); + createEReference(unnamedErrorPrediateDefinitionEClass, UNNAMED_ERROR_PREDIATE_DEFINITION__BODY); - partialitySymbolEClass = createEClass(PARTIALITY_SYMBOL); + defaultDefinitionEClass = createEClass(DEFAULT_DEFINITION); + createEReference(defaultDefinitionEClass, DEFAULT_DEFINITION__HEAD); + createEReference(defaultDefinitionEClass, DEFAULT_DEFINITION__RANGE); - existSymbolEClass = createEClass(EXIST_SYMBOL); + externPredicateDefinitionEClass = createEClass(EXTERN_PREDICATE_DEFINITION); + createEReference(externPredicateDefinitionEClass, EXTERN_PREDICATE_DEFINITION__HEAD); - equalsSymbolEClass = createEClass(EQUALS_SYMBOL); + metricDefinitionEClass = createEClass(METRIC_DEFINITION); + createEReference(metricDefinitionEClass, METRIC_DEFINITION__HEAD); + createEReference(metricDefinitionEClass, METRIC_DEFINITION__BODY); + createEAttribute(metricDefinitionEClass, METRIC_DEFINITION__TYPE); - dataSymbolEClass = createEClass(DATA_SYMBOL); + externMetricDefinitionEClass = createEClass(EXTERN_METRIC_DEFINITION); + createEAttribute(externMetricDefinitionEClass, EXTERN_METRIC_DEFINITION__TYPE); + createEReference(externMetricDefinitionEClass, EXTERN_METRIC_DEFINITION__HEAD); - booleanSymbolEClass = createEClass(BOOLEAN_SYMBOL); + expressionEClass = createEClass(EXPRESSION); - integerSymbolEClass = createEClass(INTEGER_SYMBOL); + ifElseEClass = createEClass(IF_ELSE); + createEReference(ifElseEClass, IF_ELSE__CONDITION); + createEReference(ifElseEClass, IF_ELSE__THEN); + createEReference(ifElseEClass, IF_ELSE__ELSE); - realSymbolEClass = createEClass(REAL_SYMBOL); + caseEClass = createEClass(CASE); + createEReference(caseEClass, CASE__CONDITION); + createEReference(caseEClass, CASE__BODY); - stringSymbolEClass = createEClass(STRING_SYMBOL); + countEClass = createEClass(COUNT); + createEReference(countEClass, COUNT__BODY); - complexObjectEClass = createEClass(COMPLEX_OBJECT); + aggregationEClass = createEClass(AGGREGATION); + createEAttribute(aggregationEClass, AGGREGATION__OP); + createEReference(aggregationEClass, AGGREGATION__BODY); + createEReference(aggregationEClass, AGGREGATION__CONDITION); - objectEClass = createEClass(OBJECT); + callEClass = createEClass(CALL); + createEReference(callEClass, CALL__FUNCTOR); + createEReference(callEClass, CALL__ARGUMENT_LIST); + createEAttribute(callEClass, CALL__TRANSITIVE_CLOSURE); + createEAttribute(callEClass, CALL__REFLEXIVE_TRANSITIVE_CLOSURE); - namedObjectEClass = createEClass(NAMED_OBJECT); - createEAttribute(namedObjectEClass, NAMED_OBJECT__NAME); + argumentListEClass = createEClass(ARGUMENT_LIST); + createEReference(argumentListEClass, ARGUMENT_LIST__ARGUMENTS); - unnamedObjectEClass = createEClass(UNNAMED_OBJECT); - createEAttribute(unnamedObjectEClass, UNNAMED_OBJECT__NAME); + argumentEClass = createEClass(ARGUMENT); - dataObjectEClass = createEClass(DATA_OBJECT); + expressionArgumentEClass = createEClass(EXPRESSION_ARGUMENT); + createEReference(expressionArgumentEClass, EXPRESSION_ARGUMENT__BODY); - booleanObjectEClass = createEClass(BOOLEAN_OBJECT); - createEReference(booleanObjectEClass, BOOLEAN_OBJECT__VALUE); + starArgumentEClass = createEClass(STAR_ARGUMENT); - intObjectEClass = createEClass(INT_OBJECT); - createEAttribute(intObjectEClass, INT_OBJECT__VALUE); + typedArgumentEClass = createEClass(TYPED_ARGUMENT); + createEReference(typedArgumentEClass, TYPED_ARGUMENT__TYPE); + createEReference(typedArgumentEClass, TYPED_ARGUMENT__VARIABLE); - realObjectEClass = createEClass(REAL_OBJECT); - createEAttribute(realObjectEClass, REAL_OBJECT__VALUE); + typedStarArgumentEClass = createEClass(TYPED_STAR_ARGUMENT); + createEReference(typedStarArgumentEClass, TYPED_STAR_ARGUMENT__TYPE); - stringObjectEClass = createEClass(STRING_OBJECT); - createEAttribute(stringObjectEClass, STRING_OBJECT__VALUE); + referenceEClass = createEClass(REFERENCE); + createEReference(referenceEClass, REFERENCE__REFERRED); - predicateEClass = createEClass(PREDICATE); - createEAttribute(predicateEClass, PREDICATE__IS_ERROR); - createEReference(predicateEClass, PREDICATE__SYMBOL); - createEReference(predicateEClass, PREDICATE__PARAMETERS); - createEReference(predicateEClass, PREDICATE__BODIES); + intervalEClass = createEClass(INTERVAL); + createEReference(intervalEClass, INTERVAL__LOWER_BOUND); + createEReference(intervalEClass, INTERVAL__UPPER_BOUND); - parameterEClass = createEClass(PARAMETER); - createEReference(parameterEClass, PARAMETER__VARIABLE); - createEReference(parameterEClass, PARAMETER__TYPE); - - patternBodyEClass = createEClass(PATTERN_BODY); - createEReference(patternBodyEClass, PATTERN_BODY__CONSTRAINTS); + literalEClass = createEClass(LITERAL); - polarityEClass = createEClass(POLARITY); + logicLiteralEClass = createEClass(LOGIC_LITERAL); + createEAttribute(logicLiteralEClass, LOGIC_LITERAL__VALUE); - constraintEClass = createEClass(CONSTRAINT); - createEReference(constraintEClass, CONSTRAINT__POLARITY); - createEReference(constraintEClass, CONSTRAINT__SYMBOL); - createEReference(constraintEClass, CONSTRAINT__PARAMS); - createEReference(constraintEClass, CONSTRAINT__CLOSURE_TYPE); + numericLiteralEClass = createEClass(NUMERIC_LITERAL); + createEAttribute(numericLiteralEClass, NUMERIC_LITERAL__VALUE); - closureTypeEClass = createEClass(CLOSURE_TYPE); + infinityLiteralEClass = createEClass(INFINITY_LITERAL); - literalEClass = createEClass(LITERAL); + emptyIntervalLiteralEClass = createEClass(EMPTY_INTERVAL_LITERAL); - variableEClass = createEClass(VARIABLE); - createEAttribute(variableEClass, VARIABLE__NAME); + stringLiteralEClass = createEClass(STRING_LITERAL); + createEAttribute(stringLiteralEClass, STRING_LITERAL__VALUE); - allInstancesEClass = createEClass(ALL_INSTANCES); - createEReference(allInstancesEClass, ALL_INSTANCES__SYMBOL); + memberDefinitionEClass = createEClass(MEMBER_DEFINITION); + createEAttribute(memberDefinitionEClass, MEMBER_DEFINITION__CONTAINMENT); + createEReference(memberDefinitionEClass, MEMBER_DEFINITION__TYPE); + createEReference(memberDefinitionEClass, MEMBER_DEFINITION__MULTIPLICITY); + createEAttribute(memberDefinitionEClass, MEMBER_DEFINITION__NAME); + createEReference(memberDefinitionEClass, MEMBER_DEFINITION__OPPOSITE); - allObjectsEClass = createEClass(ALL_OBJECTS); + multiplicityEClass = createEClass(MULTIPLICITY); - defaultInterpretationEClass = createEClass(DEFAULT_INTERPRETATION); - createEReference(defaultInterpretationEClass, DEFAULT_INTERPRETATION__INTERPRETATION); + manyMultiplicityEClass = createEClass(MANY_MULTIPLICITY); - cdInterpretationEClass = createEClass(CD_INTERPRETATION); + exactMultiplicityEClass = createEClass(EXACT_MULTIPLICITY); + createEAttribute(exactMultiplicityEClass, EXACT_MULTIPLICITY__MULTIPLICITY); - classInterpretationEClass = createEClass(CLASS_INTERPRETATION); - createEAttribute(classInterpretationEClass, CLASS_INTERPRETATION__ABSTRACT); - createEReference(classInterpretationEClass, CLASS_INTERPRETATION__SYMBOL); - createEReference(classInterpretationEClass, CLASS_INTERPRETATION__SUPERTYPES); - createEReference(classInterpretationEClass, CLASS_INTERPRETATION__FIELT); + boundedMultiplicityEClass = createEClass(BOUNDED_MULTIPLICITY); + createEAttribute(boundedMultiplicityEClass, BOUNDED_MULTIPLICITY__LOWER_BOUND); + createEAttribute(boundedMultiplicityEClass, BOUNDED_MULTIPLICITY__UPPER_BOUND); - enumInterpretationEClass = createEClass(ENUM_INTERPRETATION); - createEReference(enumInterpretationEClass, ENUM_INTERPRETATION__SYMBOL); - createEReference(enumInterpretationEClass, ENUM_INTERPRETATION__OBJECTS); + scopeDefinitionEClass = createEClass(SCOPE_DEFINITION); + createEReference(scopeDefinitionEClass, SCOPE_DEFINITION__TYPE); - fieldRelationInterpretationEClass = createEClass(FIELD_RELATION_INTERPRETATION); - createEAttribute(fieldRelationInterpretationEClass, FIELD_RELATION_INTERPRETATION__CONTAINMENT); - createEReference(fieldRelationInterpretationEClass, FIELD_RELATION_INTERPRETATION__SYMBOL); - createEReference(fieldRelationInterpretationEClass, FIELD_RELATION_INTERPRETATION__MULTIPLICITY); - createEReference(fieldRelationInterpretationEClass, FIELD_RELATION_INTERPRETATION__TARGET); + exactScopeDefinitionEClass = createEClass(EXACT_SCOPE_DEFINITION); + createEAttribute(exactScopeDefinitionEClass, EXACT_SCOPE_DEFINITION__EXACT_SCOPE); - globalRelationInterpretationEClass = createEClass(GLOBAL_RELATION_INTERPRETATION); - createEAttribute(globalRelationInterpretationEClass, GLOBAL_RELATION_INTERPRETATION__CONTAINMENT); - createEReference(globalRelationInterpretationEClass, GLOBAL_RELATION_INTERPRETATION__SYMBOL); - createEReference(globalRelationInterpretationEClass, GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY); - createEReference(globalRelationInterpretationEClass, GLOBAL_RELATION_INTERPRETATION__SOURCE); - createEReference(globalRelationInterpretationEClass, GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY); - createEReference(globalRelationInterpretationEClass, GLOBAL_RELATION_INTERPRETATION__TARGET); + boundedScopeDefinitionEClass = createEClass(BOUNDED_SCOPE_DEFINITION); + createEAttribute(boundedScopeDefinitionEClass, BOUNDED_SCOPE_DEFINITION__LOWER_BOUND); + createEAttribute(boundedScopeDefinitionEClass, BOUNDED_SCOPE_DEFINITION__UPPER_BOUND); - multiplicityDefinitionEClass = createEClass(MULTIPLICITY_DEFINITION); - createEAttribute(multiplicityDefinitionEClass, MULTIPLICITY_DEFINITION__LOWER); - createEAttribute(multiplicityDefinitionEClass, MULTIPLICITY_DEFINITION__UPPER); - createEAttribute(multiplicityDefinitionEClass, MULTIPLICITY_DEFINITION__UNLIMITED_UPPER); + lowerBoundedScopeDefinitionEClass = createEClass(LOWER_BOUNDED_SCOPE_DEFINITION); + createEAttribute(lowerBoundedScopeDefinitionEClass, LOWER_BOUNDED_SCOPE_DEFINITION__LOWER_BOUND); - booleanTrueEClass = createEClass(BOOLEAN_TRUE); + objectiveDefinitionEClass = createEClass(OBJECTIVE_DEFINITION); + createEAttribute(objectiveDefinitionEClass, OBJECTIVE_DEFINITION__KIND); + createEReference(objectiveDefinitionEClass, OBJECTIVE_DEFINITION__OBJECTIVE); - booleanFalseEClass = createEClass(BOOLEAN_FALSE); + namedElementEClass = createEClass(NAMED_ELEMENT); + createEAttribute(namedElementEClass, NAMED_ELEMENT__NAME); - trueEClass = createEClass(TRUE); + assertionEClass = createEClass(ASSERTION); + createEReference(assertionEClass, ASSERTION__BODY); + createEReference(assertionEClass, ASSERTION__RANGE); - falseEClass = createEClass(FALSE); + disjunctionEClass = createEClass(DISJUNCTION); + createEReference(disjunctionEClass, DISJUNCTION__CHILDREN); - unknownEClass = createEClass(UNKNOWN); + switchEClass = createEClass(SWITCH); + createEReference(switchEClass, SWITCH__CASES); - errorEClass = createEClass(ERROR); + conjunctionEClass = createEClass(CONJUNCTION); + createEReference(conjunctionEClass, CONJUNCTION__CHILDREN); - positiveEClass = createEClass(POSITIVE); + comparisonEClass = createEClass(COMPARISON); + createEReference(comparisonEClass, COMPARISON__LEFT); + createEAttribute(comparisonEClass, COMPARISON__OP); + createEReference(comparisonEClass, COMPARISON__RIGHT); - negativeEClass = createEClass(NEGATIVE); + binaryExpressionEClass = createEClass(BINARY_EXPRESSION); + createEReference(binaryExpressionEClass, BINARY_EXPRESSION__LEFT); + createEAttribute(binaryExpressionEClass, BINARY_EXPRESSION__OP); + createEReference(binaryExpressionEClass, BINARY_EXPRESSION__RIGHT); - reflexiveClosureEClass = createEClass(REFLEXIVE_CLOSURE); + unaryExpressionEClass = createEClass(UNARY_EXPRESSION); + createEAttribute(unaryExpressionEClass, UNARY_EXPRESSION__OP); + createEReference(unaryExpressionEClass, UNARY_EXPRESSION__BODY); - irreflexiveClosureEClass = createEClass(IRREFLEXIVE_CLOSURE); + // Create enums + metricTypeEEnum = createEEnum(METRIC_TYPE); + binaryOperatorEEnum = createEEnum(BINARY_OPERATOR); + unaryOpEEnum = createEEnum(UNARY_OP); + aggregationOpEEnum = createEEnum(AGGREGATION_OP); + logicValueEEnum = createEEnum(LOGIC_VALUE); + objectiveKindEEnum = createEEnum(OBJECTIVE_KIND); } /** @@ -1763,195 +2098,255 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan // Set bounds for type parameters // Add supertypes to classes - interpretationEClass.getESuperTypes().add(this.getStatement()); - basicInterpretationEClass.getESuperTypes().add(this.getInterpretation()); - modelSymbolEClass.getESuperTypes().add(this.getSymbol()); - partialitySymbolEClass.getESuperTypes().add(this.getSymbol()); - existSymbolEClass.getESuperTypes().add(this.getPartialitySymbol()); - equalsSymbolEClass.getESuperTypes().add(this.getPartialitySymbol()); - dataSymbolEClass.getESuperTypes().add(this.getSymbol()); - booleanSymbolEClass.getESuperTypes().add(this.getDataSymbol()); - integerSymbolEClass.getESuperTypes().add(this.getDataSymbol()); - realSymbolEClass.getESuperTypes().add(this.getDataSymbol()); - stringSymbolEClass.getESuperTypes().add(this.getDataSymbol()); - objectEClass.getESuperTypes().add(this.getComplexObject()); - namedObjectEClass.getESuperTypes().add(this.getObject()); - namedObjectEClass.getESuperTypes().add(this.getLiteral()); - unnamedObjectEClass.getESuperTypes().add(this.getObject()); - dataObjectEClass.getESuperTypes().add(this.getObject()); - dataObjectEClass.getESuperTypes().add(this.getLiteral()); - booleanObjectEClass.getESuperTypes().add(this.getDataObject()); - intObjectEClass.getESuperTypes().add(this.getDataObject()); - realObjectEClass.getESuperTypes().add(this.getDataObject()); - stringObjectEClass.getESuperTypes().add(this.getDataObject()); - predicateEClass.getESuperTypes().add(this.getStatement()); - variableEClass.getESuperTypes().add(this.getLiteral()); - allInstancesEClass.getESuperTypes().add(this.getComplexObject()); - allObjectsEClass.getESuperTypes().add(this.getComplexObject()); - defaultInterpretationEClass.getESuperTypes().add(this.getInterpretation()); - cdInterpretationEClass.getESuperTypes().add(this.getInterpretation()); - classInterpretationEClass.getESuperTypes().add(this.getCDInterpretation()); - enumInterpretationEClass.getESuperTypes().add(this.getCDInterpretation()); - globalRelationInterpretationEClass.getESuperTypes().add(this.getCDInterpretation()); - booleanTrueEClass.getESuperTypes().add(this.getBooleanValue()); - booleanFalseEClass.getESuperTypes().add(this.getBooleanValue()); - trueEClass.getESuperTypes().add(this.getTruthValue()); - falseEClass.getESuperTypes().add(this.getTruthValue()); - unknownEClass.getESuperTypes().add(this.getTruthValue()); - errorEClass.getESuperTypes().add(this.getTruthValue()); - positiveEClass.getESuperTypes().add(this.getPolarity()); - negativeEClass.getESuperTypes().add(this.getPolarity()); - reflexiveClosureEClass.getESuperTypes().add(this.getClosureType()); - irreflexiveClosureEClass.getESuperTypes().add(this.getClosureType()); + predicateDefinitionEClass.getESuperTypes().add(this.getStatement()); + unnamedErrorPrediateDefinitionEClass.getESuperTypes().add(this.getStatement()); + defaultDefinitionEClass.getESuperTypes().add(this.getStatement()); + externPredicateDefinitionEClass.getESuperTypes().add(this.getStatement()); + metricDefinitionEClass.getESuperTypes().add(this.getStatement()); + externMetricDefinitionEClass.getESuperTypes().add(this.getStatement()); + expressionEClass.getESuperTypes().add(this.getStatement()); + ifElseEClass.getESuperTypes().add(this.getExpression()); + caseEClass.getESuperTypes().add(this.getExpression()); + countEClass.getESuperTypes().add(this.getExpression()); + aggregationEClass.getESuperTypes().add(this.getExpression()); + callEClass.getESuperTypes().add(this.getExpression()); + expressionArgumentEClass.getESuperTypes().add(this.getArgument()); + starArgumentEClass.getESuperTypes().add(this.getArgument()); + typedArgumentEClass.getESuperTypes().add(this.getArgument()); + typedStarArgumentEClass.getESuperTypes().add(this.getArgument()); + referenceEClass.getESuperTypes().add(this.getExpression()); + intervalEClass.getESuperTypes().add(this.getExpression()); + literalEClass.getESuperTypes().add(this.getExpression()); + logicLiteralEClass.getESuperTypes().add(this.getLiteral()); + numericLiteralEClass.getESuperTypes().add(this.getLiteral()); + infinityLiteralEClass.getESuperTypes().add(this.getLiteral()); + emptyIntervalLiteralEClass.getESuperTypes().add(this.getLiteral()); + stringLiteralEClass.getESuperTypes().add(this.getLiteral()); + manyMultiplicityEClass.getESuperTypes().add(this.getMultiplicity()); + exactMultiplicityEClass.getESuperTypes().add(this.getMultiplicity()); + boundedMultiplicityEClass.getESuperTypes().add(this.getMultiplicity()); + scopeDefinitionEClass.getESuperTypes().add(this.getStatement()); + exactScopeDefinitionEClass.getESuperTypes().add(this.getScopeDefinition()); + boundedScopeDefinitionEClass.getESuperTypes().add(this.getScopeDefinition()); + lowerBoundedScopeDefinitionEClass.getESuperTypes().add(this.getScopeDefinition()); + objectiveDefinitionEClass.getESuperTypes().add(this.getStatement()); + assertionEClass.getESuperTypes().add(this.getStatement()); + disjunctionEClass.getESuperTypes().add(this.getExpression()); + switchEClass.getESuperTypes().add(this.getExpression()); + conjunctionEClass.getESuperTypes().add(this.getExpression()); + comparisonEClass.getESuperTypes().add(this.getExpression()); + binaryExpressionEClass.getESuperTypes().add(this.getExpression()); + unaryExpressionEClass.getESuperTypes().add(this.getExpression()); // Initialize classes and features; add operations and parameters initEClass(problemEClass, Problem.class, "Problem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getProblem_Statements(), this.getStatement(), null, "statements", null, 0, -1, Problem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(statementEClass, Statement.class, "Statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getStatement_Abstract(), ecorePackage.getEBoolean(), "abstract", null, 0, 1, Statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getStatement_Name(), ecorePackage.getEString(), "name", null, 0, 1, Statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getStatement_Superclasses(), this.getNamedElement(), null, "superclasses", null, 0, -1, Statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getStatement_Members(), this.getMemberDefinition(), null, "members", null, 0, -1, Statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(booleanValueEClass, BooleanValue.class, "BooleanValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(truthValueEClass, TruthValue.class, "TruthValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(interpretationEClass, Interpretation.class, "Interpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(basicInterpretationEClass, BasicInterpretation.class, "BasicInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getBasicInterpretation_Symbol(), this.getSymbol(), null, "symbol", null, 0, 1, BasicInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getBasicInterpretation_Objects(), this.getComplexObject(), null, "objects", null, 0, -1, BasicInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getBasicInterpretation_Value(), this.getTruthValue(), null, "value", null, 0, 1, BasicInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(symbolEClass, Symbol.class, "Symbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(modelSymbolEClass, ModelSymbol.class, "ModelSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getModelSymbol_Name(), ecorePackage.getEString(), "name", null, 0, 1, ModelSymbol.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(partialitySymbolEClass, PartialitySymbol.class, "PartialitySymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(predicateDefinitionEClass, PredicateDefinition.class, "PredicateDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getPredicateDefinition_Head(), this.getExpression(), null, "head", null, 0, 1, PredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getPredicateDefinition_Body(), this.getExpression(), null, "body", null, 0, 1, PredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getPredicateDefinition_Functional(), ecorePackage.getEBoolean(), "functional", null, 0, 1, PredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getPredicateDefinition_Error(), ecorePackage.getEBoolean(), "error", null, 0, 1, PredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(existSymbolEClass, ExistSymbol.class, "ExistSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(unnamedErrorPrediateDefinitionEClass, UnnamedErrorPrediateDefinition.class, "UnnamedErrorPrediateDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getUnnamedErrorPrediateDefinition_ArgumentList(), this.getArgumentList(), null, "argumentList", null, 0, 1, UnnamedErrorPrediateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getUnnamedErrorPrediateDefinition_Body(), this.getExpression(), null, "body", null, 0, 1, UnnamedErrorPrediateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(equalsSymbolEClass, EqualsSymbol.class, "EqualsSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(defaultDefinitionEClass, DefaultDefinition.class, "DefaultDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDefaultDefinition_Head(), this.getCall(), null, "head", null, 0, 1, DefaultDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getDefaultDefinition_Range(), this.getExpression(), null, "range", null, 0, 1, DefaultDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(dataSymbolEClass, DataSymbol.class, "DataSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(externPredicateDefinitionEClass, ExternPredicateDefinition.class, "ExternPredicateDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExternPredicateDefinition_Head(), this.getCall(), null, "head", null, 0, 1, ExternPredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(booleanSymbolEClass, BooleanSymbol.class, "BooleanSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(metricDefinitionEClass, MetricDefinition.class, "MetricDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getMetricDefinition_Head(), this.getExpression(), null, "head", null, 0, 1, MetricDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMetricDefinition_Body(), this.getExpression(), null, "body", null, 0, 1, MetricDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getMetricDefinition_Type(), this.getMetricType(), "type", null, 0, 1, MetricDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(integerSymbolEClass, IntegerSymbol.class, "IntegerSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(externMetricDefinitionEClass, ExternMetricDefinition.class, "ExternMetricDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getExternMetricDefinition_Type(), this.getMetricType(), "type", null, 0, 1, ExternMetricDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExternMetricDefinition_Head(), this.getCall(), null, "head", null, 0, 1, ExternMetricDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(realSymbolEClass, RealSymbol.class, "RealSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(expressionEClass, Expression.class, "Expression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEClass(stringSymbolEClass, StringSymbol.class, "StringSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(ifElseEClass, IfElse.class, "IfElse", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getIfElse_Condition(), this.getExpression(), null, "condition", null, 0, 1, IfElse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getIfElse_Then(), this.getExpression(), null, "then", null, 0, 1, IfElse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getIfElse_Else(), this.getExpression(), null, "else", null, 0, 1, IfElse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(complexObjectEClass, ComplexObject.class, "ComplexObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(caseEClass, Case.class, "Case", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCase_Condition(), this.getExpression(), null, "condition", null, 0, 1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCase_Body(), this.getExpression(), null, "body", null, 0, 1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(objectEClass, org.eclipse.viatra.solver.language.solverLanguage.Object.class, "Object", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(countEClass, Count.class, "Count", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCount_Body(), this.getExpression(), null, "body", null, 0, 1, Count.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(namedObjectEClass, NamedObject.class, "NamedObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getNamedObject_Name(), ecorePackage.getEString(), "name", null, 0, 1, NamedObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(aggregationEClass, Aggregation.class, "Aggregation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getAggregation_Op(), this.getAggregationOp(), "op", null, 0, 1, Aggregation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getAggregation_Body(), this.getExpression(), null, "body", null, 0, 1, Aggregation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getAggregation_Condition(), this.getExpression(), null, "condition", null, 0, 1, Aggregation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(unnamedObjectEClass, UnnamedObject.class, "UnnamedObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getUnnamedObject_Name(), ecorePackage.getEString(), "name", null, 0, 1, UnnamedObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(callEClass, Call.class, "Call", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCall_Functor(), this.getReference(), null, "functor", null, 0, 1, Call.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCall_ArgumentList(), this.getArgumentList(), null, "argumentList", null, 0, 1, Call.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getCall_TransitiveClosure(), ecorePackage.getEBoolean(), "transitiveClosure", null, 0, 1, Call.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getCall_ReflexiveTransitiveClosure(), ecorePackage.getEBoolean(), "reflexiveTransitiveClosure", null, 0, 1, Call.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(dataObjectEClass, DataObject.class, "DataObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(argumentListEClass, ArgumentList.class, "ArgumentList", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getArgumentList_Arguments(), this.getArgument(), null, "arguments", null, 0, -1, ArgumentList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(booleanObjectEClass, BooleanObject.class, "BooleanObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getBooleanObject_Value(), this.getBooleanValue(), null, "value", null, 0, 1, BooleanObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(argumentEClass, Argument.class, "Argument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEClass(intObjectEClass, IntObject.class, "IntObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getIntObject_Value(), ecorePackage.getEInt(), "value", null, 0, 1, IntObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(expressionArgumentEClass, ExpressionArgument.class, "ExpressionArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExpressionArgument_Body(), this.getExpression(), null, "body", null, 0, 1, ExpressionArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(realObjectEClass, RealObject.class, "RealObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getRealObject_Value(), ecorePackage.getEBigDecimal(), "value", null, 0, 1, RealObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(starArgumentEClass, StarArgument.class, "StarArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEClass(stringObjectEClass, StringObject.class, "StringObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getStringObject_Value(), ecorePackage.getEString(), "value", null, 0, 1, StringObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(typedArgumentEClass, TypedArgument.class, "TypedArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTypedArgument_Type(), this.getNamedElement(), null, "type", null, 0, 1, TypedArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTypedArgument_Variable(), this.getNamedElement(), null, "variable", null, 0, 1, TypedArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(predicateEClass, Predicate.class, "Predicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getPredicate_IsError(), ecorePackage.getEBoolean(), "isError", null, 0, 1, Predicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getPredicate_Symbol(), this.getModelSymbol(), null, "symbol", null, 0, 1, Predicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getPredicate_Parameters(), this.getParameter(), null, "parameters", null, 0, -1, Predicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getPredicate_Bodies(), this.getPatternBody(), null, "bodies", null, 0, -1, Predicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(typedStarArgumentEClass, TypedStarArgument.class, "TypedStarArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTypedStarArgument_Type(), this.getNamedElement(), null, "type", null, 0, 1, TypedStarArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(parameterEClass, Parameter.class, "Parameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getParameter_Variable(), this.getVariable(), null, "variable", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getParameter_Type(), this.getSymbol(), null, "type", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(referenceEClass, Reference.class, "Reference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getReference_Referred(), this.getNamedElement(), null, "referred", null, 0, 1, Reference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(patternBodyEClass, PatternBody.class, "PatternBody", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getPatternBody_Constraints(), this.getConstraint(), null, "constraints", null, 0, -1, PatternBody.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(polarityEClass, Polarity.class, "Polarity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(constraintEClass, Constraint.class, "Constraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getConstraint_Polarity(), this.getPolarity(), null, "polarity", null, 0, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getConstraint_Symbol(), this.getModelSymbol(), null, "symbol", null, 0, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getConstraint_Params(), this.getLiteral(), null, "params", null, 0, -1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getConstraint_ClosureType(), this.getClosureType(), null, "closureType", null, 0, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(closureTypeEClass, ClosureType.class, "ClosureType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(intervalEClass, Interval.class, "Interval", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getInterval_LowerBound(), this.getExpression(), null, "lowerBound", null, 0, 1, Interval.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getInterval_UpperBound(), this.getExpression(), null, "upperBound", null, 0, 1, Interval.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(literalEClass, Literal.class, "Literal", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEClass(variableEClass, Variable.class, "Variable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getVariable_Name(), ecorePackage.getEString(), "name", null, 0, 1, Variable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(allInstancesEClass, AllInstances.class, "AllInstances", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getAllInstances_Symbol(), this.getSymbol(), null, "symbol", null, 0, 1, AllInstances.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(allObjectsEClass, AllObjects.class, "AllObjects", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(defaultInterpretationEClass, DefaultInterpretation.class, "DefaultInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getDefaultInterpretation_Interpretation(), this.getBasicInterpretation(), null, "interpretation", null, 0, 1, DefaultInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(cdInterpretationEClass, CDInterpretation.class, "CDInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(classInterpretationEClass, ClassInterpretation.class, "ClassInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getClassInterpretation_Abstract(), ecorePackage.getEBoolean(), "abstract", null, 0, 1, ClassInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getClassInterpretation_Symbol(), this.getModelSymbol(), null, "symbol", null, 0, 1, ClassInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getClassInterpretation_Supertypes(), this.getModelSymbol(), null, "supertypes", null, 0, -1, ClassInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getClassInterpretation_Fielt(), this.getFieldRelationInterpretation(), null, "fielt", null, 0, -1, ClassInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(enumInterpretationEClass, EnumInterpretation.class, "EnumInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getEnumInterpretation_Symbol(), this.getModelSymbol(), null, "Symbol", null, 0, 1, EnumInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getEnumInterpretation_Objects(), this.getNamedObject(), null, "objects", null, 0, -1, EnumInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(fieldRelationInterpretationEClass, FieldRelationInterpretation.class, "FieldRelationInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getFieldRelationInterpretation_Containment(), ecorePackage.getEBoolean(), "containment", null, 0, 1, FieldRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getFieldRelationInterpretation_Symbol(), this.getModelSymbol(), null, "symbol", null, 0, 1, FieldRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getFieldRelationInterpretation_Multiplicity(), this.getMultiplicityDefinition(), null, "multiplicity", null, 0, 1, FieldRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getFieldRelationInterpretation_Target(), this.getSymbol(), null, "target", null, 0, 1, FieldRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(globalRelationInterpretationEClass, GlobalRelationInterpretation.class, "GlobalRelationInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getGlobalRelationInterpretation_Containment(), ecorePackage.getEBoolean(), "containment", null, 0, 1, GlobalRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getGlobalRelationInterpretation_Symbol(), this.getModelSymbol(), null, "symbol", null, 0, 1, GlobalRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getGlobalRelationInterpretation_SourceMultiplicity(), this.getMultiplicityDefinition(), null, "sourceMultiplicity", null, 0, 1, GlobalRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getGlobalRelationInterpretation_Source(), this.getSymbol(), null, "source", null, 0, 1, GlobalRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getGlobalRelationInterpretation_TargetMultiplicity(), this.getMultiplicityDefinition(), null, "targetMultiplicity", null, 0, 1, GlobalRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getGlobalRelationInterpretation_Target(), this.getSymbol(), null, "target", null, 0, 1, GlobalRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(multiplicityDefinitionEClass, MultiplicityDefinition.class, "MultiplicityDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getMultiplicityDefinition_Lower(), ecorePackage.getEInt(), "lower", null, 0, 1, MultiplicityDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getMultiplicityDefinition_Upper(), ecorePackage.getEInt(), "upper", null, 0, 1, MultiplicityDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getMultiplicityDefinition_UnlimitedUpper(), ecorePackage.getEBoolean(), "unlimitedUpper", null, 0, 1, MultiplicityDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(booleanTrueEClass, BooleanTrue.class, "BooleanTrue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(booleanFalseEClass, BooleanFalse.class, "BooleanFalse", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(trueEClass, True.class, "True", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(falseEClass, False.class, "False", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(unknownEClass, Unknown.class, "Unknown", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(logicLiteralEClass, LogicLiteral.class, "LogicLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getLogicLiteral_Value(), this.getLogicValue(), "value", null, 0, 1, LogicLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(errorEClass, org.eclipse.viatra.solver.language.solverLanguage.Error.class, "Error", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(numericLiteralEClass, NumericLiteral.class, "NumericLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getNumericLiteral_Value(), ecorePackage.getEBigDecimal(), "value", null, 0, 1, NumericLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(positiveEClass, Positive.class, "Positive", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(infinityLiteralEClass, InfinityLiteral.class, "InfinityLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEClass(negativeEClass, Negative.class, "Negative", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(emptyIntervalLiteralEClass, EmptyIntervalLiteral.class, "EmptyIntervalLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEClass(reflexiveClosureEClass, ReflexiveClosure.class, "ReflexiveClosure", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(stringLiteralEClass, StringLiteral.class, "StringLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getStringLiteral_Value(), ecorePackage.getEString(), "value", null, 0, 1, StringLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(irreflexiveClosureEClass, IrreflexiveClosure.class, "IrreflexiveClosure", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(memberDefinitionEClass, MemberDefinition.class, "MemberDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getMemberDefinition_Containment(), ecorePackage.getEBoolean(), "containment", null, 0, 1, MemberDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMemberDefinition_Type(), this.getNamedElement(), null, "type", null, 0, 1, MemberDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMemberDefinition_Multiplicity(), this.getMultiplicity(), null, "multiplicity", null, 0, 1, MemberDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getMemberDefinition_Name(), ecorePackage.getEString(), "name", null, 0, 1, MemberDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMemberDefinition_Opposite(), this.getNamedElement(), null, "opposite", null, 0, 1, MemberDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(multiplicityEClass, Multiplicity.class, "Multiplicity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(manyMultiplicityEClass, ManyMultiplicity.class, "ManyMultiplicity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(exactMultiplicityEClass, ExactMultiplicity.class, "ExactMultiplicity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getExactMultiplicity_Multiplicity(), ecorePackage.getEInt(), "multiplicity", null, 0, 1, ExactMultiplicity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(boundedMultiplicityEClass, BoundedMultiplicity.class, "BoundedMultiplicity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getBoundedMultiplicity_LowerBound(), ecorePackage.getEInt(), "lowerBound", null, 0, 1, BoundedMultiplicity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getBoundedMultiplicity_UpperBound(), ecorePackage.getEInt(), "upperBound", null, 0, 1, BoundedMultiplicity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(scopeDefinitionEClass, ScopeDefinition.class, "ScopeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getScopeDefinition_Type(), this.getNamedElement(), null, "type", null, 0, 1, ScopeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(exactScopeDefinitionEClass, ExactScopeDefinition.class, "ExactScopeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getExactScopeDefinition_ExactScope(), ecorePackage.getEInt(), "exactScope", null, 0, 1, ExactScopeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(boundedScopeDefinitionEClass, BoundedScopeDefinition.class, "BoundedScopeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getBoundedScopeDefinition_LowerBound(), ecorePackage.getEInt(), "lowerBound", null, 0, 1, BoundedScopeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getBoundedScopeDefinition_UpperBound(), ecorePackage.getEInt(), "upperBound", null, 0, 1, BoundedScopeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(lowerBoundedScopeDefinitionEClass, LowerBoundedScopeDefinition.class, "LowerBoundedScopeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getLowerBoundedScopeDefinition_LowerBound(), ecorePackage.getEInt(), "lowerBound", null, 0, 1, LowerBoundedScopeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(objectiveDefinitionEClass, ObjectiveDefinition.class, "ObjectiveDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getObjectiveDefinition_Kind(), this.getObjectiveKind(), "kind", null, 0, 1, ObjectiveDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getObjectiveDefinition_Objective(), this.getExpression(), null, "objective", null, 0, 1, ObjectiveDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(namedElementEClass, NamedElement.class, "NamedElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getNamedElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, NamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(assertionEClass, Assertion.class, "Assertion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAssertion_Body(), this.getExpression(), null, "body", null, 0, 1, Assertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getAssertion_Range(), this.getExpression(), null, "range", null, 0, 1, Assertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(disjunctionEClass, Disjunction.class, "Disjunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDisjunction_Children(), this.getExpression(), null, "children", null, 0, -1, Disjunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(switchEClass, Switch.class, "Switch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getSwitch_Cases(), this.getCase(), null, "cases", null, 0, -1, Switch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(conjunctionEClass, Conjunction.class, "Conjunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getConjunction_Children(), this.getExpression(), null, "children", null, 0, -1, Conjunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(comparisonEClass, Comparison.class, "Comparison", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getComparison_Left(), this.getExpression(), null, "left", null, 0, 1, Comparison.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getComparison_Op(), this.getBinaryOperator(), "op", null, 0, 1, Comparison.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getComparison_Right(), this.getExpression(), null, "right", null, 0, 1, Comparison.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(binaryExpressionEClass, BinaryExpression.class, "BinaryExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getBinaryExpression_Left(), this.getExpression(), null, "left", null, 0, 1, BinaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getBinaryExpression_Op(), this.getBinaryOperator(), "op", null, 0, 1, BinaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getBinaryExpression_Right(), this.getExpression(), null, "right", null, 0, 1, BinaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(unaryExpressionEClass, UnaryExpression.class, "UnaryExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getUnaryExpression_Op(), this.getUnaryOp(), "op", null, 0, 1, UnaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getUnaryExpression_Body(), this.getExpression(), null, "body", null, 0, 1, UnaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Initialize enums and add enum literals + initEEnum(metricTypeEEnum, MetricType.class, "MetricType"); + addEEnumLiteral(metricTypeEEnum, MetricType.INT); + addEEnumLiteral(metricTypeEEnum, MetricType.REAL); + + initEEnum(binaryOperatorEEnum, BinaryOperator.class, "BinaryOperator"); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.EQ); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.NOT_EQ); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.LESS); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.LESS_EQ); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.GREATER); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.GREATER_EQ); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.IN); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.ADD); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.SUB); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.MUL); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.DIV); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.POW); + + initEEnum(unaryOpEEnum, UnaryOp.class, "UnaryOp"); + addEEnumLiteral(unaryOpEEnum, UnaryOp.NEG); + addEEnumLiteral(unaryOpEEnum, UnaryOp.PLUS); + addEEnumLiteral(unaryOpEEnum, UnaryOp.MINUS); + addEEnumLiteral(unaryOpEEnum, UnaryOp.MAY); + addEEnumLiteral(unaryOpEEnum, UnaryOp.MUST); + addEEnumLiteral(unaryOpEEnum, UnaryOp.CURRENT); + + initEEnum(aggregationOpEEnum, AggregationOp.class, "AggregationOp"); + addEEnumLiteral(aggregationOpEEnum, AggregationOp.ONLY); + addEEnumLiteral(aggregationOpEEnum, AggregationOp.SUM); + addEEnumLiteral(aggregationOpEEnum, AggregationOp.PROD); + addEEnumLiteral(aggregationOpEEnum, AggregationOp.AVG); + addEEnumLiteral(aggregationOpEEnum, AggregationOp.MIN); + addEEnumLiteral(aggregationOpEEnum, AggregationOp.MAX); + + initEEnum(logicValueEEnum, LogicValue.class, "LogicValue"); + addEEnumLiteral(logicValueEEnum, LogicValue.TRUE); + addEEnumLiteral(logicValueEEnum, LogicValue.FALSE); + addEEnumLiteral(logicValueEEnum, LogicValue.UNKNOWN); + addEEnumLiteral(logicValueEEnum, LogicValue.ERROR); + + initEEnum(objectiveKindEEnum, ObjectiveKind.class, "ObjectiveKind"); + addEEnumLiteral(objectiveKindEEnum, ObjectiveKind.MINIMIZE); + addEEnumLiteral(objectiveKindEEnum, ObjectiveKind.MAXIMIZE); // Create resource createResource(eNS_URI); -- cgit v1.2.3-70-g09d2